KiCad PCB EDA Suite
Loading...
Searching...
No Matches
pcb_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 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, see <https://www.gnu.org/licenses/>.
18 */
19
20#include <tool/group_tool.h>
21#include <board_commit.h>
22#include <pcb_group.h>
23
25{
26public:
30 int PickNewMember( const TOOL_EVENT& aEvent ) override;
31
33 int Group( const TOOL_EVENT& aEvent ) override;
34
35protected:
36 bool canGroupItem( EDA_ITEM* aItem, wxString& aErrorMsg ) const override;
37
38 std::shared_ptr<COMMIT> createCommit() override;
39
41 {
42 if( aItem->Type() == PCB_GROUP_T )
43 return static_cast<PCB_GROUP*>( aItem );
44
45 return nullptr;
46 }
47};
A set of EDA_ITEMs (i.e., without duplicates).
Definition eda_group.h:42
A base class for most all the KiCad significant classes used in schematics and boards.
Definition eda_item.h:96
KICAD_T Type() const
Returns the type of object.
Definition eda_item.h:108
EDA_GROUP * getGroupFromItem(EDA_ITEM *aItem) override
Subclasses implement to provide correct *_COMMIT object type.
bool canGroupItem(EDA_ITEM *aItem, wxString &aErrorMsg) const override
Get the correctly casted group type from the item.
int PickNewMember(const TOOL_EVENT &aEvent) override
Invoke the picker tool to select a new member of the group.
int Group(const TOOL_EVENT &aEvent) override
Ungroup selected items.
std::shared_ptr< COMMIT > createCommit() override
A set of BOARD_ITEMs (i.e., without duplicates).
Definition pcb_group.h:49
Generic, UI-independent tool event.
Definition tool_event.h:167
Class to handle a set of BOARD_ITEMs.
@ PCB_GROUP_T
class PCB_GROUP, a set of BOARD_ITEMs
Definition typeinfo.h:104