KiCad PCB EDA Suite
TOOL_EVENT Class Reference

Generic, UI-independent tool event. More...

#include <tool_event.h>

Public Member Functions

const std::string Format () const
 Return information about event in form of a human-readable string. More...
 
 TOOL_EVENT (TOOL_EVENT_CATEGORY aCategory=TC_NONE, TOOL_ACTIONS aAction=TA_NONE, TOOL_ACTION_SCOPE aScope=AS_GLOBAL, void *aParameter=nullptr)
 
 TOOL_EVENT (TOOL_EVENT_CATEGORY aCategory, TOOL_ACTIONS aAction, int aExtraParam, TOOL_ACTION_SCOPE aScope=AS_GLOBAL, void *aParameter=nullptr)
 
 TOOL_EVENT (TOOL_EVENT_CATEGORY aCategory, TOOL_ACTIONS aAction, const std::string &aExtraParam, TOOL_ACTION_SCOPE aScope=AS_GLOBAL, void *aParameter=nullptr)
 Returns the category (eg. mouse/keyboard/action) of an event.. More...
 
TOOL_EVENT_CATEGORY Category () const
 Returns more specific information about the type of an event. More...
 
TOOL_ACTIONS Action () const
 These give a tool a method of informing the TOOL_MANAGER that a particular event should be passed on to subsequent tools on the stack. More...
 
bool PassEvent () const
 
void SetPassEvent (bool aPass=true)
 Returns if it this event has a valid position (true for mouse events and context-menu or hotkey-based command events) More...
 
bool HasPosition () const
 
void SetHasPosition (bool aHasPosition)
 Returns if the action associated with this event should be treated as immediate regardless of the current immediate action settings. More...
 
bool ForceImmediate () const
 
void SetForceImmediate (bool aForceImmediate=true)
 
TOOL_BASEFirstResponder () const
 
void SetFirstResponder (TOOL_BASE *aTool)
 Controls whether the tool is first being pushed to the stack or being reactivated after a pause. More...
 
bool IsReactivate () const
 
void SetReactivate (bool aReactivate=true)
 Returns information about difference between current mouse cursor position and the place where dragging has started. More...
 
const VECTOR2D Delta () const
 Returns mouse cursor position in world coordinates. More...
 
const VECTOR2D Position () const
 Returns the point where dragging has started. More...
 
const VECTOR2D DragOrigin () const
 Returns information about mouse buttons state. More...
 
int Buttons () const
 
bool IsClick (int aButtonMask=BUT_ANY) const
 
bool IsDblClick (int aButtonMask=BUT_ANY) const
 
bool IsDrag (int aButtonMask=BUT_ANY) const
 
bool IsMouseUp (int aButtonMask=BUT_ANY) const
 
bool IsMotion () const
 
bool IsMouseAction () const
 
bool IsCancel () const
 
bool IsActivate () const
 
bool IsUndoRedo () const
 
bool IsChoiceMenu () const
 
bool IsPrime () const
 Returns information about key modifiers state (Ctrl, Alt, etc.) More...
 
int Modifier (int aMask=MD_MODIFIER_MASK) const
 
int KeyCode () const
 
bool IsKeyPressed () const
 
bool Matches (const TOOL_EVENT &aEvent) const
 Test whether two events match in terms of category & action or command. More...
 
bool IsAction (const TOOL_ACTION *aAction) const
 Test if the event contains an action issued upon activation of the given TOOL_ACTION. More...
 
bool IsCancelInteractive () const
 Indicate the event should restart/end an ongoing interactive tool's event loop (eg esc key, click cancel, start different tool). More...
 
bool IsSelectionEvent () const
 Indicate an selection-changed notification event. More...
 
bool IsPointEditor () const
 Indicate if the event is from one of the point editors. More...
 
bool IsMoveTool () const
 Indicate if the event is from one of the move tools. More...
 
bool IsSimulator () const
 Indicate if the event is from the simulator. More...
 
template<typename T >
Parameter () const
 Return a non-standard parameter assigned to the event. More...
 
template<typename T >
void SetParameter (T aParam)
 Set a non-standard parameter assigned to the event. More...
 
OPT< int > GetCommandId () const
 
OPT< std::string > GetCommandStr () const
 
void SetMousePosition (const VECTOR2D &aP)
 

Private Member Functions

void init ()
 
void setMouseDragOrigin (const VECTOR2D &aP)
 
void setMouseDelta (const VECTOR2D &aP)
 
void setMouseButtons (int aButtons)
 
void setModifiers (int aMods)
 
VECTOR2D returnCheckedPosition (const VECTOR2D &aPos) const
 Ensure that the event is a type that has a position before returning a position, otherwise return a null-constructed position. More...
 

Private Attributes

TOOL_EVENT_CATEGORY m_category
 
TOOL_ACTIONS m_actions
 
TOOL_ACTION_SCOPE m_scope
 
bool m_passEvent
 
bool m_hasPosition
 
bool m_forceImmediate
 True when the tool is being re-activated from the stack. More...
 
bool m_reactivate
 Difference between mouse cursor position and the point where dragging event has started. More...
 
VECTOR2D m_mouseDelta
 Current mouse cursor position. More...
 
VECTOR2D m_mousePos
 Point where dragging has started. More...
 
VECTOR2D m_mouseDragOrigin
 State of mouse buttons. More...
 
int m_mouseButtons
 Stores code of pressed/released key. More...
 
int m_keyCode
 State of key modifiers (Ctrl/Alt/etc.) More...
 
int m_modifiers
 Generic parameter used for passing non-standard data. More...
 
void * m_param
 The first tool to receive the event. More...
 
TOOL_BASEm_firstResponder
 
OPT< int > m_commandId
 
OPT< std::string > m_commandStr
 

Friends

class TOOL_DISPATCHER
 

Detailed Description

Generic, UI-independent tool event.

Definition at line 173 of file tool_event.h.

Constructor & Destructor Documentation

◆ TOOL_EVENT() [1/3]

TOOL_EVENT::TOOL_EVENT ( TOOL_EVENT_CATEGORY  aCategory = TC_NONE,
TOOL_ACTIONS  aAction = TA_NONE,
TOOL_ACTION_SCOPE  aScope = AS_GLOBAL,
void *  aParameter = nullptr 
)
inline

Definition at line 183 of file tool_event.h.

184  :
185  m_category( aCategory ),
186  m_actions( aAction ),
187  m_scope( aScope ),
188  m_mouseButtons( 0 ),
189  m_keyCode( 0 ),
190  m_modifiers( 0 ),
191  m_param( aParameter ),
192  m_firstResponder( nullptr )
193  {
194  init();
195  }
void init()
Definition: tool_event.cpp:54
int m_modifiers
Generic parameter used for passing non-standard data.
Definition: tool_event.h:557
TOOL_ACTIONS m_actions
Definition: tool_event.h:531
int m_mouseButtons
Stores code of pressed/released key.
Definition: tool_event.h:551
int m_keyCode
State of key modifiers (Ctrl/Alt/etc.)
Definition: tool_event.h:554
TOOL_ACTION_SCOPE m_scope
Definition: tool_event.h:532
TOOL_BASE * m_firstResponder
Definition: tool_event.h:563
void * m_param
The first tool to receive the event.
Definition: tool_event.h:560
TOOL_EVENT_CATEGORY m_category
Definition: tool_event.h:530

