KiCad PCB EDA Suite
Loading...
Searching...
No Matches
position_relative_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 The KiCad Developers, see AUTHORS.txt for contributors.
5
*
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU 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, you may find one here:
18
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
19
* or you may search the http://www.gnu.org website for the version 2 license,
20
* or you may write to the Free Software Foundation, Inc.,
21
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
22
*/
23
24
#ifndef __POSITION_RELATIVE_TOOL_H
25
#define __POSITION_RELATIVE_TOOL_H
26
27
#include <
math/vector2d.h
>
28
#include <
tools/pcb_tool_base.h
>
29
#include <
tools/pcb_selection_tool.h
>
30
31
class
BOARD_COMMIT
;
32
class
BOARD_ITEM
;
33
class
PCB_SELECTION_TOOL
;
34
class
DIALOG_POSITION_RELATIVE
;
35
36
43
44
class
POSITION_RELATIVE_TOOL
:
public
PCB_TOOL_BASE
45
{
46
public
:
47
POSITION_RELATIVE_TOOL
();
48
49
void
Reset
(
RESET_REASON
aReason )
override
;
50
52
bool
Init
()
override
;
53
57
int
PositionRelative
(
const
TOOL_EVENT
& aEvent );
58
63
int
PositionRelativeInteractively
(
const
TOOL_EVENT
& aEvent );
64
68
VECTOR2I
GetSelectionAnchorPosition
()
const
{
return
m_selectionAnchor
; }
69
74
int
RelativeItemSelectionMove
(
const
VECTOR2I
&
anchor
,
const
VECTOR2I
& translation );
75
77
void
setTransitions
()
override
;
78
79
private
:
80
DIALOG_POSITION_RELATIVE
*
m_dialog
;
81
82
PCB_SELECTION_TOOL
*
m_selectionTool
;
83
PCB_SELECTION
m_selection
;
84
VECTOR2I
m_selectionAnchor
;
85
bool
m_inInteractivePosition
;
// Re-entrancy guard
86
87
std::unique_ptr<BOARD_COMMIT>
m_commit
;
88
};
89
90
#endif
BITMAPS::anchor
@ anchor
Definition
bitmaps_list.h:90
BOARD_COMMIT
Definition
board_commit.h:48
BOARD_ITEM
A base class for any item which can be embedded within the BOARD container class, and therefore insta...
Definition
board_item.h:79
DIALOG_POSITION_RELATIVE
Definition
dialog_position_relative.h:36
PCB_SELECTION_TOOL
The selection tool: currently supports:
Definition
pcb_selection_tool.h:66
PCB_SELECTION
Definition
pcb_selection.h:32
PCB_TOOL_BASE::PCB_TOOL_BASE
PCB_TOOL_BASE(TOOL_ID aId, const std::string &aName)
Constructor.
Definition
pcb_tool_base.h:78
POSITION_RELATIVE_TOOL::m_selectionAnchor
VECTOR2I m_selectionAnchor
Definition
position_relative_tool.h:84
POSITION_RELATIVE_TOOL::RelativeItemSelectionMove
int RelativeItemSelectionMove(const VECTOR2I &anchor, const VECTOR2I &translation)
Position the m_position_relative_selection selection relative to anchor position using the given tran...
Definition
position_relative_tool.cpp:422
POSITION_RELATIVE_TOOL::POSITION_RELATIVE_TOOL
POSITION_RELATIVE_TOOL()
Definition
position_relative_tool.cpp:71
POSITION_RELATIVE_TOOL::PositionRelative
int PositionRelative(const TOOL_EVENT &aEvent)
Invoke a dialog box to allow positioning of the item relative to another by an exact amount.
Definition
position_relative_tool.cpp:96
POSITION_RELATIVE_TOOL::setTransitions
void setTransitions() override
This method is meant to be overridden in order to specify handlers for events.
Definition
position_relative_tool.cpp:439
POSITION_RELATIVE_TOOL::Init
bool Init() override
Init() is called once upon a registration of the tool.
Definition
position_relative_tool.cpp:87
POSITION_RELATIVE_TOOL::PositionRelativeInteractively
int PositionRelativeInteractively(const TOOL_EVENT &aEvent)
Draw a line connecting two points and allow the user to enter what it should be.
Definition
position_relative_tool.cpp:152
POSITION_RELATIVE_TOOL::m_dialog
DIALOG_POSITION_RELATIVE * m_dialog
Definition
position_relative_tool.h:80
POSITION_RELATIVE_TOOL::m_commit
std::unique_ptr< BOARD_COMMIT > m_commit
Definition
position_relative_tool.h:87
POSITION_RELATIVE_TOOL::m_inInteractivePosition
bool m_inInteractivePosition
Definition
position_relative_tool.h:85
POSITION_RELATIVE_TOOL::GetSelectionAnchorPosition
VECTOR2I GetSelectionAnchorPosition() const
Return the position of the selected item(s)
Definition
position_relative_tool.h:68
POSITION_RELATIVE_TOOL::m_selectionTool
PCB_SELECTION_TOOL * m_selectionTool
Definition
position_relative_tool.h:82
POSITION_RELATIVE_TOOL::m_selection
PCB_SELECTION m_selection
Definition
position_relative_tool.h:83
TOOL_BASE::RESET_REASON
RESET_REASON
Determine the reason of reset for a tool.
Definition
tool_base.h:78
TOOL_EVENT
Generic, UI-independent tool event.
Definition
tool_event.h:171
Reset
void Reset() override
pcb_selection_tool.h
pcb_tool_base.h
vector2d.h
VECTOR2I
VECTOR2< int32_t > VECTOR2I
Definition
vector2d.h:695
src
pcbnew
tools
position_relative_tool.h
Generated on Sun Sep 21 2025 01:05:32 for KiCad PCB EDA Suite by
1.13.2