KiCad PCB EDA Suite
tool_event.h File Reference
#include <cstdio>
#include <deque>
#include <iterator>
#include <math/vector2d.h>
#include <core/optional.h>
#include <cassert>

Go to the source code of this file.

Classes

class  TOOL_EVENT
 Generic, UI-independent tool event. More...
 
class  TOOL_EVENT_LIST
 A list of TOOL_EVENTs, with overloaded || operators allowing for concatenating TOOL_EVENTs with little code. More...
 

Typedefs

typedef OPT< TOOL_EVENTOPT_TOOL_EVENT
 

Enumerations

enum  TOOL_EVENT_CATEGORY {
  TC_NONE = 0x00, TC_MOUSE = 0x01, TC_KEYBOARD = 0x02, TC_COMMAND = 0x04,
  TC_MESSAGE = 0x08, TC_VIEW = 0x10, TC_ANY = 0xffffffff
}
 Internal (GUI-independent) event definitions. More...
 
enum  TOOL_ACTIONS {
  TA_NONE = 0x0000, TA_MOUSE_CLICK = 0x0001, TA_MOUSE_DBLCLICK = 0x0002, TA_MOUSE_UP = 0x0004,
  TA_MOUSE_DOWN = 0x0008, TA_MOUSE_DRAG = 0x0010, TA_MOUSE_MOTION = 0x0020, TA_MOUSE_WHEEL = 0x0040,
  TA_MOUSE = 0x007f, TA_KEY_PRESSED = 0x0080, TA_KEYBOARD = TA_KEY_PRESSED, TA_VIEW_REFRESH = 0x0100,
  TA_VIEW_ZOOM = 0x0200, TA_VIEW_PAN = 0x0400, TA_VIEW_DIRTY = 0x0800, TA_VIEW = 0x0f00,
  TA_CHANGE_LAYER = 0x1000, TA_CANCEL_TOOL = 0x2000, TA_CHOICE_MENU_UPDATE = 0x4000, TA_CHOICE_MENU_CHOICE = 0x8000,
  TA_CHOICE_MENU_CLOSED = 0x10000, TA_CHOICE_MENU = TA_CHOICE_MENU_UPDATE | TA_CHOICE_MENU_CHOICE | TA_CHOICE_MENU_CLOSED, TA_UNDO_REDO_PRE = 0x20000, TA_UNDO_REDO_POST = 0x40000,
  TA_ACTION = 0x80000, TA_ACTIVATE = 0x100000, TA_REACTIVATE = 0x200000, TA_MODEL_CHANGE = 0x400000,
  TA_PRIME = 0x800001, TA_ANY = 0xffffffff
}
 
enum  TOOL_MOUSE_BUTTONS {
  BUT_NONE = 0x0, BUT_LEFT = 0x1, BUT_RIGHT = 0x2, BUT_MIDDLE = 0x4,
  BUT_BUTTON_MASK = BUT_LEFT | BUT_RIGHT | BUT_MIDDLE, BUT_ANY = 0xffffffff
}
 
enum  TOOL_MODIFIERS { MD_SHIFT = 0x1000, MD_CTRL = 0x2000, MD_ALT = 0x4000, MD_MODIFIER_MASK = MD_SHIFT | MD_CTRL | MD_ALT }
 
enum  TOOL_ACTION_SCOPE { AS_CONTEXT = 1, AS_ACTIVE, AS_GLOBAL }
 Scope of tool actions. More...
 
enum  TOOL_ACTION_FLAGS { AF_NONE = 0, AF_ACTIVATE = 1, AF_NOTIFY = 2 }
 Flags for tool actions. More...
 
enum  CONTEXT_MENU_TRIGGER { CMENU_BUTTON = 0, CMENU_NOW, CMENU_OFF }
 Defines when a context menu is opened. More...
 

Functions

const TOOL_EVENT_LIST operator|| (const TOOL_EVENT &aEventA, const TOOL_EVENT &aEventB)
 
const TOOL_EVENT_LIST operator|| (const TOOL_EVENT &aEvent, const TOOL_EVENT_LIST &aEventList)
 

Typedef Documentation