References init().

◆ TOOL_EVENT() [2/3]

TOOL_EVENT::TOOL_EVENT ( TOOL_EVENT_CATEGORY  aCategory,
TOOL_ACTIONS  aAction,
int  aExtraParam,
TOOL_ACTION_SCOPE  aScope = AS_GLOBAL,
void *  aParameter = nullptr 
)
inline

Definition at line 197 of file tool_event.h.

198  :
199  m_category( aCategory ),
200  m_actions( aAction ),
201  m_scope( aScope ),
202  m_mouseButtons( 0 ),
203  m_keyCode( 0 ),
204  m_modifiers( 0 ),
205  m_param( aParameter ),
206  m_firstResponder( nullptr )
207  {
208  if( aCategory == TC_MOUSE )
209  {
210  setMouseButtons( aExtraParam & BUT_BUTTON_MASK );
211  }
212  else if( aCategory == TC_KEYBOARD )
213  {
214  m_keyCode = aExtraParam & ~MD_MODIFIER_MASK; // Filter out modifiers
215  }
216  else if( aCategory == TC_COMMAND )
217  {
218  m_commandId = aExtraParam;
219  }
220 
221  if( aCategory & ( TC_MOUSE | TC_KEYBOARD ) )
222  {
223  m_modifiers = aExtraParam & MD_MODIFIER_MASK;
224  }
225 
226  init();
227  }
void setMouseButtons(int aButtons)
Definition: tool_event.h:496
void init()
Definition: tool_event.cpp:54
int m_modifiers
Generic parameter used for passing non-standard data.
Definition: tool_event.h:557
TOOL_ACTIONS m_actions
Definition: tool_event.h:531
int m_mouseButtons
Stores code of pressed/released key.
Definition: tool_event.h:551
int m_keyCode
State of key modifiers (Ctrl/Alt/etc.)
Definition: tool_event.h:554
OPT< int > m_commandId
Definition: tool_event.h:565
TOOL_ACTION_SCOPE m_scope
Definition: tool_event.h:532
TOOL_BASE * m_firstResponder
Definition: tool_event.h:563
void * m_param
The first tool to receive the event.
Definition: tool_event.h:560
TOOL_EVENT_CATEGORY m_category
Definition: tool_event.h:530

References BUT_BUTTON_MASK, init(), m_commandId, m_keyCode, m_modifiers, MD_MODIFIER_MASK, setMouseButtons(), TC_COMMAND, TC_KEYBOARD, and TC_MOUSE.

◆ TOOL_EVENT() [3/3]

TOOL_EVENT::TOOL_EVENT ( TOOL_EVENT_CATEGORY  aCategory,
TOOL_ACTIONS  aAction,
const std::string &  aExtraParam,
TOOL_ACTION_SCOPE  aScope = AS_GLOBAL,
void *  aParameter = nullptr 
)
inline

Returns the category (eg. mouse/keyboard/action) of an event..

Definition at line 229 of file tool_event.h.

References init(), m_commandStr, TC_COMMAND, and TC_MESSAGE.

Member Function Documentation

◆ Action()

TOOL_ACTIONS TOOL_EVENT::Action ( ) const
inline

These give a tool a method of informing the TOOL_MANAGER that a particular event should be passed on to subsequent tools on the stack.

Defaults to true for TC_MESSAGES; false for everything else.

Definition at line 251 of file tool_event.h.

References m_actions.

Referenced by EDIT_TOOL::cutToClipboard(), TOOL_MANAGER::DispatchHotKey(), PL_EDIT_TOOL::Main(), SYMBOL_EDITOR_MOVE_TOOL::Main(), and SCH_MOVE_TOOL::Main().

◆ Buttons()

int TOOL_EVENT::Buttons ( ) const
inline

Definition at line 296 of file tool_event.h.

297  {
298  assert( m_category == TC_MOUSE ); // this should be used only with mouse events
299  return m_mouseButtons;
300  }
int m_mouseButtons
Stores code of pressed/released key.
Definition: tool_event.h:551
TOOL_EVENT_CATEGORY m_category
Definition: tool_event.h:530

References m_category, m_mouseButtons, and TC_MOUSE.

◆ Category()

TOOL_EVENT_CATEGORY TOOL_EVENT::Category ( ) const
inline

Returns more specific information about the type of an event.

Definition at line 248 of file tool_event.h.

References m_category.

Referenced by EDIT_TOOL::cutToClipboard(), TOOL_MANAGER::dispatchInternal(), ROUTER_TOOL::handleCommonEvents(), PL_EDIT_TOOL::Main(), and SYMBOL_EDITOR_MOVE_TOOL::Main().

◆ Delta()

const VECTOR2D TOOL_EVENT::Delta ( ) const
inline

Returns mouse cursor position in world coordinates.

Definition at line 278 of file tool_event.h.

References m_mouseDelta, and returnCheckedPosition().

◆ DragOrigin()

const VECTOR2D TOOL_EVENT::DragOrigin ( ) const
inline

Returns information about mouse buttons state.

Definition at line 290 of file tool_event.h.

References m_mouseDragOrigin, and returnCheckedPosition().

Referenced by EE_POINT_EDITOR::updateEditedPoint(), PL_POINT_EDITOR::updateEditedPoint(), and PCB_POINT_EDITOR::updateEditedPoint().

◆ FirstResponder()

TOOL_BASE* TOOL_EVENT::FirstResponder ( ) const
inline

Definition at line 269 of file tool_event.h.

269 { return m_firstResponder; }
TOOL_BASE * m_firstResponder
Definition: tool_event.h:563

References m_firstResponder.

Referenced by TOOL_MANAGER::dispatchInternal().

◆ ForceImmediate()

bool TOOL_EVENT::ForceImmediate ( ) const
inline

Definition at line 266 of file tool_event.h.

266 { return m_forceImmediate; }
bool m_forceImmediate
True when the tool is being re-activated from the stack.
Definition: tool_event.h:535

References m_forceImmediate.

Referenced by TOOL_MANAGER::processEvent().

◆ Format()

const std::string TOOL_EVENT::Format ( ) const

Return information about event in form of a human-readable string.

Returns
Event information.

Definition at line 76 of file tool_event.cpp.

