KiCad PCB EDA Suite
Loading...
Searching...
No Matches
group_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) 2020-2021 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 GROUP_TOOL_H
25
#define GROUP_TOOL_H
26
27
#include <
math/vector2d.h
>
28
#include <
tools/pcb_tool_base.h
>
29
#include "
pcb_selection_tool.h
"
30
#include "
dialogs/dialog_group_properties_base.h
"
31
32
class
BOARD_COMMIT
;
33
class
BOARD_ITEM
;
34
class
PCB_SELECTION_TOOL
;
35
class
DIALOG_GROUP_PROPERTIES
;
36
37
class
GROUP_TOOL
:
public
PCB_TOOL_BASE
38
{
39
public
:
40
GROUP_TOOL
();
41
42
void
Reset
(
RESET_REASON
aReason )
override
;
43
45
bool
Init
()
override
;
46
47
int
GroupProperties
(
const
TOOL_EVENT
& aEvent );
48
52
int
PickNewMember
(
const
TOOL_EVENT
& aEvent );
53
55
int
Group
(
const
TOOL_EVENT
& aEvent );
56
58
int
Ungroup
(
const
TOOL_EVENT
& aEvent );
59
61
int
RemoveFromGroup
(
const
TOOL_EVENT
& aEvent );
62
64
int
EnterGroup
(
const
TOOL_EVENT
& aEvent );
65
67
int
LeaveGroup
(
const
TOOL_EVENT
& aEvent );
68
69
private
:
71
void
setTransitions
()
override
;
72
73
PCB_BASE_EDIT_FRAME
*
m_frame
;
74
DIALOG_GROUP_PROPERTIES
*
m_propertiesDialog
;
75
PCB_SELECTION_TOOL
*
m_selectionTool
;
76
std::unique_ptr<BOARD_COMMIT>
m_commit
;
77
};
78
79
#endif
BOARD_COMMIT
Definition:
board_commit.h:47
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_GROUP_PROPERTIES
Definition:
dialog_group_properties.h:35
GROUP_TOOL
Definition:
group_tool.h:38
GROUP_TOOL::GroupProperties
int GroupProperties(const TOOL_EVENT &aEvent)
Definition:
group_tool.cpp:117
GROUP_TOOL::LeaveGroup
int LeaveGroup(const TOOL_EVENT &aEvent)
Definition:
group_tool.cpp:369
GROUP_TOOL::Init
bool Init() override
Init() is called once upon a registration of the tool.
Definition:
group_tool.cpp:94
GROUP_TOOL::GROUP_TOOL
GROUP_TOOL()
Definition:
group_tool.cpp:76
GROUP_TOOL::RemoveFromGroup
int RemoveFromGroup(const TOOL_EVENT &aEvent)
Restrict selection to only member of the group.
Definition:
group_tool.cpp:330
GROUP_TOOL::m_propertiesDialog
DIALOG_GROUP_PROPERTIES * m_propertiesDialog
Definition:
group_tool.h:74
GROUP_TOOL::Group
int Group(const TOOL_EVENT &aEvent)
Ungroup selected items.
Definition:
group_tool.cpp:221
GROUP_TOOL::m_commit
std::unique_ptr< BOARD_COMMIT > m_commit
Definition:
group_tool.h:76
GROUP_TOOL::m_selectionTool
PCB_SELECTION_TOOL * m_selectionTool
Definition:
group_tool.h:75
GROUP_TOOL::Ungroup
int Ungroup(const TOOL_EVENT &aEvent)
Remove selection from group.
Definition:
group_tool.cpp:290
GROUP_TOOL::m_frame
PCB_BASE_EDIT_FRAME * m_frame
Definition:
group_tool.h:73
GROUP_TOOL::setTransitions
void setTransitions() override
< Set up handlers for various events.
Definition:
group_tool.cpp:376
GROUP_TOOL::PickNewMember
int PickNewMember(const TOOL_EVENT &aEvent)
Invoke the picker tool to select a new member of the group.
Definition:
group_tool.cpp:133
GROUP_TOOL::EnterGroup
int EnterGroup(const TOOL_EVENT &aEvent)
Leave the current group (deselect its members and select the group as a whole).
Definition:
group_tool.cpp:357
PCB_BASE_EDIT_FRAME
Common, abstract interface for edit frames.
Definition:
pcb_base_edit_frame.h:45
PCB_SELECTION_TOOL
The selection tool: currently supports:
Definition:
pcb_selection_tool.h:68
PCB_TOOL_BASE
Definition:
pcb_tool_base.h:71
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:167
dialog_group_properties_base.h
Reset
void Reset() override
pcb_selection_tool.h
pcb_tool_base.h
vector2d.h
src
pcbnew
tools
group_tool.h
Generated on Thu Dec 5 2024 00:05:06 for KiCad PCB EDA Suite by
1.9.6