◆ OPT_TOOL_EVENT

Definition at line 569 of file tool_event.h.

Enumeration Type Documentation

◆ CONTEXT_MENU_TRIGGER

Defines when a context menu is opened.

Enumerator
CMENU_BUTTON 
CMENU_NOW 
CMENU_OFF 

Definition at line 163 of file tool_event.h.

164 {
165  CMENU_BUTTON = 0, // On the right button
166  CMENU_NOW, // Right now (after TOOL_INTERACTIVE::SetContextMenu)
167  CMENU_OFF // Never
168 };

◆ TOOL_ACTION_FLAGS

Flags for tool actions.

Enumerator
AF_NONE 
AF_ACTIVATE 

Action activates a tool.

AF_NOTIFY 

Action is a notification (it is by default passed to all tools)

Definition at line 155 of file tool_event.h.

156 {
157  AF_NONE = 0,
158  AF_ACTIVATE = 1,
159  AF_NOTIFY = 2
160 };
Action is a notification (it is by default passed to all tools)
Definition: tool_event.h:159
Action activates a tool.
Definition: tool_event.h:158

◆ TOOL_ACTION_SCOPE

Scope of tool actions.

Enumerator
AS_CONTEXT 

Action belongs to a particular tool (i.e. a part of a pop-up menu)

AS_ACTIVE 

All active tools.

AS_GLOBAL 

Global action (toolbar/main menu event, global shortcut)

Definition at line 147 of file tool_event.h.

148 {
149  AS_CONTEXT = 1,
150  AS_ACTIVE,
151  AS_GLOBAL
152 };
Action belongs to a particular tool (i.e. a part of a pop-up menu)
Definition: tool_event.h:149
All active tools.
Definition: tool_event.h:150
Global action (toolbar/main menu event, global shortcut)
Definition: tool_event.h:151

◆ TOOL_ACTIONS

Enumerator
TA_NONE 
TA_MOUSE_CLICK 
TA_MOUSE_DBLCLICK 
TA_MOUSE_UP 
TA_MOUSE_DOWN 
TA_MOUSE_DRAG 
TA_MOUSE_MOTION 
TA_MOUSE_WHEEL 
TA_MOUSE 
TA_KEY_PRESSED 
TA_KEYBOARD 
TA_VIEW_REFRESH 
TA_VIEW_ZOOM 
TA_VIEW_PAN 
TA_VIEW_DIRTY 
TA_VIEW 
TA_CHANGE_LAYER 
TA_CANCEL_TOOL 
TA_CHOICE_MENU_UPDATE 
TA_CHOICE_MENU_CHOICE 
TA_CHOICE_MENU_CLOSED 
TA_CHOICE_MENU 
TA_UNDO_REDO_PRE 
TA_UNDO_REDO_POST 
TA_ACTION 
TA_ACTIVATE 
TA_REACTIVATE 
TA_MODEL_CHANGE 
TA_PRIME 
TA_ANY 

Definition at line 62 of file tool_event.h.