77 {
78  std::string ev;
79 
80  const FlagString categories[] =
81  {
82  { TC_MOUSE, "mouse" },
83  { TC_KEYBOARD, "keyboard" },
84  { TC_COMMAND, "command" },
85  { TC_MESSAGE, "message" },
86  { TC_VIEW, "view" },
87  { 0, "" }
88  };
89 
90  const FlagString actions[] =
91  {
92  { TA_MOUSE_CLICK, "click" },
93  { TA_MOUSE_DBLCLICK, "double click" },
94  { TA_MOUSE_UP, "button-up" },
95  { TA_MOUSE_DOWN, "button-down" },
96  { TA_MOUSE_DRAG, "drag" },
97  { TA_MOUSE_MOTION, "motion" },
98  { TA_MOUSE_WHEEL, "wheel" },
99  { TA_KEY_PRESSED, "key-pressed" },
100  { TA_VIEW_REFRESH, "view-refresh" },
101  { TA_VIEW_ZOOM, "view-zoom" },
102  { TA_VIEW_PAN, "view-pan" },
103  { TA_VIEW_DIRTY, "view-dirty" },
104  { TA_CHANGE_LAYER, "change-layer" },
105  { TA_CANCEL_TOOL, "cancel-tool" },
106  { TA_CHOICE_MENU_UPDATE, "choice-menu-update" },
107  { TA_CHOICE_MENU_CHOICE, "choice-menu-choice" },
108  { TA_UNDO_REDO_PRE, "undo-redo-pre" },
109  { TA_UNDO_REDO_POST, "undo-redo-post" },
110  { TA_ACTION, "action" },
111  { TA_ACTIVATE, "activate" },
112  { 0, "" }
113  };
114 
115  const FlagString buttons[] =
116  {
117  { BUT_NONE, "none" },
118  { BUT_LEFT, "left" },
119  { BUT_RIGHT, "right" },
120  { BUT_MIDDLE, "middle" },
121  { 0, "" }
122  };
123 
124  const FlagString modifiers[] =
125  {
126  { MD_SHIFT, "shift" },
127  { MD_CTRL, "ctrl" },
128  { MD_ALT, "alt" },
129  { 0, "" }
130  };
131 
132  ev = "category: ";
133  ev += flag2string( m_category, categories );
134  ev += " action: ";
135  ev += flag2string( m_actions, actions );
136 
137  if( m_actions & TA_MOUSE )
138  {
139  ev += " btns: ";
140  ev += flag2string( m_mouseButtons, buttons );
141  }
142 
143  if( m_actions & TA_KEYBOARD )
144  {
145  char tmp[128];
146  sprintf( tmp, "key: %d", m_keyCode );
147  ev += tmp;
148  }
149 
150  if( m_actions & ( TA_MOUSE | TA_KEYBOARD ) )
151  {
152  ev += " mods: ";
153  ev += flag2string( m_modifiers, modifiers );
154  }
155 
156  if( m_commandId )
157  {
158  char tmp[128];
159  sprintf( tmp, "cmd-id: %d", *m_commandId );
160  ev += tmp;
161  }
162 
163  if( m_commandStr )
164  ev += "cmd-str: " + ( *m_commandStr );
165 
166  return ev;
167 }
int m_modifiers
Generic parameter used for passing non-standard data.
Definition: tool_event.h:557
TOOL_ACTIONS m_actions
Definition: tool_event.h:531
int m_mouseButtons
Stores code of pressed/released key.
Definition: tool_event.h:551
OPT< std::string > m_commandStr
Definition: tool_event.h:566
int m_keyCode
State of key modifiers (Ctrl/Alt/etc.)
Definition: tool_event.h:554
OPT< int > m_commandId
Definition: tool_event.h:565
static const std::string flag2string(int aFlag, const FlagString *aExps)
Definition: tool_event.cpp:40
TOOL_EVENT_CATEGORY m_category
Definition: tool_event.h:530

References BUT_LEFT, BUT_MIDDLE, BUT_NONE, BUT_RIGHT, flag2string(), m_actions, m_category, m_commandId, m_commandStr, m_keyCode, m_modifiers, m_mouseButtons, MD_ALT, MD_CTRL, MD_SHIFT, TA_ACTION, TA_ACTIVATE, TA_CANCEL_TOOL, TA_CHANGE_LAYER, TA_CHOICE_MENU_CHOICE, TA_CHOICE_MENU_UPDATE, TA_KEY_PRESSED, TA_KEYBOARD, TA_MOUSE, TA_MOUSE_CLICK, TA_MOUSE_DBLCLICK, TA_MOUSE_DOWN, TA_MOUSE_DRAG, TA_MOUSE_MOTION, TA_MOUSE_UP, TA_MOUSE_WHEEL, TA_UNDO_REDO_POST, TA_UNDO_REDO_PRE, TA_VIEW_DIRTY, TA_VIEW_PAN, TA_VIEW_REFRESH, TA_VIEW_ZOOM, TC_COMMAND, TC_KEYBOARD, TC_MESSAGE, TC_MOUSE, and TC_VIEW.

Referenced by TOOL_MANAGER::dispatchActivation(), TOOL_MANAGER::dispatchInternal(), and TOOL_MANAGER::processEvent().

◆ GetCommandId()

OPT<int> TOOL_EVENT::GetCommandId ( ) const
inline

Definition at line 466 of file tool_event.h.

467  {
468  return m_commandId;
469  }
OPT< int > m_commandId
Definition: tool_event.h:565

References m_commandId.

Referenced by SCH_MOVE_TOOL::Main().

◆ GetCommandStr()

OPT<std::string> TOOL_EVENT::GetCommandStr ( ) const
inline

Definition at line 471 of file tool_event.h.

472  {
473  return m_commandStr;
474  }
OPT< std::string > m_commandStr
Definition: tool_event.h:566

References m_commandStr.

