Horizon
action.hpp
1 #pragma once
2 #include <string>
3 #include <vector>
4 #include <gdk/gdk.h>
5 #include "core/tool_id.hpp"
6 #include <functional>
7 
8 namespace horizon {
9 
10 enum class ActionID {
11  NONE,
12  TOOL,
13  UNDO,
14  REDO,
15  COPY,
16  DUPLICATE,
17  PLACE_PART,
18  LAYER_UP,
19  LAYER_DOWN,
20  LAYER_TOP,
21  LAYER_BOTTOM,
22  LAYER_INNER1,
23  LAYER_INNER2,
24  LAYER_INNER3,
25  LAYER_INNER4,
26  LAYER_INNER5,
27  LAYER_INNER6,
28  LAYER_INNER7,
29  LAYER_INNER8,
30  SELECTION_FILTER,
31  SAVE,
32  VIEW_3D,
33  RULES,
34  RULES_RUN_CHECKS,
35  RULES_APPLY,
36  PREFERENCES,
37  POPOVER,
38  HELP,
39  VIEW_ALL,
40  SELECTION_TOOL_BOX,
41  SELECTION_TOOL_LASSO,
42  SELECTION_TOOL_PAINT,
43  SELECTION_QUALIFIER_AUTO,
44  SELECTION_QUALIFIER_INCLUDE_ORIGIN,
45  SELECTION_QUALIFIER_TOUCH_BOX,
46  SELECTION_QUALIFIER_INCLUDE_BOX,
47  TO_BOARD,
48  MOVE_TO_OTHER_SHEET,
49  SHOW_IN_BROWSER,
50  TUNING,
51  TUNING_ADD_TRACKS,
52  TUNING_ADD_TRACKS_ALL,
53  HIGHLIGHT_NET,
54  RELOAD_NETLIST,
55  SAVE_RELOAD_NETLIST,
56  BOM_EXPORT_WINDOW,
57  EXPORT_BOM,
58  RELOAD_POOL,
59  FLIP_VIEW,
60  VIEW_TOP,
61  VIEW_BOTTOM,
62  EDIT_PADSTACK,
63  EDIT_UNIT
64 };
65 
66 enum class ActionGroup {
67  ALL,
68  UNKNOWN,
69  CLIPBOARD,
70  UNDO,
71  MOVE,
72  GRAPHICS,
73  SCHEMATIC,
74  SYMBOL,
75  PACKAGE,
76  PADSTACK,
77  BOARD,
78  LAYER,
79  SELECTION,
80  RULES,
81  VIEW,
82  FRAME
83 };
84 
85 typedef std::vector<std::pair<int, GdkModifierType>> KeySequence2;
86 
87 std::string key_sequence_to_string(const KeySequence2 &keys);
88 
90 public:
91  ActionConnection(ActionID aid, ToolID tid, std::function<void(const ActionConnection &)> c)
92  : action_id(aid), tool_id(tid), cb(c)
93  {
94  }
95 
96  const ActionID action_id;
97  const ToolID tool_id;
98  std::vector<KeySequence2> key_sequences;
99  std::function<void(const ActionConnection &)> cb;
100 };
101 
102 std::pair<ActionID, ToolID> make_action(ActionID id);
103 std::pair<ActionID, ToolID> make_action(ToolID id);
104 
105 } // namespace horizon
Definition: action.hpp:89
Definition: block.cpp:9