| 42 connect (bbx_buttons, SIGNAL (rejected ()), this, SLOT (reject ())); \ |
42 connect (bbx_buttons, SIGNAL (rejected ()), this, SLOT (reject ())); \ |
| 43 |
43 |
| 44 // ============================================================================= |
44 // ============================================================================= |
| 45 // Metadata for actions |
45 // Metadata for actions |
| 46 typedef struct { |
46 typedef struct { |
| 47 QAction** const qAct; |
47 QAction** qAct; |
| 48 keyseqconfig* const conf; |
48 keyseqconfig* conf; |
| 49 const char* const name, *sDisplayName, *sIconName, *sDescription; |
49 const char* name, *sDisplayName, *sIconName, *sDescription; |
| 50 void (*const handler) (); |
50 void (*handler) (); |
| 51 } actionmeta; |
51 } actionmeta; |
| 52 |
52 |
| 53 extern vector<actionmeta> g_ActionMeta; |
53 #define MAX_ACTIONS 256 |
| |
54 extern actionmeta g_actionMeta[256]; |
| 54 |
55 |
| 55 // ============================================================================= |
56 // ============================================================================= |
| 56 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
57 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
| 57 // ============================================================================= |
58 // ============================================================================= |
| 58 #define MAKE_ACTION(NAME, DISPLAYNAME, ICONNAME, DESCR, DEFSHORTCUT) \ |
59 #define MAKE_ACTION(NAME, DISPLAYNAME, ICONNAME, DESCR, DEFSHORTCUT) \ |
| 76 typedef struct { |
77 typedef struct { |
| 77 color* col; |
78 color* col; |
| 78 QToolButton* btn; |
79 QToolButton* btn; |
| 79 bool bSeparator; |
80 bool bSeparator; |
| 80 } quickColorMetaEntry; |
81 } quickColorMetaEntry; |
| 81 |
|
| 82 // ============================================================================= |
|
| 83 // ActionAdder |
|
| 84 // |
|
| 85 // The ACTION macro expands into - among other stuff - into an instance of this. |
|
| 86 // This class' constructor creates meta for the newly defined action and stores |
|
| 87 // it in g_ActionMeta. It is not supposed to be used directly! |
|
| 88 // ============================================================================= |
|
| 89 class ActionAdder { |
|
| 90 public: |
|
| 91 ActionAdder (QAction** qAct, const char* sDisplayName, const char* sIconName, |
|
| 92 const char* sDescription, keyseqconfig* conf, void (*const handler) (), |
|
| 93 const char* name) |
|
| 94 { |
|
| 95 actionmeta meta = {qAct, conf, name, sDisplayName, sIconName, sDescription, handler}; |
|
| 96 g_ActionMeta.push_back (meta); |
|
| 97 } |
|
| 98 }; |
|
| 99 |
82 |
| 100 // ============================================================================= |
83 // ============================================================================= |
| 101 // ObjectList |
84 // ObjectList |
| 102 // |
85 // |
| 103 // Object list class for ForgeWindow |
86 // Object list class for ForgeWindow |
| 144 std::vector<LDObject*>& sel () { return m_sel; } |
127 std::vector<LDObject*>& sel () { return m_sel; } |
| 145 void setQuickColorMeta (std::vector<quickColorMetaEntry>& quickColorMeta) { |
128 void setQuickColorMeta (std::vector<quickColorMetaEntry>& quickColorMeta) { |
| 146 m_colorMeta = quickColorMeta; |
129 m_colorMeta = quickColorMeta; |
| 147 } |
130 } |
| 148 void setStatusBarText (str text); |
131 void setStatusBarText (str text); |
| |
132 void addActionMeta (actionmeta& meta); |
| 149 |
133 |
| 150 protected: |
134 protected: |
| 151 void closeEvent (QCloseEvent* ev); |
135 void closeEvent (QCloseEvent* ev); |
| 152 void logVA (LogType eType, const char* fmtstr, va_list va); |
136 void logVA (LogType eType, const char* fmtstr, va_list va); |
| 153 |
137 |
| 199 |
183 |
| 200 // ----------------------------------------------------------------------------- |
184 // ----------------------------------------------------------------------------- |
| 201 // Pointer to the instance of ForgeWindow. |
185 // Pointer to the instance of ForgeWindow. |
| 202 extern ForgeWindow* g_win; |
186 extern ForgeWindow* g_win; |
| 203 |
187 |
| |
188 // ============================================================================= |
| |
189 // ActionAdder |
| |
190 // |
| |
191 // The MAKE_ACTION macro expands into - among other stuff - into an instance |
| |
192 // of this. This class' constructor creates meta for the newly defined action |
| |
193 // and stores it in g_actionMeta. Don't use this directly! |
| |
194 // ============================================================================= |
| |
195 class ActionAdder { |
| |
196 public: |
| |
197 ActionAdder (QAction** act, const char* displayName, const char* iconName, |
| |
198 const char* description, keyseqconfig* conf, void (*const handler) (), |
| |
199 const char* name) |
| |
200 { |
| |
201 actionmeta meta = {act, conf, name, displayName, iconName, description, handler}; |
| |
202 g_win->addActionMeta (meta); |
| |
203 } |
| |
204 }; |
| |
205 |
| 204 #endif // GUI_H |
206 #endif // GUI_H |