Referenced by MICROWAVE_TOOL::addMicrowaveFootprint(), SYMBOL_EDITOR_EDIT_TOOL::DeleteItemCursor(), PL_EDIT_TOOL::DeleteItemCursor(), SCH_EDIT_TOOL::DeleteItemCursor(), PCB_CONTROL::DeleteItemCursor(), TOOL_MANAGER::dispatchActivation(), EDIT_TOOL::doMoveSelection(), DRAWING_TOOL::DrawArc(), DRAWING_TOOL::DrawCircle(), DRAWING_TOOL::DrawDimension(), DRAWING_TOOL::DrawLine(), MICROWAVE_TOOL::drawMicrowaveInductor(), DRAWING_TOOL::DrawRectangle(), SCH_LINE_WIRE_BUS_TOOL::DrawSegments(), SYMBOL_EDITOR_DRAWING_TOOLS::DrawShape(), PL_DRAWING_TOOLS::DrawShape(), SCH_DRAWING_TOOLS::DrawSheet(), DRAWING_TOOL::DrawVia(), DRAWING_TOOL::DrawZone(), BOARD_EDITOR_CONTROL::DrillOrigin(), PAD_TOOL::EnumeratePads(), PCB_CONTROL::GridSetOrigin(), SCH_EDITOR_CONTROL::HighlightNetCursor(), BOARD_INSPECTION_TOOL::HighlightNetTool(), IsMoveTool(), IsPointEditor(), IsSimulator(), BOARD_INSPECTION_TOOL::LocalRatsnestTool(), ZOOM_TOOL::Main(), PL_EDIT_TOOL::Main(), SYMBOL_EDITOR_MOVE_TOOL::Main(), SCH_MOVE_TOOL::Main(), ROUTER_TOOL::MainLoop(), LENGTH_TUNER_TOOL::MainLoop(), GERBVIEW_INSPECTION_TOOL::MeasureTool(), PCB_VIEWER_TOOLS::MeasureTool(), SYMBOL_EDITOR_DRAWING_TOOLS::PlaceAnchor(), SCH_DRAWING_TOOLS::PlaceComponent(), BOARD_EDITOR_CONTROL::PlaceFootprint(), SCH_DRAWING_TOOLS::PlaceImage(), DRAWING_TOOL::PlaceImportedGraphics(), PL_DRAWING_TOOLS::PlaceItem(), PAD_TOOL::PlacePad(), BOARD_EDITOR_CONTROL::PlaceTarget(), DRAWING_TOOL::PlaceText(), TOOL_MANAGER::processEvent(), DRAWING_TOOL::SetAnchor(), SCH_DRAWING_TOOLS::SingleClickPlace(), SYMBOL_EDITOR_DRAWING_TOOLS::TwoClickPlace(), SCH_DRAWING_TOOLS::TwoClickPlace(), and SCH_LINE_WIRE_BUS_TOOL::UnfoldBus().

◆ HasPosition()

◆ init()

void TOOL_EVENT::init ( )
private

Definition at line 54 of file tool_event.cpp.

55 {
56  // By default only MESSAGEs and Cancels are passed to multiple recipients
58 
60 
61  // Cancel tool doesn't contain a position
62  if( IsCancel() )
63  m_hasPosition = false;
64 
65  m_forceImmediate = false;
66  m_reactivate = false;
67 }
bool IsCancel() const
Definition: tool_event.h:326
bool m_hasPosition
Definition: tool_event.h:534
bool m_forceImmediate
True when the tool is being re-activated from the stack.
Definition: tool_event.h:535
bool IsCancelInteractive() const
Indicate the event should restart/end an ongoing interactive tool's event loop (eg esc key,...
Definition: tool_event.cpp:193
bool m_passEvent
Definition: tool_event.h:533
bool m_reactivate
Difference between mouse cursor position and the point where dragging event has started.
Definition: tool_event.h:538
bool IsActivate() const
Definition: tool_event.h:331
TOOL_EVENT_CATEGORY m_category
Definition: tool_event.h:530

References IsActivate(), IsCancel(), IsCancelInteractive(), m_category, m_forceImmediate, m_hasPosition, m_passEvent, m_reactivate, TC_COMMAND, TC_MESSAGE, and TC_MOUSE.

Referenced by TOOL_EVENT().

◆ IsAction()

bool TOOL_EVENT::IsAction ( const TOOL_ACTION aAction) const

Test if the event contains an action issued upon activation of the given TOOL_ACTION.

Parameters
aActionis the TOOL_ACTION to be checked against.
Returns
True if it matches the given TOOL_ACTION.

Definition at line 70 of file tool_event.cpp.

