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 The 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, see <https://www.gnu.org/licenses/>.
21
*/
22
23
#ifndef PCB_PICKER_TOOL_H
24
#define PCB_PICKER_TOOL_H
25
26
#include <
layer_ids.h
>
27
#include <
tool/picker_tool.h
>
28
#include <
tools/pcb_tool_base.h
>
29
33
class
PCB_PICKER_TOOL
:
public
PCB_TOOL_BASE
,
public
PICKER_TOOL_BASE
34
{
35
public
:
41
class
RECEIVER
42
{
43
public
:
44
virtual
void
UpdatePickedPoint
(
const
std::optional<VECTOR2I>& aPoint ) = 0;
45
virtual
void
UpdatePickedItem
(
const
EDA_ITEM
* aItem ) = 0;
46
47
protected
:
48
~RECEIVER
() =
default
;
49
};
50
51
struct
INTERACTIVE_PARAMS
52
{
53
RECEIVER
*
m_Receiver
=
nullptr
;
54
wxString
m_Prompt
;
55
std::function<bool(
EDA_ITEM
*)>
m_ItemFilter
=
nullptr
;
56
};
57
58
PCB_PICKER_TOOL
();
59
virtual
~PCB_PICKER_TOOL
() =
default
;
60
62
bool
Init
()
override
;
63
65
int
Main
(
const
TOOL_EVENT
& aEvent );
66
70
inline
void
SetLayerSet
(
const
LSET
& aLayerSet ) {
m_layerMask
= aLayerSet; }
71
72
int
SelectPointInteractively
(
const
TOOL_EVENT
& aEvent );
73
int
SelectItemInteractively
(
const
TOOL_EVENT
& aEvent );
74
75
protected
:
77
void
setTransitions
()
override
;
78
80
void
setControls
();
81
83
void
reset
()
override
;
84
85
private
:
87
LSET
m_layerMask
;
88
};
89
90
#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:96
LSET
LSET is a set of PCB_LAYER_IDs.
Definition
lset.h:37
PCB_PICKER_TOOL::RECEIVER
Interface class for something that receives picked points or items from this tool.
Definition
pcb_picker_tool.h:42
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::SelectItemInteractively
int SelectItemInteractively(const TOOL_EVENT &aEvent)
Definition
pcb_picker_tool.cpp:322
PCB_PICKER_TOOL::m_layerMask
LSET m_layerMask
< The layer set to use for optional snapping.
Definition
pcb_picker_tool.h:87
PCB_PICKER_TOOL::Init
bool Init() override
Main event loop.
Definition
pcb_picker_tool.cpp:42
PCB_PICKER_TOOL::SelectPointInteractively
int SelectPointInteractively(const TOOL_EVENT &aEvent)
Definition
pcb_picker_tool.cpp:251
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:35
PCB_PICKER_TOOL::Main
int Main(const TOOL_EVENT &aEvent)
Definition
pcb_picker_tool.cpp:75
PCB_PICKER_TOOL::setControls
void setControls()
Reinitialize tool to its initial state.
Definition
pcb_picker_tool.cpp:242
PCB_PICKER_TOOL::reset
void reset() override
Reinitializes tool to its initial state.
Definition
pcb_picker_tool.cpp:235
PCB_PICKER_TOOL::SetLayerSet
void SetLayerSet(const LSET &aLayerSet)
Set the tool's snap layer set.
Definition
pcb_picker_tool.h:70
PCB_PICKER_TOOL::setTransitions
void setTransitions() override
<
Definition
pcb_picker_tool.cpp:401
PCB_TOOL_BASE::PCB_TOOL_BASE
PCB_TOOL_BASE(TOOL_ID aId, const std::string &aName)
Constructor.
Definition
pcb_tool_base.h:74
PICKER_TOOL_BASE::PICKER_TOOL_BASE
PICKER_TOOL_BASE()
Definition
picker_tool.h:50
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:52
PCB_PICKER_TOOL::INTERACTIVE_PARAMS::m_Prompt
wxString m_Prompt
Definition
pcb_picker_tool.h:54
PCB_PICKER_TOOL::INTERACTIVE_PARAMS::m_Receiver
RECEIVER * m_Receiver
Definition
pcb_picker_tool.h:53
PCB_PICKER_TOOL::INTERACTIVE_PARAMS::m_ItemFilter
std::function< bool(EDA_ITEM *)> m_ItemFilter
Definition
pcb_picker_tool.h:55
src
pcbnew
tools
pcb_picker_tool.h
Generated on Fri Jun 26 2026 00:05:42 for KiCad PCB EDA Suite by
1.13.2