KiCad PCB EDA Suite
Loading...
Searching...
No Matches
pcb_picker_tool.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 (C) 2015 CERN
5
* Copyright (C) 2021 KiCad Developers, see AUTHORS.txt for contributors.
6
*
7
* @author Maciej Suminski <
[email protected]
>
8
*
9
* This program is free software; you can redistribute it and/or
10
* modify it under the terms of the GNU General Public License
11
* as published by the Free Software Foundation; either version 2
12
* of the License, or (at your option) any later version.
13
*
14
* This program is distributed in the hope that it will be useful,
15
* but WITHOUT ANY WARRANTY; without even the implied warranty of
16
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
* GNU General Public License for more details.
18
*
19
* You should have received a copy of the GNU General Public License
20
* along with this program; if not, you may find one here:
21
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
22
* or you may search the http://www.gnu.org website for the version 2 license,
23
* or you may write to the Free Software Foundation, Inc.,
24
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
25
*/
26
27
#ifndef PCB_PICKER_TOOL_H
28
#define PCB_PICKER_TOOL_H
29
30
#include <
layer_ids.h
>
31
#include <
tool/picker_tool.h
>
32
#include <
tools/pcb_tool_base.h
>
33
37
class
PCB_PICKER_TOOL
:
public
PCB_TOOL_BASE
,
public
PICKER_TOOL_BASE
38
{
39
public
:
45
class
RECEIVER
46
{
47
public
:
48
virtual
void
UpdatePickedPoint
(
const
std::optional<VECTOR2I>& aPoint ) = 0;
49
virtual
void
UpdatePickedItem
(
const
EDA_ITEM
* aItem ) = 0;
50
51
protected
:
52
~RECEIVER
() =
default
;
53
};
54
55
struct
INTERACTIVE_PARAMS
56
{
57
RECEIVER
*
m_Receiver
=
nullptr
;
58
wxString
m_Prompt
;
59
std::function<bool(
EDA_ITEM
*)>
m_ItemFilter
=
nullptr
;
60
};
61
62
PCB_PICKER_TOOL
();
63
virtual
~PCB_PICKER_TOOL
() =
default
;
64
66
bool
Init
()
override
;
67
69
int
Main
(
const
TOOL_EVENT
& aEvent );
70
74
inline
void
SetLayerSet
(
LSET
aLayerSet ) {
m_layerMask
= aLayerSet; }
75
76
int
SelectPointInteractively
(
const
TOOL_EVENT
& aEvent );
77
int
SelectItemInteractively
(
const
TOOL_EVENT
& aEvent );
78
79
protected
:
81
void
setTransitions
()
override
;
82
84
void
setControls
();
85
87
void
reset
()
override
;
88
89
private
:
91
LSET
m_layerMask
;
92
};
93
94
#endif
/* PCB_PICKER_TOOL_H */
EDA_ITEM
A base class for most all the KiCad significant classes used in schematics and boards.
Definition:
eda_item.h:89
LSET
LSET is a set of PCB_LAYER_IDs.
Definition:
lset.h:36
PCB_PICKER_TOOL::RECEIVER
Interface class for something that receives picked points or items from this tool.
Definition:
pcb_picker_tool.h:46
PCB_PICKER_TOOL::RECEIVER::UpdatePickedItem
virtual void UpdatePickedItem(const EDA_ITEM *aItem)=0
PCB_PICKER_TOOL::RECEIVER::~RECEIVER
~RECEIVER()=default
PCB_PICKER_TOOL::RECEIVER::UpdatePickedPoint
virtual void UpdatePickedPoint(const std::optional< VECTOR2I > &aPoint)=0
PCB_PICKER_TOOL
Generic tool for picking an item.
Definition:
pcb_picker_tool.h:38
PCB_PICKER_TOOL::SelectItemInteractively
int SelectItemInteractively(const TOOL_EVENT &aEvent)
Definition:
pcb_picker_tool.cpp:300
PCB_PICKER_TOOL::m_layerMask
LSET m_layerMask
< The layer set to use for optional snapping.
Definition:
pcb_picker_tool.h:91
PCB_PICKER_TOOL::Init
bool Init() override
Main event loop.
Definition:
pcb_picker_tool.cpp:45
PCB_PICKER_TOOL::SelectPointInteractively
int SelectPointInteractively(const TOOL_EVENT &aEvent)
Definition:
pcb_picker_tool.cpp:240
PCB_PICKER_TOOL::~PCB_PICKER_TOOL
virtual ~PCB_PICKER_TOOL()=default
Init() is called once upon a registration of the tool.
PCB_PICKER_TOOL::PCB_PICKER_TOOL
PCB_PICKER_TOOL()
Definition:
pcb_picker_tool.cpp:38
PCB_PICKER_TOOL::Main
int Main(const TOOL_EVENT &aEvent)
Definition:
pcb_picker_tool.cpp:73
PCB_PICKER_TOOL::setControls
void setControls()
Reinitialize tool to its initial state.
Definition:
pcb_picker_tool.cpp:231
PCB_PICKER_TOOL::reset
void reset() override
< Reinitializes tool to its initial state.
Definition:
pcb_picker_tool.cpp:224
PCB_PICKER_TOOL::SetLayerSet
void SetLayerSet(LSET aLayerSet)
Set the tool's snap layer set.
Definition:
pcb_picker_tool.h:74
PCB_PICKER_TOOL::setTransitions
void setTransitions() override
<
Definition:
pcb_picker_tool.cpp:372
PCB_TOOL_BASE
Definition:
pcb_tool_base.h:71
PICKER_TOOL_BASE
Definition:
picker_tool.h:37
TOOL_EVENT
Generic, UI-independent tool event.
Definition:
tool_event.h:167
layer_ids.h
pcb_tool_base.h
picker_tool.h
PCB_PICKER_TOOL::INTERACTIVE_PARAMS
Definition:
pcb_picker_tool.h:56
PCB_PICKER_TOOL::INTERACTIVE_PARAMS::m_Prompt
wxString m_Prompt
Definition:
pcb_picker_tool.h:58
PCB_PICKER_TOOL::INTERACTIVE_PARAMS::m_Receiver
RECEIVER * m_Receiver
Definition:
pcb_picker_tool.h:57
PCB_PICKER_TOOL::INTERACTIVE_PARAMS::m_ItemFilter
std::function< bool(EDA_ITEM *)> m_ItemFilter
Definition:
pcb_picker_tool.h:59
src
pcbnew
tools
pcb_picker_tool.h
Generated on Sun Dec 22 2024 00:05:29 for KiCad PCB EDA Suite by
1.9.6