KiCad PCB EDA Suite
Loading...
Searching...
No Matches
common_tools.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) 2014-2016 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 _COMMON_TOOLS_H
24
#define _COMMON_TOOLS_H
25
26
#include <
tool/tool_interactive.h
>
27
28
class
EDA_DRAW_FRAME
;
29
33
class
COMMON_TOOLS
:
public
TOOL_INTERACTIVE
34
{
35
public
:
36
COMMON_TOOLS
();
37
38
~COMMON_TOOLS
()
override
{ }
39
41
void
Reset
(
RESET_REASON
aReason )
override
;
42
43
int
SelectionTool
(
const
TOOL_EVENT
& aEvent );
44
45
// View controls
46
int
ZoomRedraw
(
const
TOOL_EVENT
& aEvent );
47
int
ZoomInOut
(
const
TOOL_EVENT
& aEvent );
48
int
ZoomInOutCenter
(
const
TOOL_EVENT
& aEvent );
49
int
ZoomCenter
(
const
TOOL_EVENT
& aEvent );
50
int
ZoomFitScreen
(
const
TOOL_EVENT
& aEvent );
51
int
ZoomFitObjects
(
const
TOOL_EVENT
& aEvent );
52
int
ZoomFitSelection
(
const
TOOL_EVENT
& aEvent );
53
int
ZoomPreset
(
const
TOOL_EVENT
& aEvent );
54
55
int
CenterContents
(
const
TOOL_EVENT
& aEvent );
56
int
CenterSelection
(
const
TOOL_EVENT
& aEvent );
57
58
int
PanControl
(
const
TOOL_EVENT
& aEvent );
59
60
// Cursor control
61
int
CursorControl
(
const
TOOL_EVENT
& aEvent );
62
int
ToggleCursor
(
const
TOOL_EVENT
& aEvent );
63
int
CursorSmallCrosshairs
(
const
TOOL_EVENT
& aEvent );
64
int
CursorFullCrosshairs
(
const
TOOL_EVENT
& aEvent );
65
int
Cursor45Crosshairs
(
const
TOOL_EVENT
& aEvent );
66
67
int
ToggleBoundingBoxes
(
const
TOOL_EVENT
& aEvent );
68
69
// Units control
70
int
SwitchUnits
(
const
TOOL_EVENT
& aEvent );
71
int
ToggleUnits
(
const
TOOL_EVENT
& aEvent );
72
int
TogglePolarCoords
(
const
TOOL_EVENT
& aEvent );
73
int
ResetLocalCoords
(
const
TOOL_EVENT
& aEvent );
74
75
void
SetLastUnits
(
EDA_UNITS
aUnit );
76
EDA_UNITS
GetLastMetricUnits
() {
return
m_metricUnit
; }
77
EDA_UNITS
GetLastImperialUnits
() {
return
m_imperialUnit
; }
78
79
// Grid control
80
int
GridNext
(
const
TOOL_EVENT
& aEvent );
81
int
GridPrev
(
const
TOOL_EVENT
& aEvent );
82
int
GridPreset
(
const
TOOL_EVENT
& aEvent );
83
int
GridFast1
(
const
TOOL_EVENT
& aEvent );
84
int
GridFast2
(
const
TOOL_EVENT
& aEvent );
85
int
GridFastCycle
(
const
TOOL_EVENT
& aEvent );
86
int
ToggleGrid
(
const
TOOL_EVENT
& aEvent );
87
int
ToggleGridOverrides
(
const
TOOL_EVENT
& aEvent );
88
int
GridProperties
(
const
TOOL_EVENT
& aEvent );
89
int
GridPreset
(
int
idx,
bool
aFromHotkey );
90
int
GridOrigin
(
const
TOOL_EVENT
& aEvent );
91
int
OnGridChanged
(
bool
aFromHotkey );
92
93
const
std::vector<VECTOR2I>
Grids
()
const
{
return
m_grids
; }
94
95
private
:
99
enum
ZOOM_FIT_TYPE_T
100
{
101
ZOOM_FIT_ALL
,
102
ZOOM_FIT_OBJECTS
,
103
ZOOM_FIT_SELECTION
,
104
};
105
106
enum class
CENTER_TYPE
107
{
108
CENTER_CONTENTS
,
109
CENTER_SELECTION
,
110
};
111
113
void
setTransitions
()
override
;
114
116
EDA_DRAW_FRAME
*
m_frame
;
117
118
int
doZoomInOut
(
bool
aDirection,
bool
aCenterOnCursor );
119
121
int
doZoomToPreset
(
int
idx,
bool
aCenterOnCursor );
122
123
int
doZoomFit
(
ZOOM_FIT_TYPE_T
aFitType );
124
125
int
doCenter
(
CENTER_TYPE
aCenterType );
126
127
std::vector<VECTOR2I>
m_grids
;
129
130
// The last used units in each system (used for toggling between metric and imperial)
131
EDA_UNITS
m_imperialUnit
;
132
EDA_UNITS
m_metricUnit
;
133
};
134
135
#endif
COMMON_TOOLS::ZoomFitSelection
int ZoomFitSelection(const TOOL_EVENT &aEvent)
Definition
common_tools.cpp:312
COMMON_TOOLS::~COMMON_TOOLS
~COMMON_TOOLS() override
Definition
common_tools.h:38
COMMON_TOOLS::ZoomCenter
int ZoomCenter(const TOOL_EVENT &aEvent)
Definition
common_tools.cpp:290
COMMON_TOOLS::doCenter
int doCenter(CENTER_TYPE aCenterType)
Definition
common_tools.cpp:420
COMMON_TOOLS::GridProperties
int GridProperties(const TOOL_EVENT &aEvent)
Definition
common_tools.cpp:605
COMMON_TOOLS::GridFastCycle
int GridFastCycle(const TOOL_EVENT &aEvent)
Definition
common_tools.cpp:579
COMMON_TOOLS::GridOrigin
int GridOrigin(const TOOL_EVENT &aEvent)
Definition
common_tools.cpp:633
COMMON_TOOLS::doZoomToPreset
int doZoomToPreset(int idx, bool aCenterOnCursor)
Definition
common_tools.cpp:464
COMMON_TOOLS::PanControl
int PanControl(const TOOL_EVENT &aEvent)
Definition
common_tools.cpp:190
COMMON_TOOLS::m_metricUnit
EDA_UNITS m_metricUnit
Definition
common_tools.h:132
COMMON_TOOLS::m_imperialUnit
EDA_UNITS m_imperialUnit
Definition
common_tools.h:131
COMMON_TOOLS::SwitchUnits
int SwitchUnits(const TOOL_EVENT &aEvent)
Definition
common_tools.cpp:651
COMMON_TOOLS::CursorSmallCrosshairs
int CursorSmallCrosshairs(const TOOL_EVENT &aEvent)
Definition
common_tools.cpp:717
COMMON_TOOLS::ToggleGrid
int ToggleGrid(const TOOL_EVENT &aEvent)
Definition
common_tools.cpp:591
COMMON_TOOLS::GridFast1
int GridFast1(const TOOL_EVENT &aEvent)
Definition
common_tools.cpp:567
COMMON_TOOLS::Cursor45Crosshairs
int Cursor45Crosshairs(const TOOL_EVENT &aEvent)
Definition
common_tools.cpp:741
COMMON_TOOLS::SetLastUnits
void SetLastUnits(EDA_UNITS aUnit)
Definition
common_tools.cpp:83
COMMON_TOOLS::ToggleUnits
int ToggleUnits(const TOOL_EVENT &aEvent)
Definition
common_tools.cpp:667
COMMON_TOOLS::GridFast2
int GridFast2(const TOOL_EVENT &aEvent)
Definition
common_tools.cpp:573
COMMON_TOOLS::GridNext
int GridNext(const TOOL_EVENT &aEvent)
Definition
common_tools.cpp:498
COMMON_TOOLS::OnGridChanged
int OnGridChanged(bool aFromHotkey)
Definition
common_tools.cpp:540
COMMON_TOOLS::Grids
const std::vector< VECTOR2I > Grids() const
Definition
common_tools.h:93
COMMON_TOOLS::setTransitions
void setTransitions() override
Pointer to the currently used edit frame.
Definition
common_tools.cpp:771
COMMON_TOOLS::CenterSelection
int CenterSelection(const TOOL_EVENT &aEvent)
Definition
common_tools.cpp:408
COMMON_TOOLS::ZoomPreset
int ZoomPreset(const TOOL_EVENT &aEvent)
Definition
common_tools.cpp:456
COMMON_TOOLS::ZoomFitScreen
int ZoomFitScreen(const TOOL_EVENT &aEvent)
Definition
common_tools.cpp:300
COMMON_TOOLS::ToggleBoundingBoxes
int ToggleBoundingBoxes(const TOOL_EVENT &aEvent)
Definition
common_tools.cpp:753
COMMON_TOOLS::GetLastImperialUnits
EDA_UNITS GetLastImperialUnits()
Definition
common_tools.h:77
COMMON_TOOLS::ToggleGridOverrides
int ToggleGridOverrides(const TOOL_EVENT &aEvent)
Definition
common_tools.cpp:598
COMMON_TOOLS::m_grids
std::vector< VECTOR2I > m_grids
Grids from #APP_SETTINGS converted to internal units and with the user grid appended.
Definition
common_tools.h:127
COMMON_TOOLS::ToggleCursor
int ToggleCursor(const TOOL_EVENT &aEvent)
Definition
common_tools.cpp:705
COMMON_TOOLS::CursorFullCrosshairs
int CursorFullCrosshairs(const TOOL_EVENT &aEvent)
Definition
common_tools.cpp:729
COMMON_TOOLS::COMMON_TOOLS
COMMON_TOOLS()
Definition
common_tools.cpp:46
COMMON_TOOLS::ZoomFitObjects
int ZoomFitObjects(const TOOL_EVENT &aEvent)
Definition
common_tools.cpp:306
COMMON_TOOLS::CENTER_TYPE
CENTER_TYPE
Definition
common_tools.h:107
COMMON_TOOLS::CENTER_TYPE::CENTER_CONTENTS
@ CENTER_CONTENTS
Definition
common_tools.h:108
COMMON_TOOLS::CENTER_TYPE::CENTER_SELECTION
@ CENTER_SELECTION
Definition
common_tools.h:109
COMMON_TOOLS::CenterContents
int CenterContents(const TOOL_EVENT &aEvent)
Definition
common_tools.cpp:414
COMMON_TOOLS::TogglePolarCoords
int TogglePolarCoords(const TOOL_EVENT &aEvent)
Definition
common_tools.cpp:676
COMMON_TOOLS::GridPrev
int GridPrev(const TOOL_EVENT &aEvent)
Definition
common_tools.cpp:511
COMMON_TOOLS::ZoomInOutCenter
int ZoomInOutCenter(const TOOL_EVENT &aEvent)
Definition
common_tools.cpp:241
COMMON_TOOLS::ZoomRedraw
int ZoomRedraw(const TOOL_EVENT &aEvent)
Definition
common_tools.cpp:227
COMMON_TOOLS::ResetLocalCoords
int ResetLocalCoords(const TOOL_EVENT &aEvent)
Definition
common_tools.cpp:686
COMMON_TOOLS::m_frame
EDA_DRAW_FRAME * m_frame
Definition
common_tools.h:116
COMMON_TOOLS::doZoomFit
int doZoomFit(ZOOM_FIT_TYPE_T aFitType)
Definition
common_tools.cpp:318
COMMON_TOOLS::CursorControl
int CursorControl(const TOOL_EVENT &aEvent)
Definition
common_tools.cpp:104
COMMON_TOOLS::ZOOM_FIT_TYPE_T
ZOOM_FIT_TYPE_T
The set of "Zoom to Fit" types that can be performed.
Definition
common_tools.h:100
COMMON_TOOLS::ZOOM_FIT_SELECTION
@ ZOOM_FIT_SELECTION
Zoom to fit selected items in view.
Definition
common_tools.h:103
COMMON_TOOLS::ZOOM_FIT_ALL
@ ZOOM_FIT_ALL
Zoom to fall all items in view INCLUDING page and border.
Definition
common_tools.h:101
COMMON_TOOLS::ZOOM_FIT_OBJECTS
@ ZOOM_FIT_OBJECTS
Zoom to fit all items in view EXCLUDING page and border.
Definition
common_tools.h:102
COMMON_TOOLS::SelectionTool
int SelectionTool(const TOOL_EVENT &aEvent)
Definition
common_tools.cpp:94
COMMON_TOOLS::GetLastMetricUnits
EDA_UNITS GetLastMetricUnits()
Definition
common_tools.h:76
COMMON_TOOLS::GridPreset
int GridPreset(const TOOL_EVENT &aEvent)
Definition
common_tools.cpp:524
COMMON_TOOLS::ZoomInOut
int ZoomInOut(const TOOL_EVENT &aEvent)
Definition
common_tools.cpp:234
COMMON_TOOLS::doZoomInOut
int doZoomInOut(bool aDirection, bool aCenterOnCursor)
Note: idx == 0 is Auto; idx == 1 is first entry in zoomList.
Definition
common_tools.cpp:248
EDA_DRAW_FRAME
The base class for create windows for drawing purpose.
Definition
eda_draw_frame.h:83
TOOL_BASE::RESET_REASON
RESET_REASON
Determine the reason of reset for a tool.
Definition
tool_base.h:74
TOOL_EVENT
Generic, UI-independent tool event.
Definition
tool_event.h:167
TOOL_INTERACTIVE::TOOL_INTERACTIVE
TOOL_INTERACTIVE(TOOL_ID aId, const std::string &aName)
Create a tool with given id & name.
Definition
tool_interactive.cpp:35
EDA_UNITS
EDA_UNITS
Definition
eda_units.h:44
Reset
void Reset() override
tool_interactive.h
src
include
tool
common_tools.h
Generated on Fri Jun 26 2026 00:05:37 for KiCad PCB EDA Suite by
1.13.2