KiCad PCB EDA Suite
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 (C) 2019-2020 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, you may find one here:
21
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
22
* or you may search the http://www.gnu.org website for the version 2 license,
23
* or you may write to the Free Software Foundation, Inc.,
24
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
25
*/
26
27
#ifndef _COMMON_TOOLS_H
28
#define _COMMON_TOOLS_H
29
30
#include <
tool/tool_interactive.h
>
31
32
class
EDA_DRAW_FRAME
;
33
37
class
COMMON_TOOLS
:
public
TOOL_INTERACTIVE
38
{
39
public
:
40
COMMON_TOOLS
();
41
42
~COMMON_TOOLS
()
override
{ }
43
45
void
Reset
(
RESET_REASON
aReason )
override
;
46
47
int
SelectionTool
(
const
TOOL_EVENT
& aEvent );
48
49
// View controls
50
int
ZoomRedraw
(
const
TOOL_EVENT
& aEvent );
51
int
ZoomInOut
(
const
TOOL_EVENT
& aEvent );
52
int
ZoomInOutCenter
(
const
TOOL_EVENT
& aEvent );
53
int
ZoomCenter
(
const
TOOL_EVENT
& aEvent );
54
int
ZoomFitScreen
(
const
TOOL_EVENT
& aEvent );
55
int
ZoomFitObjects
(
const
TOOL_EVENT
& aEvent );
56
int
ZoomPreset
(
const
TOOL_EVENT
& aEvent );
57
58
int
CenterContents
(
const
TOOL_EVENT
& aEvent );
59
60
int
PanControl
(
const
TOOL_EVENT
& aEvent );
61
62
// Cursor control
63
int
CursorControl
(
const
TOOL_EVENT
& aEvent );
64
int
ToggleCursor
(
const
TOOL_EVENT
& aEvent );
65
int
ToggleCursorStyle
(
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
ToggleGrid
(
const
TOOL_EVENT
& aEvent );
86
int
GridProperties
(
const
TOOL_EVENT
& aEvent );
87
int
GridPreset
(
int
idx );
88
int
OnGridChanged
();
89
90
private
:
94
enum
ZOOM_FIT_TYPE_T
95
{
96
ZOOM_FIT_ALL
,
97
ZOOM_FIT_OBJECTS
,
98
};
99
101
void
setTransitions
()
override
;
102
104
EDA_DRAW_FRAME
*
m_frame
;
105
106
int
doZoomInOut
(
bool
aDirection,
bool
aCenterOnCursor );
107
109
int
doZoomToPreset
(
int
idx,
bool
aCenterOnCursor );
110
111
int
doZoomFit
(
ZOOM_FIT_TYPE_T
aFitType );
112
113
std::vector<VECTOR2I>
m_grids
;
115
116
// The last used units in each system (used for toggling between metric and imperial)
117
EDA_UNITS
m_imperialUnit
;
118
EDA_UNITS
m_metricUnit
;
119
};
120
121
#endif
COMMON_TOOLS
Handles action that are shared between different applications.
Definition:
common_tools.h:38
COMMON_TOOLS::~COMMON_TOOLS
~COMMON_TOOLS() override
Definition:
common_tools.h:42
COMMON_TOOLS::ZoomCenter
int ZoomCenter(const TOOL_EVENT &aEvent)
Definition:
common_tools.cpp:270
COMMON_TOOLS::GridProperties
int GridProperties(const TOOL_EVENT &aEvent)
Definition:
common_tools.cpp:509
COMMON_TOOLS::ToggleCursorStyle
int ToggleCursorStyle(const TOOL_EVENT &aEvent)
Definition:
common_tools.cpp:583
COMMON_TOOLS::doZoomToPreset
int doZoomToPreset(int idx, bool aCenterOnCursor)
Definition:
common_tools.cpp:391
COMMON_TOOLS::PanControl
int PanControl(const TOOL_EVENT &aEvent)
Definition:
common_tools.cpp:170
COMMON_TOOLS::m_metricUnit
EDA_UNITS m_metricUnit
Definition:
common_tools.h:118
COMMON_TOOLS::m_imperialUnit
EDA_UNITS m_imperialUnit
Definition:
common_tools.h:117
COMMON_TOOLS::SwitchUnits
int SwitchUnits(const TOOL_EVENT &aEvent)
Definition:
common_tools.cpp:520
COMMON_TOOLS::ToggleGrid
int ToggleGrid(const TOOL_EVENT &aEvent)
Definition:
common_tools.cpp:501
COMMON_TOOLS::GridFast1
int GridFast1(const TOOL_EVENT &aEvent)
Definition:
common_tools.cpp:489
COMMON_TOOLS::SetLastUnits
void SetLastUnits(EDA_UNITS aUnit)
Definition:
common_tools.cpp:81
COMMON_TOOLS::ToggleUnits
int ToggleUnits(const TOOL_EVENT &aEvent)
Definition:
common_tools.cpp:536
COMMON_TOOLS::GridFast2
int GridFast2(const TOOL_EVENT &aEvent)
Definition:
common_tools.cpp:495
COMMON_TOOLS::GridNext
int GridNext(const TOOL_EVENT &aEvent)
Definition:
common_tools.cpp:424
COMMON_TOOLS::setTransitions
void setTransitions() override
Pointer to the currently used edit frame.
Definition:
common_tools.cpp:613
COMMON_TOOLS::ZoomPreset
int ZoomPreset(const TOOL_EVENT &aEvent)
Definition:
common_tools.cpp:383
COMMON_TOOLS::ZoomFitScreen
int ZoomFitScreen(const TOOL_EVENT &aEvent)
Definition:
common_tools.cpp:280
COMMON_TOOLS::ToggleBoundingBoxes
int ToggleBoundingBoxes(const TOOL_EVENT &aEvent)
Definition:
common_tools.cpp:595
COMMON_TOOLS::GetLastImperialUnits
EDA_UNITS GetLastImperialUnits()
Definition:
common_tools.h:77
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:113
COMMON_TOOLS::ToggleCursor
int ToggleCursor(const TOOL_EVENT &aEvent)
Definition:
common_tools.cpp:571
COMMON_TOOLS::COMMON_TOOLS
COMMON_TOOLS()
Definition:
common_tools.cpp:45
COMMON_TOOLS::ZoomFitObjects
int ZoomFitObjects(const TOOL_EVENT &aEvent)
Definition:
common_tools.cpp:286
COMMON_TOOLS::CenterContents
int CenterContents(const TOOL_EVENT &aEvent)
Definition:
common_tools.cpp:364
COMMON_TOOLS::Reset
void Reset(RESET_REASON aReason) override
Bring the tool to a known, initial state.
Definition:
common_tools.cpp:53
COMMON_TOOLS::TogglePolarCoords
int TogglePolarCoords(const TOOL_EVENT &aEvent)
Definition:
common_tools.cpp:545
COMMON_TOOLS::GridPrev
int GridPrev(const TOOL_EVENT &aEvent)
Definition:
common_tools.cpp:437
COMMON_TOOLS::ZoomInOutCenter
int ZoomInOutCenter(const TOOL_EVENT &aEvent)
Definition:
common_tools.cpp:221
COMMON_TOOLS::ZoomRedraw
int ZoomRedraw(const TOOL_EVENT &aEvent)
Definition:
common_tools.cpp:207
COMMON_TOOLS::ResetLocalCoords
int ResetLocalCoords(const TOOL_EVENT &aEvent)
Definition:
common_tools.cpp:555
COMMON_TOOLS::OnGridChanged
int OnGridChanged()
Definition:
common_tools.cpp:466
COMMON_TOOLS::m_frame
EDA_DRAW_FRAME * m_frame
Definition:
common_tools.h:104
COMMON_TOOLS::doZoomFit
int doZoomFit(ZOOM_FIT_TYPE_T aFitType)
Definition:
common_tools.cpp:292
COMMON_TOOLS::CursorControl
int CursorControl(const TOOL_EVENT &aEvent)
Definition:
common_tools.cpp:103
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:95
COMMON_TOOLS::ZOOM_FIT_ALL
@ ZOOM_FIT_ALL
Zoom to fall all items in view INCLUDING page and border.
Definition:
common_tools.h:96
COMMON_TOOLS::ZOOM_FIT_OBJECTS
@ ZOOM_FIT_OBJECTS
Zoom to fit all items in view EXCLUDING page and border.
Definition:
common_tools.h:97
COMMON_TOOLS::SelectionTool
int SelectionTool(const TOOL_EVENT &aEvent)
Definition:
common_tools.cpp:92
COMMON_TOOLS::GetLastMetricUnits
EDA_UNITS GetLastMetricUnits()
Definition:
common_tools.h:76
COMMON_TOOLS::GridPreset
int GridPreset(const TOOL_EVENT &aEvent)
Definition:
common_tools.cpp:450
COMMON_TOOLS::ZoomInOut
int ZoomInOut(const TOOL_EVENT &aEvent)
Definition:
common_tools.cpp:214
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:228
EDA_DRAW_FRAME
The base class for create windows for drawing purpose.
Definition:
eda_draw_frame.h:72
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:156
TOOL_INTERACTIVE
Definition:
tool_interactive.h:57
EDA_UNITS
EDA_UNITS
Definition:
eda_units.h:43
tool_interactive.h
src
include
tool
common_tools.h
Generated on Mon Mar 6 2023 00:04:29 for KiCad PCB EDA Suite by
1.9.4