KiCad PCB EDA Suite
Loading...
Searching...
No Matches
conn_text.h
Go to the documentation of this file.
1
/*
2
* This program source code file is part of KiCad, a free EDA CAD application.
3
*
4
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
5
*
6
* This program is free software: you can redistribute it and/or modify it
7
* under the terms of the GNU General Public License as published by the
8
* Free Software Foundation, either version 3 of the License, or (at your
9
* option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful, but
12
* WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
* General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program. If not, see <https://www.gnu.org/licenses/>.
18
*/
19
20
#pragma once
21
22
#include <
text_eval/text_eval_environment.h
>
23
#include <optional>
24
25
namespace
SCH_CONNECTIVITY
26
{
27
using
TEXT_ENVIRONMENT
=
TEXT_EVAL::ENVIRONMENT
;
28
33
class
INPUT_TEXT_SCOPE
34
{
35
public
:
36
INPUT_TEXT_SCOPE
();
37
explicit
INPUT_TEXT_SCOPE
(
TEXT_ENVIRONMENT
& aEnvironment );
38
~INPUT_TEXT_SCOPE
();
39
INPUT_TEXT_SCOPE
(
const
INPUT_TEXT_SCOPE
& ) =
delete
;
40
INPUT_TEXT_SCOPE
&
operator=
(
const
INPUT_TEXT_SCOPE
& ) =
delete
;
41
42
static
bool
Active
() {
return
s_active
; }
43
44
private
:
45
bool
m_previous
;
46
std::optional<TEXT_ENVIRONMENT>
m_owned
;
47
std::optional<TEXT_EVAL::ENVIRONMENT_SCOPE>
m_scope
;
48
inline
static
thread_local
bool
s_active
=
false
;
49
};
50
60
class
RENDER_SCOPE
61
{
62
public
:
63
RENDER_SCOPE
() { ++
s_depth
; }
64
~RENDER_SCOPE
() { --
s_depth
; }
65
RENDER_SCOPE
(
const
RENDER_SCOPE
& ) =
delete
;
66
RENDER_SCOPE
&
operator=
(
const
RENDER_SCOPE
& ) =
delete
;
67
69
static
bool
Active
() {
return
s_depth
> 0 && !
INPUT_TEXT_SCOPE::Active
(); }
70
71
private
:
72
inline
static
thread_local
unsigned
s_depth
= 0;
73
};
74
}
// namespace SCH_CONNECTIVITY
SCH_CONNECTIVITY::INPUT_TEXT_SCOPE::INPUT_TEXT_SCOPE
INPUT_TEXT_SCOPE(const INPUT_TEXT_SCOPE &)=delete
SCH_CONNECTIVITY::INPUT_TEXT_SCOPE::Active
static bool Active()
Definition
conn_text.h:42
SCH_CONNECTIVITY::INPUT_TEXT_SCOPE::m_owned
std::optional< TEXT_ENVIRONMENT > m_owned
Definition
conn_text.h:46
SCH_CONNECTIVITY::INPUT_TEXT_SCOPE::operator=
INPUT_TEXT_SCOPE & operator=(const INPUT_TEXT_SCOPE &)=delete
SCH_CONNECTIVITY::INPUT_TEXT_SCOPE::s_active
static thread_local bool s_active
Definition
conn_text.h:48
SCH_CONNECTIVITY::INPUT_TEXT_SCOPE::INPUT_TEXT_SCOPE
INPUT_TEXT_SCOPE()
Definition
conn_text.cpp:24
SCH_CONNECTIVITY::INPUT_TEXT_SCOPE::~INPUT_TEXT_SCOPE
~INPUT_TEXT_SCOPE()
Definition
conn_text.cpp:43
SCH_CONNECTIVITY::INPUT_TEXT_SCOPE::m_previous
bool m_previous
Definition
conn_text.h:45
SCH_CONNECTIVITY::INPUT_TEXT_SCOPE::m_scope
std::optional< TEXT_EVAL::ENVIRONMENT_SCOPE > m_scope
Definition
conn_text.h:47
SCH_CONNECTIVITY::RENDER_SCOPE::~RENDER_SCOPE
~RENDER_SCOPE()
Definition
conn_text.h:64
SCH_CONNECTIVITY::RENDER_SCOPE::operator=
RENDER_SCOPE & operator=(const RENDER_SCOPE &)=delete
SCH_CONNECTIVITY::RENDER_SCOPE::RENDER_SCOPE
RENDER_SCOPE(const RENDER_SCOPE &)=delete
SCH_CONNECTIVITY::RENDER_SCOPE::Active
static bool Active()
True inside a render scope, unless an INPUT_TEXT_SCOPE is also active.
Definition
conn_text.h:69
SCH_CONNECTIVITY::RENDER_SCOPE::RENDER_SCOPE
RENDER_SCOPE()
Definition
conn_text.h:63
SCH_CONNECTIVITY::RENDER_SCOPE::s_depth
static thread_local unsigned s_depth
Definition
conn_text.h:72
TEXT_EVAL::ENVIRONMENT
A text evaluation frame with one frozen clock and memoized external queries.
Definition
text_eval_environment.h:44
SCH_CONNECTIVITY
Value keys and the key session of the schematic connectivity engine.
Definition
conn_auxiliary.cpp:28
SCH_CONNECTIVITY::TEXT_ENVIRONMENT
TEXT_EVAL::ENVIRONMENT TEXT_ENVIRONMENT
Definition
conn_text.h:27
text_eval_environment.h
src
eeschema
connectivity
conn_text.h
Generated on Sat Sep 19 2026 00:07:04 for KiCad PCB EDA Suite by
1.13.2