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
23#include <optional>
24
25namespace SCH_CONNECTIVITY
26{
28
34{
35public:
37 explicit INPUT_TEXT_SCOPE( TEXT_ENVIRONMENT& aEnvironment );
41
42 static bool Active() { return s_active; }
43
44private:
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
61{
62public:
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
71private:
72 inline static thread_local unsigned s_depth = 0;
73};
74} // namespace SCH_CONNECTIVITY
INPUT_TEXT_SCOPE(const INPUT_TEXT_SCOPE &)=delete
std::optional< TEXT_ENVIRONMENT > m_owned
Definition conn_text.h:46
INPUT_TEXT_SCOPE & operator=(const INPUT_TEXT_SCOPE &)=delete
static thread_local bool s_active
Definition conn_text.h:48
std::optional< TEXT_EVAL::ENVIRONMENT_SCOPE > m_scope
Definition conn_text.h:47
RENDER_SCOPE & operator=(const RENDER_SCOPE &)=delete
RENDER_SCOPE(const RENDER_SCOPE &)=delete
static bool Active()
True inside a render scope, unless an INPUT_TEXT_SCOPE is also active.
Definition conn_text.h:69
static thread_local unsigned s_depth
Definition conn_text.h:72
A text evaluation frame with one frozen clock and memoized external queries.
Value keys and the key session of the schematic connectivity engine.
TEXT_EVAL::ENVIRONMENT TEXT_ENVIRONMENT
Definition conn_text.h:27