71 {
72  return Matches( aAction->MakeEvent() );
73 }
bool Matches(const TOOL_EVENT &aEvent) const
Test whether two events match in terms of category & action or command.
Definition: tool_event.h:373
TOOL_EVENT MakeEvent() const
Return the event associated with the action (i.e.
Definition: tool_action.h:123

References TOOL_ACTION::MakeEvent(), and Matches().

Referenced by SYMBOL_EDITOR_CONTROL::AddLibrary(), PCB_CONTROL::AddLibrary(), SYMBOL_EDITOR_CONTROL::AddSymbol(), SCH_EDIT_TOOL::ChangeSymbols(), SCH_EDIT_TOOL::ConvertDeMorgan(), EDIT_TOOL::copyToClipboard(), SYMBOL_EDITOR_CONTROL::CutCopyDelete(), FOOTPRINT_EDITOR_CONTROL::CutCopyFootprint(), GERBVIEW_CONTROL::DisplayControl(), EDIT_TOOL::Drag(), DRAWING_TOOL::DrawDimension(), DRAWING_TOOL::DrawZone(), EDIT_TOOL::Duplicate(), SYMBOL_EDITOR_CONTROL::DuplicateSymbol(), SCH_EDIT_TOOL::EditField(), GLOBAL_EDIT_TOOL::ExchangeFootprints(), KICAD_MANAGER_CONTROL::Execute(), SCH_EDITOR_CONTROL::FindAndReplace(), SCH_EDITOR_CONTROL::FindNext(), BOARD_EDITOR_CONTROL::GenerateFabFiles(), getTargetLayerFromEvent(), ROUTER_TOOL::handleLayerSwitch(), GERBVIEW_CONTROL::HighlightControl(), BOARD_INSPECTION_TOOL::HighlightNet(), BOARD_INSPECTION_TOOL::HighlightNetTool(), TOOL_EVT_UTILS::IsRotateToolEvt(), CONVERT_TOOL::LinesToPoly(), PL_EDIT_TOOL::Main(), SYMBOL_EDITOR_MOVE_TOOL::Main(), SCH_MOVE_TOOL::Main(), SYMBOL_EDITOR_CONTROL::OnDeMorgan(), SCH_EDITOR_CONTROL::Paste(), SCH_DRAWING_TOOLS::PlaceComponent(), PL_DRAWING_TOOLS::PlaceItem(), CONVERT_TOOL::PolyToLines(), SYMBOL_EDITOR_EDIT_TOOL::Properties(), SYMBOL_EDITOR_PIN_TOOL::PushPinProperties(), SYMBOL_EDITOR_CONTROL::Save(), PCB_SELECTION_TOOL::selectNet(), COMMON_CONTROL::ShowHelp(), COMMON_CONTROL::ShowLibraryTable(), PL_EDITOR_CONTROL::TitleBlockDisplayMode(), PCB_CONTROL::ToggleRatsnest(), SYMBOL_EDITOR_DRAWING_TOOLS::TwoClickPlace(), SCH_DRAWING_TOOLS::TwoClickPlace(), SCH_EDITOR_CONTROL::UpdateFind(), PCB_CONTROL::ZoneDisplayMode(), COMMON_TOOLS::ZoomInOut(), EDA_3D_CONTROLLER::ZoomInOut(), COMMON_TOOLS::ZoomInOutCenter(), and EDA_3D_CONTROLLER::ZoomInOutCenter().

◆ IsActivate()

bool TOOL_EVENT::IsActivate ( ) const
inline

Definition at line 331 of file tool_event.h.

332  {
333  return m_actions == TA_ACTIVATE;
334  }
TOOL_ACTIONS m_actions
Definition: tool_event.h:531

References m_actions, and TA_ACTIVATE.

Referenced by TOOL_MANAGER::dispatchActivation(), init(), PL_EDIT_TOOL::Main(), SYMBOL_EDITOR_MOVE_TOOL::Main(), and SCH_MOVE_TOOL::Main().

◆ IsCancel()

bool TOOL_EVENT::IsCancel ( ) const
inline

Definition at line 326 of file tool_event.h.

327  {
328  return m_actions == TA_CANCEL_TOOL;
329  }
TOOL_ACTIONS m_actions
Definition: tool_event.h:531

References m_actions, and TA_CANCEL_TOOL.

Referenced by init().

◆ IsCancelInteractive()

bool TOOL_EVENT::IsCancelInteractive ( ) const

Indicate the event should restart/end an ongoing interactive tool's event loop (eg esc key, click cancel, start different tool).

Definition at line 193 of file tool_event.cpp.

194 {
195  return( ( m_commandStr.is_initialized()
197  || ( m_commandId.is_initialized()
199  || ( m_actions == TA_CANCEL_TOOL ) );
200 }
TOOL_ACTIONS m_actions
Definition: tool_event.h:531
static TOOL_ACTION cancelInteractive
Definition: actions.h:65
OPT< std::string > m_commandStr
Definition: tool_event.h:566
OPT< int > m_commandId
Definition: tool_event.h:565
int GetId() const
Return the unique id of the TOOL_ACTION object.
Definition: tool_action.h:103
const std::string & GetName() const
Return name of the action.
Definition: tool_action.h:83

References ACTIONS::cancelInteractive, TOOL_ACTION::GetId(), TOOL_ACTION::GetName(), m_actions, m_commandId, m_commandStr, and TA_CANCEL_TOOL.

Referenced by init(), PL_EDIT_TOOL::Main(), SYMBOL_EDITOR_MOVE_TOOL::Main(), and SCH_MOVE_TOOL::Main().

◆ IsChoiceMenu()

bool TOOL_EVENT::IsChoiceMenu ( ) const
inline

Definition at line 341 of file tool_event.h.

342  {
343  return m_actions & TA_CHOICE_MENU;
344  }
TOOL_ACTIONS m_actions
Definition: tool_event.h:531

References m_actions, and TA_CHOICE_MENU.

Referenced by TOOL_MANAGER::dispatchInternal().

◆ IsClick()

bool TOOL_EVENT::IsClick ( int  aButtonMask = BUT_ANY) const

Definition at line 181 of file tool_event.cpp.

182 {
183  return ( m_actions & TA_MOUSE_CLICK ) && ( m_mouseButtons & aButtonMask ) == m_mouseButtons;
184 }
TOOL_ACTIONS m_actions
Definition: tool_event.h:531
int m_mouseButtons
Stores code of pressed/released key.
Definition: tool_event.h:551

References m_actions, m_mouseButtons, and TA_MOUSE_CLICK.

Referenced by TOOL_MANAGER::DispatchContextMenu(), PL_EDIT_TOOL::Main(), SYMBOL_EDITOR_MOVE_TOOL::Main(), SCH_MOVE_TOOL::Main(), and PNS::TOOL_BASE::updateStartItem().

◆ IsDblClick()

bool TOOL_EVENT::IsDblClick ( int  aButtonMask = BUT_ANY) const

Definition at line 187 of file tool_event.cpp.

188 {
189  return m_actions == TA_MOUSE_DBLCLICK && ( m_mouseButtons & aButtonMask ) == m_mouseButtons;
190 }
TOOL_ACTIONS m_actions
Definition: tool_event.h:531
int m_mouseButtons
Stores code of pressed/released key.
Definition: tool_event.h:551

References m_actions, m_mouseButtons, and TA_MOUSE_DBLCLICK.

Referenced by SYMBOL_EDITOR_MOVE_TOOL::Main(), and SCH_MOVE_TOOL::Main().

◆ IsDrag()

bool TOOL_EVENT::IsDrag ( int  aButtonMask = BUT_ANY) const
inline

◆ IsKeyPressed()

bool TOOL_EVENT::IsKeyPressed ( ) const
inline

Definition at line 362 of file tool_event.h.

363  {
364  return m_actions == TA_KEY_PRESSED;
365  }
TOOL_ACTIONS m_actions
Definition: tool_event.h:531

References m_actions, and TA_KEY_PRESSED.

Referenced by ROUTER_TOOL::handleCommonEvents().

◆ IsMotion()

◆ IsMouseAction()

bool TOOL_EVENT::IsMouseAction ( ) const
inline

Definition at line 321 of file tool_event.h.

322  {
323  return ( m_actions & TA_MOUSE );
324  }
TOOL_ACTIONS m_actions
Definition: tool_event.h:531

References m_actions, and TA_MOUSE.

◆ IsMouseUp()

bool TOOL_EVENT::IsMouseUp ( int  aButtonMask = BUT_ANY) const
inline

Definition at line 311 of file tool_event.h.

312  {
313  return m_actions == TA_MOUSE_UP && ( m_mouseButtons & aButtonMask ) == m_mouseButtons;
314  }
TOOL_ACTIONS m_actions
Definition: tool_event.h:531
int m_mouseButtons
Stores code of pressed/released key.
Definition: tool_event.h:551

References m_actions, m_mouseButtons, and TA_MOUSE_UP.

Referenced by PL_EDIT_TOOL::Main(), SYMBOL_EDITOR_MOVE_TOOL::Main(), and SCH_MOVE_TOOL::Main().

◆ IsMoveTool()

bool TOOL_EVENT::IsMoveTool ( ) const

Indicate if the event is from one of the move tools.

Usually used to allow move to be done without de-activating the current drawing tool.

Definition at line 220 of file tool_event.cpp.

221 {
222  return( m_commandStr.is_initialized()
223  && m_commandStr.get().find( "InteractiveMove" ) != GetCommandStr()->npos );
224 }
OPT< std::string > m_commandStr
Definition: tool_event.h:566
OPT< std::string > GetCommandStr() const
Definition: tool_event.h:471

References GetCommandStr(), and m_commandStr.

◆ IsPointEditor()

bool TOOL_EVENT::IsPointEditor ( ) const

Indicate if the event is from one of the point editors.

Usually used to allow the point editor to activate itself without de-activating the current drawing tool.

Definition at line 211 of file tool_event.cpp.

212 {
213  return( ( m_commandStr.is_initialized()
214  && m_commandStr.get().find( "PointEditor" ) != GetCommandStr()->npos )
215  || ( m_commandId.is_initialized()
217 }
static TOOL_ACTION activatePointEditor
Definition: actions.h:171
OPT< std::string > m_commandStr
Definition: tool_event.h:566
OPT< int > m_commandId
Definition: tool_event.h:565
OPT< std::string > GetCommandStr() const
Definition: tool_event.h:471
int GetId() const
Return the unique id of the TOOL_ACTION object.
Definition: tool_action.h:103

References ACTIONS::activatePointEditor, GetCommandStr(), TOOL_ACTION::GetId(), m_commandId, and m_commandStr.

◆ IsPrime()

bool TOOL_EVENT::IsPrime ( ) const
inline

Returns information about key modifiers state (Ctrl, Alt, etc.)

Definition at line 346 of file tool_event.h.

References m_actions, and TA_PRIME.

◆ IsReactivate()

bool TOOL_EVENT::IsReactivate ( ) const
inline

Definition at line 273 of file tool_event.h.

273 { return m_reactivate; }
bool m_reactivate
Difference between mouse cursor position and the point where dragging event has started.
Definition: tool_event.h:538

References m_reactivate.

Referenced by SCH_DRAWING_TOOLS::PlaceComponent(), BOARD_EDITOR_CONTROL::PlaceFootprint(), SCH_DRAWING_TOOLS::PlaceImage(), PL_DRAWING_TOOLS::PlaceItem(), DRAWING_TOOL::PlaceText(), SYMBOL_EDITOR_DRAWING_TOOLS::TwoClickPlace(), and SCH_DRAWING_TOOLS::TwoClickPlace().

◆ IsSelectionEvent()

bool TOOL_EVENT::IsSelectionEvent ( ) const

Indicate an selection-changed notification event.

Definition at line 203 of file tool_event.cpp.

204 {
205  return Matches( EVENTS::ClearedEvent )
208 }
static const TOOL_EVENT SelectedEvent
Definition: actions.h:209
static const TOOL_EVENT UnselectedEvent
Definition: actions.h:210
static const TOOL_EVENT ClearedEvent
Selected item had a property changed (except movement)
Definition: actions.h:211
bool Matches(const TOOL_EVENT &aEvent) const
Test whether two events match in terms of category & action or command.
Definition: tool_event.h:373

References EVENTS::ClearedEvent, Matches(), EVENTS::SelectedEvent, and EVENTS::UnselectedEvent.

◆ IsSimulator()

bool TOOL_EVENT::IsSimulator ( ) const

Indicate if the event is from the simulator.

Definition at line 227 of file tool_event.cpp.

228 {
229  return( m_commandStr.is_initialized()
230  && m_commandStr.get().find( "Simulation" ) != GetCommandStr()->npos );
231 }
OPT< std::string > m_commandStr
Definition: tool_event.h:566
OPT< std::string > GetCommandStr() const
Definition: tool_event.h:471

References GetCommandStr(), and m_commandStr.

Referenced by TOOL_MANAGER::PostEvent().

◆ IsUndoRedo()

bool TOOL_EVENT::IsUndoRedo ( ) const
inline

Definition at line 336 of file tool_event.h.

337  {
339  }
TOOL_ACTIONS m_actions
Definition: tool_event.h:531

References m_actions, TA_UNDO_REDO_POST, and TA_UNDO_REDO_PRE.

◆ KeyCode()

int TOOL_EVENT::KeyCode ( ) const
inline

Definition at line 357 of file tool_event.h.

358  {
359  return m_keyCode;
360  }
int m_keyCode
State of key modifiers (Ctrl/Alt/etc.)
Definition: tool_event.h:554

References m_keyCode.

Referenced by TOOL_MANAGER::DispatchHotKey(), and ROUTER_TOOL::handleCommonEvents().

◆ Matches()

bool TOOL_EVENT::Matches ( const TOOL_EVENT aEvent) const
inline

Test whether two events match in terms of category & action or command.

Parameters
aEventis the event to test against.
Returns
True if two events match, false otherwise.

Definition at line 373 of file tool_event.h.

374  {
375  if( !( m_category & aEvent.m_category ) )
376  return false;
377 
379  {
380  if( (bool) m_commandStr && (bool) aEvent.m_commandStr )
381  return *m_commandStr == *aEvent.m_commandStr;
382 
383  if( (bool) m_commandId && (bool) aEvent.m_commandId )
384  return *m_commandId == *aEvent.m_commandId;
385  }
386 
387  // BUGFIX: TA_ANY should match EVERYTHING, even TA_NONE (for TC_MESSAGE)
388  if( m_actions == TA_ANY && aEvent.m_actions == TA_NONE && aEvent.m_category == TC_MESSAGE )
389  return true;
390 
391  // BUGFIX: This check must happen after the TC_COMMAND check because otherwise events of
392  // the form { TC_COMMAND, TA_NONE } will be incorrectly skipped
393  if( !( m_actions & aEvent.m_actions ) )
394  return false;
395 
396  return true;
397  }
TOOL_ACTIONS m_actions
Definition: tool_event.h:531
OPT< std::string > m_commandStr
Definition: tool_event.h:566
OPT< int > m_commandId
Definition: tool_event.h:565
TOOL_EVENT_CATEGORY m_category
Definition: tool_event.h:530

References m_actions, m_category, m_commandId, m_commandStr, TA_ANY, TA_NONE, TC_COMMAND, and TC_MESSAGE.

Referenced by IsAction(), IsSelectionEvent(), SYMBOL_EDITOR_EDIT_TOOL::Mirror(), SCH_EDIT_TOOL::Mirror(), PCB_POINT_EDITOR::OnSelectionChange(), SYMBOL_EDITOR_EDIT_TOOL::Rotate(), SCH_EDIT_TOOL::Rotate(), and SCH_EDITOR_CONTROL::UpdateFind().

◆ Modifier()

◆ Parameter()

template<typename T >
T TOOL_EVENT::Parameter ( ) const
inline

Return a non-standard parameter assigned to the event.

Its meaning depends on the target tool.

Definition at line 443 of file tool_event.h.

444  {
445  // Exhibit #798 on why I love to hate C++
446  // - reinterpret_cast needs to be used for pointers
447  // - static_cast must be used for enums
448  // - templates can't usefully distinguish between pointer and non-pointer types
449  // Fortunately good old C's cast can be a reinterpret_cast or a static_cast, and
450  // C99 gave us intptr_t which is guaranteed to be round-trippable with a pointer.
451  return (T) reinterpret_cast<intptr_t>( m_param );
452  }
void * m_param
The first tool to receive the event.
Definition: tool_event.h:560

References m_param.

Referenced by PL_SELECTION_TOOL::AddItemsToSel(), EE_SELECTION_TOOL::AddItemsToSel(), PL_SELECTION_TOOL::AddItemToSel(), EE_SELECTION_TOOL::AddItemToSel(), SCH_LINE_WIRE_BUS_TOOL::AddJunctionsIfNeeded(), MICROWAVE_TOOL::addMicrowaveFootprint(), CVPCB_CONTROL::ChangeFocus(), ROUTER_TOOL::ChangeRouterMode(), SCH_EDIT_TOOL::ChangeTextType(), COMMON_TOOLS::CursorControl(), PCB_SELECTION_TOOL::CursorSelection(), SCH_LINE_WIRE_BUS_TOOL::DrawSegments(), SYMBOL_EDITOR_DRAWING_TOOLS::DrawShape(), PL_DRAWING_TOOLS::DrawShape(), DRAWING_TOOL::DrawZone(), KICAD_MANAGER_CONTROL::Execute(), TOOL_EVT_UTILS::GetEventRotationAngle(), COMMON_TOOLS::GridPreset(), PCB_CONTROL::GridSetOrigin(), GROUP_TOOL::GroupProperties(), ROUTER_TOOL::handleLayerSwitch(), BOARD_INSPECTION_TOOL::HideNet(), BOARD_INSPECTION_TOOL::HighlightItem(), BOARD_INSPECTION_TOOL::HighlightNet(), SCH_NAVIGATE_TOOL::HypertextCommand(), ROUTER_TOOL::InlineDrag(), PCB_CONTROL::LayerSwitch(), PCB_PICKER_TOOL::Main(), EE_SELECTION_TOOL::Main(), PICKER_TOOL::Main(), ROUTER_TOOL::MainLoop(), LENGTH_TUNER_TOOL::MainLoop(), EDA_3D_CONTROLLER::On3DGridSelection(), COMMON_TOOLS::PanControl(), EDA_3D_CONTROLLER::PanControl(), SCH_DRAWING_TOOLS::PlaceComponent(), BOARD_EDITOR_CONTROL::PlaceFootprint(), SCH_DRAWING_TOOLS::PlaceImage(), PL_DRAWING_TOOLS::PlaceItem(), EDIT_TOOL::Remove(), PL_SELECTION_TOOL::RemoveItemFromSel(), EE_SELECTION_TOOL::RemoveItemFromSel(), PL_SELECTION_TOOL::RemoveItemsFromSel(), EE_SELECTION_TOOL::RemoveItemsFromSel(), EDA_3D_CONTROLLER::RotateView(), PL_SELECTION_TOOL::SelectionMenu(), PCB_SELECTION_TOOL::SelectionMenu(), EE_SELECTION_TOOL::SelectionMenu(), GERBVIEW_SELECTION_TOOL::SelectItem(), PCB_SELECTION_TOOL::SelectItem(), GERBVIEW_SELECTION_TOOL::SelectItems(), PCB_SELECTION_TOOL::SelectItems(), PCB_SELECTION_TOOL::selectNet(), PCB_SELECTION_TOOL::selectSheetContents(), EDA_3D_CONTROLLER::SetMaterial(), BOARD_INSPECTION_TOOL::ShowNet(), COMMON_CONTROL::ShowPlayer(), KICAD_MANAGER_CONTROL::ShowPlayer(), SCH_DRAWING_TOOLS::SingleClickPlace(), COMMON_TOOLS::SwitchUnits(), CVPCB_CONTROL::ToggleFootprintFilter(), EDA_3D_CONTROLLER::ToggleVisibility(), CVPCB_CONTROL::ToNA(), SYMBOL_EDITOR_DRAWING_TOOLS::TwoClickPlace(), SCH_LINE_WIRE_BUS_TOOL::UnfoldBus(), GERBVIEW_SELECTION_TOOL::UnselectItem(), PCB_SELECTION_TOOL::UnselectItem(), GERBVIEW_SELECTION_TOOL::UnselectItems(), PCB_SELECTION_TOOL::UnselectItems(), PL_SELECTION_TOOL::UpdateMenu(), KICAD_MANAGER_CONTROL::UpdateMenu(), GERBVIEW_SELECTION_TOOL::UpdateMenu(), EDA_3D_CONTROLLER::UpdateMenu(), CVPCB_FOOTPRINT_VIEWER_SELECTION_TOOL::UpdateMenu(), EE_SELECTION_TOOL::UpdateMenu(), CVPCB_CONTROL::UpdateMenu(), PCB_SELECTION_TOOL::UpdateMenu(), BOARD_INSPECTION_TOOL::UpdateSelectionRatsnest(), EDA_3D_CONTROLLER::ViewControl(), ZONE_FILLER_TOOL::ZoneFill(), and COMMON_TOOLS::ZoomPreset().

◆ PassEvent()

bool TOOL_EVENT::PassEvent ( ) const
inline

Definition at line 256 of file tool_event.h.

256 { return m_passEvent; }
bool m_passEvent
Definition: tool_event.h:533

References m_passEvent.

Referenced by TOOL_MANAGER::dispatchInternal().

◆ Position()

◆ returnCheckedPosition()

VECTOR2D TOOL_EVENT::returnCheckedPosition ( const VECTOR2D aPos) const
inlineprivate

Ensure that the event is a type that has a position before returning a position, otherwise return a null-constructed position.

Used to defend the position accessors from runtime access when the event does not have a valid position.

Parameters
aPosthe position to return if the event is valid
Returns
the checked position

Definition at line 518 of file tool_event.h.

519  {
520  #ifdef WX_COMPATIBILITY
521  wxCHECK_MSG( HasPosition(), VECTOR2D(),
522  "Attempted to get position from non-position event" );
523  #else
524  assert( HasPosition() );
525  #endif
526 
527  return aPos;
528  }
VECTOR2< double > VECTOR2D
Definition: vector2d.h:622
bool HasPosition() const
Definition: tool_event.h:261

References HasPosition().

Referenced by Delta(), DragOrigin(), and Position().

◆ SetFirstResponder()

void TOOL_EVENT::SetFirstResponder ( TOOL_BASE aTool)
inline

Controls whether the tool is first being pushed to the stack or being reactivated after a pause.

Definition at line 270 of file tool_event.h.

References m_firstResponder.

◆ SetForceImmediate()

void TOOL_EVENT::SetForceImmediate ( bool  aForceImmediate = true)
inline

Definition at line 267 of file tool_event.h.

267 { m_forceImmediate = aForceImmediate; }
bool m_forceImmediate
True when the tool is being re-activated from the stack.
Definition: tool_event.h:535

References m_forceImmediate.

◆ SetHasPosition()

void TOOL_EVENT::SetHasPosition ( bool  aHasPosition)
inline

Returns if the action associated with this event should be treated as immediate regardless of the current immediate action settings.

Definition at line 262 of file tool_event.h.

References m_hasPosition.

Referenced by PANEL_KICAD_LAUNCHER::CreateLaunchers(), TOOL_MANAGER::DispatchContextMenu(), ACTION_TOOLBAR::onPaletteEvent(), TOOLS_HOLDER::PopTool(), TOOL_MANAGER::processEvent(), and PCB_EDIT_FRAME::ShowBoardSetupDialog().

◆ setModifiers()

void TOOL_EVENT::setModifiers ( int  aMods)
inlineprivate

Definition at line 502 of file tool_event.h.

503  {
504  assert( ( aMods & ~MD_MODIFIER_MASK ) == 0 );
505  m_modifiers = aMods;
506  }
int m_modifiers
Generic parameter used for passing non-standard data.
Definition: tool_event.h:557

References m_modifiers, and MD_MODIFIER_MASK.

◆ setMouseButtons()

void TOOL_EVENT::setMouseButtons ( int  aButtons)
inlineprivate

Definition at line 496 of file tool_event.h.

497  {
498  assert( ( aButtons & ~BUT_BUTTON_MASK ) == 0 );
499  m_mouseButtons = aButtons;
500  }
int m_mouseButtons
Stores code of pressed/released key.
Definition: tool_event.h:551

References BUT_BUTTON_MASK, and m_mouseButtons.

Referenced by TOOL_EVENT().

◆ setMouseDelta()

void TOOL_EVENT::setMouseDelta ( const VECTOR2D aP)
inlineprivate

Definition at line 491 of file tool_event.h.

492  {
493  m_mouseDelta = aP;
494  }
VECTOR2D m_mouseDelta
Current mouse cursor position.
Definition: tool_event.h:542

References m_mouseDelta.

◆ setMouseDragOrigin()

void TOOL_EVENT::setMouseDragOrigin ( const VECTOR2D aP)
inlineprivate

Definition at line 486 of file tool_event.h.

487  {
488  m_mouseDragOrigin = aP;
489  }
VECTOR2D m_mouseDragOrigin
State of mouse buttons.
Definition: tool_event.h:548

References m_mouseDragOrigin.

◆ SetMousePosition()

void TOOL_EVENT::SetMousePosition ( const VECTOR2D aP)
inline

Definition at line 476 of file tool_event.h.

477  {
478  m_mousePos = aP;
479  }
VECTOR2D m_mousePos
Point where dragging has started.
Definition: tool_event.h:545

References m_mousePos.

Referenced by COMMON_TOOLS::CursorControl(), TOOL_MANAGER::invokeTool(), TOOL_MANAGER::PrimeTool(), and TOOL_MANAGER::RunAction().

◆ SetParameter()

template<typename T >
void TOOL_EVENT::SetParameter ( aParam)
inline

Set a non-standard parameter assigned to the event.

Its meaning depends on the target tool.

Parameters
aParamis the new parameter.

Definition at line 461 of file tool_event.h.

462  {
463  m_param = (void*) aParam;
464  }
void * m_param
The first tool to receive the event.
Definition: tool_event.h:560

References m_param.

Referenced by EDIT_TOOL::cutToClipboard(), and TOOL_MANAGER::DispatchContextMenu().

◆ SetPassEvent()

void TOOL_EVENT::SetPassEvent ( bool  aPass = true)
inline

Returns if it this event has a valid position (true for mouse events and context-menu or hotkey-based command events)

Definition at line 257 of file tool_event.h.

References m_passEvent.

Referenced by ROUTER_TOOL::handleCommonEvents(), PL_EDIT_TOOL::Main(), SYMBOL_EDITOR_MOVE_TOOL::Main(), and SCH_MOVE_TOOL::Main().

◆ SetReactivate()

void TOOL_EVENT::SetReactivate ( bool  aReactivate = true)
inline

Returns information about difference between current mouse cursor position and the place where dragging has started.

Definition at line 274 of file tool_event.h.

References m_reactivate.

Referenced by TOOLS_HOLDER::PopTool().

Friends And Related Function Documentation

◆ TOOL_DISPATCHER

friend class TOOL_DISPATCHER
friend

Definition at line 482 of file tool_event.h.

Member Data Documentation

◆ m_actions

◆ m_category

TOOL_EVENT_CATEGORY TOOL_EVENT::m_category
private

Definition at line 530 of file tool_event.h.

Referenced by Buttons(), Category(), Format(), init(), and Matches().

◆ m_commandId

OPT<int> TOOL_EVENT::m_commandId
private

◆ m_commandStr

OPT<std::string> TOOL_EVENT::m_commandStr
private

◆ m_firstResponder

TOOL_BASE* TOOL_EVENT::m_firstResponder
private

Definition at line 563 of file tool_event.h.

Referenced by FirstResponder(), and SetFirstResponder().

◆ m_forceImmediate

bool TOOL_EVENT::m_forceImmediate
private

True when the tool is being re-activated from the stack.

Definition at line 535 of file tool_event.h.

Referenced by ForceImmediate(), init(), and SetForceImmediate().

◆ m_hasPosition

bool TOOL_EVENT::m_hasPosition
private

Definition at line 534 of file tool_event.h.

Referenced by HasPosition(), init(), and SetHasPosition().

◆ m_keyCode

int TOOL_EVENT::m_keyCode
private

State of key modifiers (Ctrl/Alt/etc.)

Definition at line 554 of file tool_event.h.

Referenced by Format(), KeyCode(), and TOOL_EVENT().

◆ m_modifiers

int TOOL_EVENT::m_modifiers
private

Generic parameter used for passing non-standard data.

Definition at line 557 of file tool_event.h.

Referenced by Format(), Modifier(), setModifiers(), and TOOL_EVENT().

◆ m_mouseButtons

int TOOL_EVENT::m_mouseButtons
private

Stores code of pressed/released key.

Definition at line 551 of file tool_event.h.

Referenced by Buttons(), Format(), IsClick(), IsDblClick(), IsDrag(), IsMouseUp(), and setMouseButtons().

◆ m_mouseDelta

VECTOR2D TOOL_EVENT::m_mouseDelta
private

Current mouse cursor position.

Definition at line 542 of file tool_event.h.

Referenced by Delta(), and setMouseDelta().

◆ m_mouseDragOrigin

VECTOR2D TOOL_EVENT::m_mouseDragOrigin
private

State of mouse buttons.

Definition at line 548 of file tool_event.h.

Referenced by DragOrigin(), and setMouseDragOrigin().

◆ m_mousePos

VECTOR2D TOOL_EVENT::m_mousePos
private

Point where dragging has started.

Definition at line 545 of file tool_event.h.

Referenced by Position(), and SetMousePosition().

◆ m_param

void* TOOL_EVENT::m_param
private

The first tool to receive the event.

Definition at line 560 of file tool_event.h.

Referenced by Parameter(), and SetParameter().

◆ m_passEvent

bool TOOL_EVENT::m_passEvent
private

Definition at line 533 of file tool_event.h.

Referenced by init(), PassEvent(), and SetPassEvent().

◆ m_reactivate

bool TOOL_EVENT::m_reactivate
private

Difference between mouse cursor position and the point where dragging event has started.

Definition at line 538 of file tool_event.h.

Referenced by init(), IsReactivate(), and SetReactivate().

◆ m_scope

TOOL_ACTION_SCOPE TOOL_EVENT::m_scope
private

Definition at line 532 of file tool_event.h.


The documentation for this class was generated from the following files: