| 30 #include "gldraw.h" |
30 #include "gldraw.h" |
| 31 #include "config.h" |
31 #include "config.h" |
| 32 |
32 |
| 33 // Stuff for dialogs |
33 // Stuff for dialogs |
| 34 #define IMPLEMENT_DIALOG_BUTTONS \ |
34 #define IMPLEMENT_DIALOG_BUTTONS \ |
| 35 qButtons = new QDialogButtonBox (QDialogButtonBox::Ok | QDialogButtonBox::Cancel); \ |
35 bbx_buttons = new QDialogButtonBox (QDialogButtonBox::Ok | QDialogButtonBox::Cancel); \ |
| 36 connect (qButtons, SIGNAL (accepted ()), this, SLOT (accept ())); \ |
36 connect (bbx_buttons, SIGNAL (accepted ()), this, SLOT (accept ())); \ |
| 37 connect (qButtons, SIGNAL (rejected ()), this, SLOT (reject ())); \ |
37 connect (bbx_buttons, SIGNAL (rejected ()), this, SLOT (reject ())); \ |
| 38 |
38 |
| 39 // ============================================================================= |
39 // ============================================================================= |
| 40 // Metadata for actions |
40 // Metadata for actions |
| 41 typedef struct { |
41 typedef struct { |
| 42 QAction** const qAct; |
42 QAction** const qAct; |
| 48 extern vector<actionmeta> g_ActionMeta; |
48 extern vector<actionmeta> g_ActionMeta; |
| 49 |
49 |
| 50 // ============================================================================= |
50 // ============================================================================= |
| 51 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
51 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
| 52 // ============================================================================= |
52 // ============================================================================= |
| 53 #define ACTION(NAME, DISPLAYNAME, ICONNAME, DESCR, DEFSHORTCUT) \ |
53 #define MAKE_ACTION(NAME, DISPLAYNAME, ICONNAME, DESCR, DEFSHORTCUT) \ |
| 54 QAction* ACTION_NAME (NAME); \ |
54 QAction* ACTION (NAME); \ |
| 55 cfg (keyseq, key_##NAME, DEFSHORTCUT); \ |
55 cfg (keyseq, key_##NAME, DEFSHORTCUT); \ |
| 56 static void actionHandler_##NAME (); \ |
56 static void actionHandler_##NAME (); \ |
| 57 static ActionAdder ActionAdderInstance_##NAME (&ACTION_NAME(NAME), DISPLAYNAME, \ |
57 static ActionAdder ActionAdderInstance_##NAME (&ACTION(NAME), DISPLAYNAME, \ |
| 58 ICONNAME, DESCR, &key_##NAME, actionHandler_##NAME); \ |
58 ICONNAME, DESCR, &key_##NAME, actionHandler_##NAME); \ |
| 59 static void actionHandler_##NAME () |
59 static void actionHandler_##NAME () |
| 60 |
60 |
| 61 #define EXTERN_ACTION(NAME) extern QAction* ACTION_NAME (NAME); |
61 #define EXTERN_ACTION(NAME) extern QAction* ACTION (NAME); |
| 62 #define ACTION_NAME(N) LDForgeAction_##N |
62 #define ACTION(N) LDForgeAction_##N |
| 63 |
63 |
| 64 // Convenience macros for key sequences. |
64 // Convenience macros for key sequences. |
| 65 #define KEY(N) (Qt::Key_##N) |
65 #define KEY(N) (Qt::Key_##N) |
| 66 #define CTRL(N) (Qt::CTRL | Qt::Key_##N) |
66 #define CTRL(N) (Qt::CTRL | Qt::Key_##N) |
| 67 #define SHIFT(N) (Qt::SHIFT | Qt::Key_##N) |
67 #define SHIFT(N) (Qt::SHIFT | Qt::Key_##N) |
| 123 std::vector<QPushButton*> qaColorButtons; |
123 std::vector<QPushButton*> qaColorButtons; |
| 124 QToolBar* qColorToolBar; |
124 QToolBar* qColorToolBar; |
| 125 std::vector<quickColorMetaEntry> quickColorMeta; |
125 std::vector<quickColorMetaEntry> quickColorMeta; |
| 126 |
126 |
| 127 // Selected objects |
127 // Selected objects |
| 128 std::vector<LDObject*> paSelection; |
128 std::vector<LDObject*> sel; |
| 129 |
129 |
| 130 str zMessageLogHTML; |
130 str zMessageLogHTML; |
| 131 |
131 |
| 132 ForgeWindow (); |
132 ForgeWindow (); |
| 133 void buildObjList (); |
133 void buildObjList (); |
| 134 void setTitle (); |
134 void setTitle (); |
| 135 void refresh (); |
135 void refresh (); |
| 136 std::vector<LDObject*> getSelectedObjects (); |
136 std::vector<LDObject*> getSelectedObjects (); |
| 137 std::vector<LDObject*>& selection (); |
|
| 138 ulong getInsertionPoint (); |
137 ulong getInsertionPoint (); |
| 139 void deleteSelection (vector<ulong>* ulapIndices, std::vector<LDObject*>* papObjects); |
138 void deleteSelection (vector<ulong>* ulapIndices, std::vector<LDObject*>* papObjects); |
| 140 void updateToolBars (); |
139 void updateToolBars (); |
| 141 void updateRecentFilesMenu (); |
140 void updateRecentFilesMenu (); |
| 142 void updateSelection (); |
141 void updateSelection (); |
| 143 void updateGridToolBar (); |
142 void updateGridToolBar (); |
| 144 bool isSelected (LDObject* obj); |
143 bool isSelected (LDObject* obj); |
| 145 short getSelectedColor(); |
144 short getSelectedColor(); |
| 146 LDObjectType_e getSelectedType (); |
145 LDObjectType_e uniformSelectedType (); |
| 147 |
146 |
| 148 protected: |
147 protected: |
| 149 void closeEvent (QCloseEvent* ev); |
148 void closeEvent (QCloseEvent* ev); |
| 150 |
149 |
| 151 private: |
150 private: |