63 {
64  // UI input events
65  TA_NONE = 0x0000,
66  TA_MOUSE_CLICK = 0x0001,
67  TA_MOUSE_DBLCLICK = 0x0002,
68  TA_MOUSE_UP = 0x0004,
69  TA_MOUSE_DOWN = 0x0008,
70  TA_MOUSE_DRAG = 0x0010,
71  TA_MOUSE_MOTION = 0x0020,
72  TA_MOUSE_WHEEL = 0x0040,
73  TA_MOUSE = 0x007f,
74 
75  TA_KEY_PRESSED = 0x0080,
77 
78  // View related events
79  TA_VIEW_REFRESH = 0x0100,
80  TA_VIEW_ZOOM = 0x0200,
81  TA_VIEW_PAN = 0x0400,
82  TA_VIEW_DIRTY = 0x0800,
83  TA_VIEW = 0x0f00,
84 
85  TA_CHANGE_LAYER = 0x1000,
86 
87  // Tool cancel event. Issued automagically when the user hits escape or selects End Tool from
88  // the context menu.
89  TA_CANCEL_TOOL = 0x2000,
90 
91  // Context menu update. Issued whenever context menu is open and the user hovers the mouse
92  // over one of choices. Used in dynamic highlighting in disambiguation menu
93  TA_CHOICE_MENU_UPDATE = 0x4000,
94 
95  // Context menu choice. Sent if the user picked something from the context menu or
96  // closed it without selecting anything.
97  TA_CHOICE_MENU_CHOICE = 0x8000,
98 
99  // Context menu is closed, no matter whether anything has been chosen or not.
100  TA_CHOICE_MENU_CLOSED = 0x10000,
101 
103 
104  // This event is sent *before* undo/redo command is performed.
105  TA_UNDO_REDO_PRE = 0x20000,
106 
107  // This event is sent *after* undo/redo command is performed.
108  TA_UNDO_REDO_POST = 0x40000,
109 
110  // Tool action (allows one to control tools).
111  TA_ACTION = 0x80000,
112 
113  // Tool activation event.
114  TA_ACTIVATE = 0x100000,
115 
116  // Tool re-activation event for tools already on the stack
117  TA_REACTIVATE = 0x200000,
118 
119  // Model has changed (partial update).
120  TA_MODEL_CHANGE = 0x400000,
121 
122  // Tool priming event (a special mouse click)
123  TA_PRIME = 0x800001,
124 
125  TA_ANY = 0xffffffff
126 };

◆ TOOL_EVENT_CATEGORY

Internal (GUI-independent) event definitions.

Enumerator
TC_NONE 
TC_MOUSE 
TC_KEYBOARD 
TC_COMMAND 
TC_MESSAGE 
TC_VIEW 
TC_ANY 

Definition at line 51 of file tool_event.h.

52 {
53  TC_NONE = 0x00,
54  TC_MOUSE = 0x01,
55  TC_KEYBOARD = 0x02,
56  TC_COMMAND = 0x04,
57  TC_MESSAGE = 0x08,
58  TC_VIEW = 0x10,
59  TC_ANY = 0xffffffff
60 };

◆ TOOL_MODIFIERS

Enumerator
MD_SHIFT 
MD_CTRL 
MD_ALT 
MD_MODIFIER_MASK 

Definition at line 138 of file tool_event.h.

139 {
140  MD_SHIFT = 0x1000,
141  MD_CTRL = 0x2000,
142  MD_ALT = 0x4000,
144 };

◆ TOOL_MOUSE_BUTTONS

Enumerator
BUT_NONE 
BUT_LEFT 
BUT_RIGHT 
BUT_MIDDLE 
BUT_BUTTON_MASK 
BUT_ANY 

Definition at line 128 of file tool_event.h.

129 {
130  BUT_NONE = 0x0,
131  BUT_LEFT = 0x1,
132  BUT_RIGHT = 0x2,
133  BUT_MIDDLE = 0x4,
135  BUT_ANY = 0xffffffff
136 };

Function Documentation

◆ operator||() [1/2]

const TOOL_EVENT_LIST operator|| ( const TOOL_EVENT aEventA,
const TOOL_EVENT aEventB 
)
inline

Definition at line 688 of file tool_event.h.

689 {
690  TOOL_EVENT_LIST l;
691 
692  l.Add( aEventA );
693  l.Add( aEventB );
694 
695  return l;
696 }
A list of TOOL_EVENTs, with overloaded || operators allowing for concatenating TOOL_EVENTs with littl...
Definition: tool_event.h:575
void Add(const TOOL_EVENT &aEvent)
Add a tool event to the list.
Definition: tool_event.h:619

References TOOL_EVENT_LIST::Add().

◆ operator||() [2/2]

const TOOL_EVENT_LIST operator|| ( const TOOL_EVENT aEvent,
const TOOL_EVENT_LIST aEventList 
)
inline

Definition at line 699 of file tool_event.h.

701 {
702  TOOL_EVENT_LIST l( aEventList );
703 
704  l.Add( aEvent );
705  return l;
706 }
A list of TOOL_EVENTs, with overloaded || operators allowing for concatenating TOOL_EVENTs with littl...
Definition: tool_event.h:575

References TOOL_EVENT_LIST::Add().