Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
eclipse
GitHub Repository: eclipse/sumo
Path: blob/main/src/utils/gui/div/GUIDesigns.h
169684 views
1
/****************************************************************************/
2
// Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
3
// Copyright (C) 2001-2025 German Aerospace Center (DLR) and others.
4
// This program and the accompanying materials are made available under the
5
// terms of the Eclipse Public License 2.0 which is available at
6
// https://www.eclipse.org/legal/epl-2.0/
7
// This Source Code may also be made available under the following Secondary
8
// Licenses when the conditions for such availability set forth in the Eclipse
9
// Public License 2.0 are satisfied: GNU General Public License, version 2
10
// or later which is available at
11
// https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
12
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
13
/****************************************************************************/
14
/// @file GUIDesigns.h
15
/// @author Pablo Alvarez Lopez
16
/// @date Oct 2016
17
///
18
// File with the definitions of standard style of FXObjects in SUMO
19
/****************************************************************************/
20
#pragma once
21
#include <config.h>
22
23
#include <string>
24
#include <utils/foxtools/fxheader.h>
25
#include <utils/common/StdDefs.h>
26
27
// ===========================================================================
28
// Class declaration
29
// ===========================================================================
30
31
class MFXMenuCheckIcon;
32
33
// ===========================================================================
34
// Definitions
35
// ===========================================================================
36
37
/// @brief black color (for correct text)
38
#define GUIDesignTextColorBlack FXRGB(0, 0, 0)
39
40
/// @brief blue color (for default text)
41
#define GUIDesignTextColorBlue FXRGB(0, 0, 255)
42
43
/// @brief red color (for invalid text)
44
#define GUIDesignTextColorRed FXRGB(255, 0, 0)
45
46
/// @brief white background color (for valid text)
47
#define GUIDesignBackgroundColorWhite FXRGB(255, 255, 255)
48
49
/// @brief red background color (for invalid text)
50
#define GUIDesignBackgroundColorRed FXRGBA(255, 213, 213, 255)
51
52
/// @brief define the default frames area width
53
#define GUIDesignFramesAreaDefaultWidth 220
54
55
/// @brief right margin for frame area
56
#define GUIDesignFrameAreaMargin 2
57
58
/// @brief elements with big images
59
#define GUIDesignBigSizeElement 138
60
61
/// @name ComboBox sizes
62
/// @{
63
/// @brief combo box size
64
#define GUIDesignComboBoxVisibleItems ((int)getApp()->reg().readIntEntry("SETTINGS", "comboRows", 32))
65
66
/// @brief combo box size fixed
67
#define GUIDesignComboBoxVisibleItemsFixed 15
68
69
/// @}
70
71
/// @name FXTextFields
72
/// @{
73
/// @brief text field extended over Frame with thick frame
74
#define GUIDesignTextField (FRAME_THICK | LAYOUT_FILL_X | LAYOUT_FIX_HEIGHT), 0, 0, 0, GUIDesignHeight, 2, 2, 2, 2
75
76
/// @brief text field extended over Frame with thick frame (int)
77
#define GUIDesignTextFieldRestricted(type) (FRAME_THICK | LAYOUT_FILL_X | LAYOUT_FIX_HEIGHT | type), 0, 0, 0, GUIDesignHeight, 2, 2, 2, 2
78
79
/// @brief text field with fixed width
80
#define GUIDesignTextFieldFixed(width) (FRAME_THICK | LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT), 0, 0, width, GUIDesignHeight, 2, 2, 2, 2
81
82
/// @brief text field with fixed width
83
#define GUIDesignTextFieldFixedRestricted(width, type) (FRAME_THICK | LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT | type), 0, 0, width, GUIDesignHeight, 2, 2, 2, 2
84
85
/// @brief text field with min width (used in TLS table)
86
#define GUIDesignTextFieldTLSTable (FRAME_THICK | LAYOUT_FILL_X | LAYOUT_MIN_WIDTH | LAYOUT_FIX_HEIGHT | JUSTIFY_CENTER_Y | JUSTIFY_LEFT), 0, 0, 0, GUIDesignHeight, 2, 2, 2, 2
87
88
/// @brief text field used in file dialog
89
#define GUIDesignTextFieldFileDialog (FRAME_THICK | FRAME_SUNKEN | LAYOUT_FILL_X | LAYOUT_FIX_HEIGHT), 0, 0, 0, GUIDesignHeight, 2, 2, 2, 2
90
91
/// @brief Num of column of text field
92
#define GUIDesignTextFieldNCol 1
93
94
/// @}
95
96
97
/// @name FXButtons
98
/// @{
99
/// @brief button extended over over Frame with thick and raise frame
100
#define GUIDesignButton (FRAME_THICK | FRAME_RAISED | ICON_BEFORE_TEXT | LAYOUT_FILL_X | LAYOUT_FIX_HEIGHT), 0, 0, 0, GUIDesignHeight, 2, 2, 2, 2
101
102
/// @brief button extended over over Frame with thick and raise frame
103
#define GUIDesignButtonLeft (FRAME_THICK | FRAME_RAISED | ICON_BEFORE_TEXT | JUSTIFY_LEFT | JUSTIFY_CENTER_Y | LAYOUT_FILL_X | LAYOUT_FIX_HEIGHT), 0, 0, 0, GUIDesignHeight, 2, 2, 2, 2
104
105
/// @brief button extended over over column with thick and raise frame
106
#define GUIDesignButtonAttribute (FRAME_THICK | FRAME_RAISED | ICON_BEFORE_TEXT | LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT), 0, 0, 100, GUIDesignHeight, 2, 2, 2, 2
107
108
/// @brief button only with icon
109
#define GUIDesignButtonIcon (FRAME_THICK | FRAME_RAISED | LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT), 0, 0, GUIDesignHeight, GUIDesignHeight, 2, 2, 2, 2
110
111
/// @brief little rectangular button used in frames (For example, in "help" buttons)
112
#define GUIDesignButtonRectangular (FRAME_THICK | FRAME_RAISED | ICON_BEFORE_TEXT | JUSTIFY_CENTER_X | JUSTIFY_CENTER_Y | LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT), 0, 0, (GUIDesignHeight + GUIDesignHeight), GUIDesignHeight, 2, 2, 2, 2
113
114
/// @brief button rectangular with thick and raise frame with the given width
115
#define GUIDesignButtonFixed(width) (FRAME_THICK | FRAME_RAISED | ICON_BEFORE_TEXT | JUSTIFY_CENTER_X | JUSTIFY_CENTER_Y | LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT), 0, 0, width, GUIDesignHeight, 2, 2, 2, 2
116
117
/// @brief button used in GroupBoxModule
118
#define GUIDesignButtonMFXGroupBoxModule (FRAME_LINE | LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT), 0, 0, GUIDesignHeight - 1, GUIDesignHeight - 1, 2, 2, 2, 2
119
120
/// @brief button used in GroupBoxModule for extend
121
#define GUIDesignButtonMFXGroupBoxModuleExtend (FRAME_LINE | LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT), 0, 0, 60, GUIDesignHeight - 1, 2, 2, 2, 2
122
123
/// @brief button rectangular with thick and raise frame with a width of 100
124
#define GUIDesignButtonStatusBarFixed (ICON_BEFORE_TEXT | JUSTIFY_CENTER_X | JUSTIFY_CENTER_Y | LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT), 0, 0, 100, GUIDesignHeight, 2, 2, 2, 2
125
126
/// @brief checkable button only with icon used in TLSTable
127
#define GUIDesignTLSTableCheckableButtonIcon (MENUBUTTON_RIGHT | FRAME_THICK | FRAME_RAISED | LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT), 0, 0, GUIDesignHeight, GUIDesignHeight, 0, 0, 0, 0
128
129
/// @brief checkable button placed in popup (for example, locate buttons)
130
#define GUIDesignButtonPopup (ICON_ABOVE_TEXT | FRAME_THICK | FRAME_RAISED)
131
132
/// @brief button only with icon
133
#define GUIDesignButtonIconFileDialog (BUTTON_TOOLBAR | FRAME_RAISED | LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT), 0, 0, GUIDesignHeight, GUIDesignHeight, 2, 2, 2, 2
134
135
/// @}
136
137
138
/// @name FXButtons for toolbar
139
/// @{
140
/// @brief little button with text placed in navigation toolbar
141
#define GUIDesignButtonToolbarText (BUTTON_TOOLBAR | ICON_BEFORE_TEXT | FRAME_RAISED | LAYOUT_TOP | LAYOUT_LEFT | LAYOUT_CENTER_Y | LAYOUT_FIX_HEIGHT), 0, 0, 0, GUIDesignHeight
142
143
/// @brief little button with icon placed in navigation toolbar
144
#define GUIDesignButtonToolbar (BUTTON_TOOLBAR | ICON_BEFORE_TEXT | FRAME_RAISED | LAYOUT_TOP | LAYOUT_LEFT | LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT), 0, 0, GUIDesignHeight, GUIDesignHeight
145
146
/// @brief little button with text and icon
147
#define GUIDesignButtonToolbarWithText (BUTTON_TOOLBAR | ICON_BEFORE_TEXT | FRAME_RAISED | LAYOUT_TOP | LAYOUT_LEFT | LAYOUT_FIX_HEIGHT | JUSTIFY_LEFT), 0, 0, 0, GUIDesignHeight
148
149
/// @brief little checkable button with icon placed in navigation toolbar used specify for Locator
150
#define GUIDesignButtonToolbarLocator (BUTTON_TOOLBAR | MENUBUTTON_RIGHT | LAYOUT_TOP | FRAME_RAISED | FRAME_THICK | LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT), 0, 0, GUIDesignHeight, GUIDesignHeight
151
152
/// @}
153
154
155
/// @name FXButtons for toolbar
156
/// @{
157
/// @brief MFX Checkable Button with icon placed in navigation toolbar
158
#define GUIDesignMFXCheckableButtonSquare (BUTTON_NORMAL | LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT), 0, 0, GUIDesignHeight, GUIDesignHeight
159
160
/// @brief checkable button with icon placed in navigation toolbar for supermodes
161
#define GUIDesignMFXCheckableButtonSupermode (BUTTON_NORMAL | LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT), 0, 0, 100, GUIDesignHeight
162
163
/// @brief checkable button extended over frame
164
#define GUIDesignMFXCheckableButton (BUTTON_NORMAL | LAYOUT_FILL_X | LAYOUT_FIX_HEIGHT), 0, 0, 0, GUIDesignHeight
165
166
/// @brief checkable button extended over frame
167
#define GUIDesignMFXCheckableButtonBig (BUTTON_NORMAL | LAYOUT_FILL_X | LAYOUT_FIX_HEIGHT), 0, 0, GUIDesignBigSizeElement, GUIDesignBigSizeElement
168
169
/// @}
170
171
/// @name FXButtons for dialogs
172
/// @{
173
/// @brief OK Button
174
#define GUIDesignButtonDialog (ICON_BEFORE_TEXT | LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT | FRAME_THICK | FRAME_RAISED), 0, 0, 110, GUIDesignDialogButtonsHeight, 2, 2, 2, 2
175
176
/// @brief Configuration Button
177
#define GUIDesignButtonConfiguration (ICON_BEFORE_TEXT | LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT | FRAME_THICK | FRAME_RAISED), 0, 0, 140, GUIDesignHeight, 2, 2, 2, 2
178
179
/// @brief overwrite Button
180
#define GUIDesignButtonKeepElements (ICON_BEFORE_TEXT | LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT | FRAME_THICK | FRAME_RAISED), 0, 0, 120, GUIDesignHeight, 2, 2, 2, 2
181
182
/// @brief Focus Button
183
#define GUIDesignButtonFocus (ICON_BEFORE_TEXT | LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT | FRAME_NONE), 0, 0, 0, 0, 0, 0, 0, 0
184
185
/// @brief Button with custom width (used in GNEGeometryPointDialog)
186
#define GUIDesignButtonCustomWidth(width) (ICON_BEFORE_TEXT | LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT | FRAME_THICK | FRAME_RAISED), 0, 0, width, GUIDesignHeight, 2, 2, 2, 2
187
/// @}
188
189
190
/// @name FXCheckButtons
191
/// @{
192
193
/// @brief checkButton placed in left position
194
#define GUIDesignCheckButton (CHECKBUTTON_NORMAL | JUSTIFY_CENTER_Y | LAYOUT_FIX_HEIGHT | JUSTIFY_LEFT), 0, 0, 0, GUIDesignHeight, 2, 2, 2, 2
195
196
/// @brief checkButton placed in left position
197
#define GUIDesignCheckButtonThick (CHECKBUTTON_NORMAL | FRAME_THICK | JUSTIFY_CENTER_Y | LAYOUT_FIX_HEIGHT | JUSTIFY_LEFT), 0, 0, 0, GUIDesignHeight, 2, 2, 2, 2
198
199
/// @brief checkButton placed in left position with double size
200
#define GUIDesignCheckButtonExtraHeight (CHECKBUTTON_NORMAL | JUSTIFY_CENTER_Y | LAYOUT_FIX_HEIGHT | JUSTIFY_LEFT), 0, 0, 0, GUIDesignHeight + 10, 2, 2, 2, 2
201
202
/// @brief checkButton without thick extended over the frame used for attributes
203
#define GUIDesignCheckButtonAttribute (CHECKBUTTON_NORMAL | JUSTIFY_CENTER_Y | LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT | JUSTIFY_LEFT | ICON_BEFORE_TEXT | FRAME_THICK), 0, 0, 100, GUIDesignHeight, 2, 2, 2, 2
204
205
/// @brief checkButton placed in center position with size GUIDesignHeight x GUIDesignHeight
206
#define GUIDesignCheckButtonIcon (CHECKBUTTON_NORMAL | JUSTIFY_CENTER_Y | LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT | JUSTIFY_CENTER_X), 0, 0, GUIDesignHeight, GUIDesignHeight, 2, 2, 2, 2
207
208
/// @brief CheckButton for Frames without thick extended over the frame
209
#define GUIDesignCheckButtonViewSettings (CHECKBUTTON_NORMAL | LAYOUT_CENTER_Y)
210
211
/// @brief design for check button with fixed height (used in fix elements dialogs)
212
#define GUIDesignCheckButtonFix (CHECKBUTTON_NORMAL | JUSTIFY_CENTER_Y | LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT | JUSTIFY_LEFT | ICON_BEFORE_TEXT), 0, 0, 200, GUIDesignHeight - 2, 2, 2, 2, 2
213
214
/// @}
215
216
217
/// @name MDI Buttons
218
/// @{
219
/// @brief MDIButton oriented to left
220
#define GUIDesignMDIButtonLeft (LAYOUT_LEFT)
221
222
/// @brief MDIButton oriented to right
223
#define GUIDesignMDIButtonRight (FRAME_RAISED | LAYOUT_RIGHT)
224
225
/// @}
226
227
228
/// @name FXRadiobuttons
229
/// @{
230
/// @brief design for radio button
231
#define GUIDesignRadioButton (LAYOUT_LEFT | LAYOUT_FILL_X | ICON_BEFORE_TEXT | JUSTIFY_LEFT)
232
233
/// @brief design for radio button squared
234
#define GUIDesignRadioButtonSquared (RADIOBUTTON_NORMAL | FRAME_THICK | LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT | JUSTIFY_CENTER_X | JUSTIFY_CENTER_Y), 0, 0, GUIDesignHeight, GUIDesignHeight, 2, 2, 2, 2
235
236
/// @brief design for radio button with fixed height (used in fix elements dialogs)
237
#define GUIDesignRadioButtonFix (RADIOBUTTON_NORMAL | JUSTIFY_CENTER_Y | LAYOUT_FILL_X | LAYOUT_FIX_HEIGHT | JUSTIFY_LEFT | ICON_BEFORE_TEXT), 0, 0, 0, GUIDesignHeight, 2, 2, 2, 2
238
239
/// @}
240
241
242
/// @name FXLabels
243
/// @{
244
/// @brief label extended over frame
245
#define GUIDesignLabel(justify) (LAYOUT_FILL_X | ICON_BEFORE_TEXT | justify | LAYOUT_FIX_HEIGHT), 0, 0, 0, GUIDesignHeight, 2, 2, 2, 2
246
247
/// @brief label, icon before text, text centered and custom width
248
#define GUIDesignLabelFixed(width) (ICON_BEFORE_TEXT | JUSTIFY_CENTER_X | JUSTIFY_CENTER_Y | LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT), 0, 0, width, GUIDesignHeight, 2, 2, 2, 2
249
250
/// @brief label extended over frame with thick and with text justify to left
251
#define GUIDesignLabelThick(justify) (FRAME_THICK | LAYOUT_FILL_X | ICON_BEFORE_TEXT | justify | LAYOUT_FIX_HEIGHT), 0, 0, 0, GUIDesignHeight, 2, 2, 2, 2
252
253
/// @brief label thicked, icon before text, text centered and custom width
254
#define GUIDesignLabelThickedFixed(width) (FRAME_THICK | ICON_BEFORE_TEXT | JUSTIFY_CENTER_X | JUSTIFY_CENTER_Y | LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT), 0, 0, width, GUIDesignHeight, 2, 2, 2, 2
255
256
/// @brief label squared over frame with thick and with text justify to center
257
#define GUIDesignLabelIconThick (FRAME_THICK | JUSTIFY_NORMAL | LAYOUT_FILL_X | ICON_BEFORE_TEXT | LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT), 0, 0, GUIDesignHeight, GUIDesignHeight, 2, 2, 2, 2
258
259
/// @brief label extended over frame without thick and with text justify to left
260
#define GUIDesignLabelAboutInfo (JUSTIFY_LEFT | LAYOUT_FILL_X | ICON_BEFORE_TEXT), 0, 0, 0, 0, 2, 2, 0, 0
261
262
/// @brief label extended over frame without thick and with text justify to left
263
#define GUIDesignLabelKeepElements (JUSTIFY_CENTER_X | LAYOUT_FILL_X | LAYOUT_FILL_Y | ICON_BEFORE_TEXT), 0, 0, 0, 0, 2, 2, 2, 2
264
265
/// @brief label extended over frame with thick and with text justify to center
266
#define GUIDesignLabelAboutInfoCenter (FRAME_THICK | JUSTIFY_NORMAL | LAYOUT_FILL_X | ICON_BEFORE_TEXT), 0, 0, 0, 0, 2, 2, 0, 0
267
268
/// @brief label ticked filled only with an icon of 32x32
269
#define GUIDesignLabelIcon32x32Thicked (FRAME_THICK | ICON_BEFORE_TEXT | LAYOUT_FIX_HEIGHT | LAYOUT_FIX_WIDTH), 0, 0, 24, GUIDesignHeight, 2, 2, 2, 2
270
271
/// @brief label ticked filled used for VClasses. It uses icons of 64x32 pixels
272
#define GUIDesignLabelIcon64x32Thicked (FRAME_THICK | ICON_BEFORE_TEXT | LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT), 0, 0, 94, 46, 2, 2, 2, 2
273
274
/// @brief design for label with icon
275
#define GUIDesignLabelIcon (LAYOUT_CENTER_Y | LAYOUT_CENTER_X), 0, 0, 0, 0, 2, 2, 0, 0
276
277
/// @brief label ticked filled extended over frame used for VClasses/VShapes. (can be used by icons of 64x32 pixels)
278
#define GUIDesignLabelTickedIcon180x46 (FRAME_THICK | ICON_BEFORE_TEXT | LAYOUT_FILL_X | LAYOUT_FIX_HEIGHT | LAYOUT_FIX_WIDTH), 0, 0, 180, 46, 2, 2, 2, 2
279
280
/// @brief label extended over frame without thick and with text justify to left, used to show information in frames
281
#define GUIDesignLabelFrameInformation (JUSTIFY_LEFT | LAYOUT_FILL_X | ICON_BEFORE_TEXT), 0, 0, 0, 0, 2, 2, 2, 2
282
283
/// @brief label used in statusBar
284
#define GUIDesignLabelStatusBar (LAYOUT_CENTER_Y), 0, 0, 0, GUIDesignHeight, 2, 2, 2, 2
285
286
/// @brief label used in MFXGroupBoxModule
287
#define GUIDesignLabelMFXGroupBoxModule (FRAME_GROOVE | LAYOUT_FILL_X | LAYOUT_FIX_HEIGHT), 0, 0, 0, GUIDesignHeight, 2, 2, 2, 2
288
289
/// @}
290
291
292
/// @name MFXComboBoxIcon
293
/// @{
294
/// @brief Combo box editable extended over the all frame
295
#define GUIDesignComboBox (FRAME_THICK | LAYOUT_FILL_X | LAYOUT_FIX_HEIGHT), 0, 0, 0, GUIDesignHeight, 2, 2, 2, 2
296
297
/// @brief Combo box static (not editable)
298
#define GUIDesignComboBoxStatic (COMBOBOX_STATIC | FRAME_SUNKEN | LAYOUT_LEFT | LAYOUT_TOP | LAYOUT_FIX_HEIGHT), 0, 0, 0, GUIDesignHeight, 2, 2, 2, 2
299
300
/// @brief Combo box static (not editable) extended over the all frame
301
#define GUIDesignComboBoxStaticExtended (COMBOBOX_STATIC | FRAME_THICK | LAYOUT_FILL_X | LAYOUT_FIX_HEIGHT), 0, 0, 0, GUIDesignHeight, 2, 2, 2, 2
302
303
/// @brief Combo box static (cannot be edited) extended over the matrix column
304
#define GUIDesignComboBoxAttribute (COMBOBOX_NORMAL | FRAME_THICK | LAYOUT_FILL_X | LAYOUT_FIX_HEIGHT), 0, 0, 0, GUIDesignHeight, 2, 2, 2, 2
305
306
/// @brief comboBox with thick frame, fixed width
307
#define GUIDesignComboBoxFixed(customWidth) (COMBOBOX_NORMAL | FRAME_THICK | LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT), 0, 0, customWidth, GUIDesignHeight, 2, 2, 2, 2
308
309
/// @brief number of column of every combo box
310
#define GUIDesignComboBoxNCol 1
311
312
/// @brief Combo box used in filed dialog
313
#define GUIDesignComboBoxFileDialog (COMBOBOX_STATIC | FRAME_SUNKEN | LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT), 0, 0, 300, GUIDesignHeight, 2, 2, 2, 2
314
315
/// @}
316
317
318
/// @name GNEDialog
319
/// @{
320
/// @brief design for GNEDialogs
321
#define GUIDesignGNEDialogStatic (DECOR_TITLE | DECOR_BORDER | DECOR_CLOSE)
322
323
/// @brief design for GNEDialogs explicit
324
#define GUIDesignGNEDialogStaticExplicit (DECOR_TITLE | DECOR_BORDER | DECOR_CLOSE | LAYOUT_EXPLICIT)
325
326
/// @brief design for GNEDialogs resizable
327
#define GUIDesignGNEDialogResizable (DECOR_TITLE | DECOR_BORDER | DECOR_CLOSE | DECOR_RESIZE)
328
329
/// @brief design for GNEDialogs resizable with explicit layout
330
#define GUIDesignGNEDialogResizableExplicit (DECOR_TITLE | DECOR_BORDER | DECOR_CLOSE | DECOR_RESIZE | LAYOUT_EXPLICIT)
331
332
/// @}
333
334
335
/// @name FXPackers
336
/// @{
337
/// @brief Horizontal frame extended over X-frame parent used in MFXGroupBoxModule
338
#define GUIDesignGroupBoxModule (LAYOUT_FIX_WIDTH), 0, 0, 0, 0, 4, 4, 4, 4, 4, 4
339
340
/// @brief Horizontal frame extended over XY-frame parent used in MFXGroupBoxModule
341
#define GUIDesignGroupBoxModuleExtendY (LAYOUT_FILL_X | LAYOUT_FILL_Y), 0, 0, 0, 0, 4, 4, 4, 4, 4, 4
342
343
/// @brief Thick frame extended over frame parent
344
#define GUIDesignFrameThick (FRAME_THICK | LAYOUT_FILL_X | LAYOUT_FILL_Y), 0, 0, 0, 0, 2, 2, 2, 2, 2, 2
345
346
/// @brief Horizontal frame extended over frame parent with padding and spacing
347
#define GUIDesignHorizontalFrame (LAYOUT_FILL_X), 0, 0, 0, 0, 4, 4, 4, 4, 4, 4
348
349
/// @brief Horizontal frame extended over frame parent without padding and spacing
350
#define GUIDesignHorizontalFrameNoPadding (LAYOUT_FILL_X), 0, 0, 0, 0, 0, 0, 4, 4, 4, 4
351
352
/// @brief Vertical frame extended over frame parent with padding and spacing
353
#define GUIDesignVerticalFrame (LAYOUT_FILL_Y), 0, 0, 0, 0, 4, 4, 4, 4, 4, 4
354
355
/// @brief Horizontal frame used for pack icons
356
#define GUIDesignHorizontalFrameIcons (LAYOUT_FILL_X | FRAME_THICK), 0, 0, 0, 0, 0, 0, 0, 0, 2, 2
357
358
/// @brief Horizontal frame used in status bar
359
#define GUIDesignHorizontalFrameStatusBar (LAYOUT_FILL_Y | LAYOUT_RIGHT | FRAME_SUNKEN | LAYOUT_FIX_HEIGHT), 0, 0, 20, GUIDesignHeight, 0, 0, 0, 0, 0, 0
360
361
/// @brief Matrix design extended over Frame packed by columns
362
#define GUIDesignMatrix (LAYOUT_FILL_X | LAYOUT_FILL_Y | MATRIX_BY_COLUMNS | PACK_UNIFORM_WIDTH)
363
364
/// @brief Group box design extended over frame
365
#define GUIDesignGroupBoxFrame (LAYOUT_FILL_X | FRAME_GROOVE | GROUPBOX_TITLE_CENTER)
366
367
/// @brief Group box design extended over frame (X and Y)
368
#define GUIDesignGroupBoxFrameFill (LAYOUT_FILL_X | LAYOUT_FILL_Y | FRAME_GROOVE | GROUPBOX_TITLE_CENTER)
369
370
/// @brief Group box design for elements of width 100
371
#define GUIDesignGroupBoxFrame100 (LAYOUT_FIX_WIDTH | FRAME_GROOVE | GROUPBOX_TITLE_CENTER), 0, 0, 112, 0, 4, 4, 4, 4, 4, 4
372
373
/// @brief FXMatrix used to pack values in Viewsettings
374
#define GUIDesignMatrixViewSettings (LAYOUT_FILL_X | LAYOUT_BOTTOM | LAYOUT_LEFT | MATRIX_BY_COLUMNS), 0, 0, 0, 0, 10, 10, 10, 10, 5, 5
375
376
/// @brief Matrix design extended over Frame and used for represent attributes and their values (Deprecated)
377
#define GUIDesignMatrixAttributes (LAYOUT_FILL_X | MATRIX_BY_COLUMNS | PACK_UNIFORM_WIDTH)
378
379
/// @brief Matrix for pack GLTypes (used in GNESelectorFrame)
380
#define GUIDesignMatrixLockGLTypes (LAYOUT_FILL_X | LAYOUT_BOTTOM | LAYOUT_LEFT | MATRIX_BY_COLUMNS), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
381
382
/// @}
383
384
385
/// @name General design for netedit frames
386
/// @{
387
/// @brief design for frames area
388
#define GUIDesignFrameArea (FRAME_SUNKEN | LAYOUT_SIDE_TOP | LAYOUT_FIX_WIDTH | LAYOUT_FILL_Y), 0, 0, 0, 0, DEFAULT_SPACING, GUIDesignFrameAreaMargin, DEFAULT_SPACING, DEFAULT_SPACING
389
390
/// @brief design for view area
391
#define GUIDesignViewnArea (FRAME_SUNKEN | LAYOUT_SIDE_TOP | LAYOUT_FILL_X | LAYOUT_FILL_Y), 0, 0, 0, 0, 0, 0, 0, 0
392
393
/// @brief design for scroll windows extended over Y and y
394
#define GUIDesignScrollWindow (LAYOUT_FILL_X | LAYOUT_FILL_Y | HSCROLLER_NEVER | VSCROLLER_ALWAYS), 0, 0, 0, 0
395
396
/// @brief design for scroll windows extended over Y and fix width
397
#define GUIDesignScrollWindowFixedWidth(customWidth) (LAYOUT_FIX_WIDTH | LAYOUT_FILL_Y | HSCROLLER_NEVER | VSCROLLER_ALWAYS), 0, 0, customWidth, 0
398
399
/// @brief design for the content scroll of UndoList
400
#define GUIDesignScrollWindowFixed(width, height) (LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT | HSCROLLER_NEVER | VSCROLLER_ALWAYS), 0, 0, width, height
401
402
/// @brief design for the main content frame of every frame/dialog
403
#define GUIDesignChildWindowContentFrame (FRAME_SUNKEN | LAYOUT_SIDE_TOP | LAYOUT_FILL_X | LAYOUT_FILL_Y)
404
405
/// @brief design for the main content frame of every frame/dialog with padding and spacing
406
#define GUIDesignContentsFrame (LAYOUT_FILL_X | LAYOUT_FILL_Y)
407
408
/// @brief design for auxiliar (Without borders) frame extended in all directions
409
#define GUIDesignAuxiliarFrame (LAYOUT_FILL_X | LAYOUT_FILL_Y), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
410
411
/// @brief design for auxiliar (Without borders) fixed
412
#define GUIDesignAuxiliarFrameFixed (LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
413
414
/// @brief design for auxiliar (Without borders) frame with fixed width and extended height
415
#define GUIDesignAuxiliarFrameFixedWidth(width) (LAYOUT_FIX_WIDTH | LAYOUT_FILL_Y), 0, 0, width, 0, 0, 0, 0, 0, 0, 0
416
417
/// @brief design for content frame used in dialog
418
#define GUIDesignDialogContentFrame (LAYOUT_FILL_X | LAYOUT_FILL_Y), 0, 0, 0, 0, 2, 2, 2, 2
419
420
/// @brief design for content horizontal frame used in dialog
421
#define GUIDesignDialogContentHorizontalFrame (LAYOUT_FILL_X), 0, 0, 0, 0, 2, 2, 2, 2
422
423
/// @brief design for content vertical frame used in dialog
424
#define GUIDesignDialogContentVerticalFrame (LAYOUT_FILL_Y), 0, 0, 0, 0, 2, 2, 2, 2
425
426
/// @brief design for content frame used in dialog
427
#define GUIDesignDialogButtonsHorizontalFrame (LAYOUT_FILL_X), 0, 0, 0, 0, 4, 4, 4, 4, 24
428
429
/// @brief design for auxiliar (Without borders) horizontal frame used to pack another frames
430
#define GUIDesignAuxiliarHorizontalFrame (LAYOUT_FILL_X), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
431
432
/// @brief design for auxiliar (Without borders) horizontal frame used to pack another frames, centered in Y
433
#define GUIDesignAuxiliarHorizontalFrameCenteredVertically (LAYOUT_FILL_X | LAYOUT_CENTER_Y), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
434
435
/// @brief design for auxiliar (Without borders) horizontal frame used to pack another frames uniform
436
#define GUIDesignAuxiliarHorizontalFrameUniform (LAYOUT_FILL_X | PACK_UNIFORM_WIDTH), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
437
438
/// @brief design for auxiliar (Without borders) horizontal frame used to pack another frames
439
#define GUIDesignAuxiliarVerticalFrame (LAYOUT_FILL_Y), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
440
441
/// @brief design for horizontal frame used to pack another frames with a uniform width
442
#define GUIDesignUniformHorizontalFrame (LAYOUT_FILL_X | LAYOUT_FILL_Y | PACK_UNIFORM_WIDTH)
443
444
/// @brief design for CollapsableFrame (Used in MFXGroupBoxModule)
445
#define GUIDesignCollapsableFrame (LAYOUT_FILL_X | LAYOUT_FILL_Y), 0, 0, 0, 0, 2, 2, 2, 2, 2, 2
446
447
/// @brief design for auxiliar vertical frames with fixed height (DecalsTable)
448
#define GUIDesignAuxiliarFrameFixHeight (LAYOUT_FILL_X | LAYOUT_FIX_HEIGHT), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
449
450
/// @brief design for filebox frame
451
#define GUIDesignFileBoxFrame (LAYOUT_FILL_X | LAYOUT_FILL_Y | FRAME_SUNKEN | FRAME_THICK), 0, 0, 0, 0, 0, 0, 0, 0
452
453
/// @}
454
455
456
/// @name designs for toolbars
457
/// @{
458
/// @brief design for top toolbar (file, edit, processing...)
459
#define GUIDesignToolbarMenuBar (LAYOUT_SIDE_TOP | LAYOUT_FILL_X | FRAME_RAISED)
460
461
/// @brief design for top toolbar (file, edit, processing...) used only in netedit (due supermodes buttons)
462
#define GUIDesignToolbarMenuBarNetedit (LAYOUT_SIDE_TOP | FRAME_RAISED)
463
464
/// @brief design for default toolbar
465
#define GUIDesignToolBar (FRAME_NORMAL)
466
467
/// @brief design for toolbar
468
#define GUIDesignToolBarRaisedSame (LAYOUT_DOCK_SAME | FRAME_RAISED)
469
470
/// @brief design for toolbar supermodes (grip + buttons)
471
#define GUIDesignToolBarRaisedSupermodes (LAYOUT_DOCK_SAME | FRAME_RAISED | LAYOUT_FIX_WIDTH), 0, 0, GUIDesignHeight + (3 * 100)
472
473
/// @brief design for first toolbar shell positioned in the next position of dock
474
#define GUIDesignToolBarRaisedNext (LAYOUT_DOCK_NEXT | FRAME_RAISED)
475
476
/// @brief design used in status bar
477
#define GUIDesignStatusBar (LAYOUT_SIDE_BOTTOM | LAYOUT_FILL_X | FRAME_RAISED)
478
479
/// @brief design for toolbar grip (used to change the position of toolbar with mouse)
480
#define GUIDesignToolBarGrip (TOOLBARGRIP_DOUBLE)
481
482
/// @brief design for first toolbar shell positioned in the next-top position of dock
483
#define GUIDesignToolBarRaisedNextTop (LAYOUT_DOCK_NEXT | LAYOUT_SIDE_TOP | FRAME_RAISED)
484
485
/// @brief design for first toolbar shell positioned in the same position of dock
486
#define GUIDesignToolBarRaisedSameTop (LAYOUT_DOCK_SAME | LAYOUT_SIDE_TOP | FRAME_RAISED)
487
488
/// @}
489
490
491
/// @name designs for separators
492
/// @{
493
/// @brief horizontal separator
494
#define GUIDesignHorizontalSeparator (SEPARATOR_GROOVE | LAYOUT_FILL_X)
495
496
/// @brief vertical separator
497
#define GUIDesignVerticalSeparator (SEPARATOR_GROOVE | LAYOUT_FILL_Y)
498
499
/// @}
500
501
502
/// @name designs for splitters
503
/// @{
504
/// @brief general design for splitters
505
#define GUIDesignSplitter (LAYOUT_FILL_X | LAYOUT_FILL_Y | FRAME_RAISED | FRAME_THICK | SPLITTER_TRACKING)
506
507
/// @brief MDI Splitter
508
#define GUIDesignSplitterMDI (LAYOUT_FILL_X | LAYOUT_FILL_Y | FRAME_SUNKEN | FRAME_THICK)
509
510
/// @}
511
512
513
/// @name designs for Spin dials
514
/// @{
515
/// @brief design for standard spin dial
516
#define GUIDesignSpinDial (FRAME_THICK | FRAME_SUNKEN | LAYOUT_TOP | LAYOUT_CENTER_Y | LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT), 0, 0, 100, GUIDesignHeight, 0, 0, 0, 0
517
518
/// @brief design for standard spin dial
519
#define GUIDesignSpinDialViewPortZoom (FRAME_THICK | FRAME_SUNKEN | LAYOUT_TOP | LAYOUT_CENTER_Y | LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT), 0, 0, 100, GUIDesignHeight, 0, 0, 0, 0
520
521
/// @brief design for standard spin dial
522
#define GUIDesignSpinDialViewPort (FRAME_THICK | FRAME_SUNKEN | LAYOUT_TOP | LAYOUT_CENTER_Y | LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT | SPIN_NOMIN | SPIN_NOMAX), 0, 0, 100, GUIDesignHeight, 0, 0, 0, 0
523
524
/// @brief design for spin dial attribute
525
#define GUIDesignSpinDialAttribute (FRAME_THICK | FRAME_SUNKEN | LAYOUT_TOP | LAYOUT_CENTER_Y | LAYOUT_FILL_X | LAYOUT_FIX_HEIGHT | SPIN_NOMIN | SPIN_NOMAX), 0, 0, 0, GUIDesignHeight, 0, 0, 0, 0
526
527
/// @brief design for standard spin dial
528
#define GUIDesignSpinDialDecalsTable (FRAME_THICK | FRAME_SUNKEN | JUSTIFY_CENTER_X | JUSTIFY_CENTER_Y | LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT | SPIN_NOMIN | SPIN_NOMAX), 0, 0, 100, GUIDesignHeight, 0, 0, 0, 0
529
530
/// @}
531
532
533
/// @name designs for sliders
534
/// @{
535
/// @brief design for standard slider
536
#define GUIDesignSlider (SLIDER_ARROW_UP | SLIDER_TICKS_TOP | LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT), 0, 0, 300, GUIDesignHeight, 0, 0, 0
537
538
/// @}
539
540
541
/// @name design for view settings dialog
542
/// @{
543
/// @brief dialog
544
#define GUIDesignViewSettingsMainDialog (DECOR_TITLE | DECOR_BORDER | DECOR_RESIZE), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
545
546
#define GUIDesignViewSettingsDialog (DECOR_TITLE | DECOR_BORDER)
547
548
/// @brief vertical frames
549
#define GUIDesignViewSettingsVerticalFrame1 (LAYOUT_FILL_X | LAYOUT_SIDE_TOP | LAYOUT_FILL_Y), 0, 0, 0, 0, 0, 0, 0, 0, 2, 2
550
551
#define GUIDesignViewSettingsVerticalFrame2 (LAYOUT_FILL_X | FRAME_THICK | FRAME_RAISED | LAYOUT_FILL_Y), 0, 0, 0, 0, 0, 0, 0, 0, 2, 2
552
553
#define GUIDesignViewSettingsVerticalFrame3 (LAYOUT_FILL_X | LAYOUT_FILL_Y), 0, 0, 0, 0, 10, 10, 10, 10, 5, 5
554
555
#define GUIDesignViewSettingsVerticalFrame4 (LAYOUT_FILL_X | LAYOUT_FILL_Y), 0, 0, 0, 0, 10, 10, 2, 8, 5, 2
556
557
#define GUIDesignViewSettingsVerticalFrame5 (LAYOUT_FILL_X | LAYOUT_FILL_Y), 0, 0, 0, 0, 10, 10, 10, 10, 10, 10
558
559
#define GUIDesignViewSettingsVerticalFrame6 (LAYOUT_FILL_X | LAYOUT_FILL_Y), 0, 0, 0, 0, 0, 0, 0, 0, 2, 2
560
561
/// @brief Horizontal frames
562
#define GUIDesignViewSettingsHorizontalFrame1 (FRAME_THICK), 0, 0, 0, 0, 0, 0, 0, 0, 2, 2
563
564
#define GUIDesignViewSettingsHorizontalFrame2 (LAYOUT_TOP | LAYOUT_LEFT | LAYOUT_FILL_X | PACK_UNIFORM_WIDTH), 0, 0, 0, 0, 10, 10, 5, 5
565
566
#define GUIDesignViewSettingsHorizontalFrame3 (LAYOUT_FILL_X | PACK_UNIFORM_WIDTH), 0, 0, 0, 0, 0, 0, 0, 0
567
568
/// @brief Matrix
569
#define GUIDesignViewSettingsMatrix1 (LAYOUT_FILL_X | LAYOUT_BOTTOM | LAYOUT_LEFT | MATRIX_BY_COLUMNS), 0, 0, 0, 0, 10, 10, 10, 10, 5, 5
570
571
#define GUIDesignViewSettingsMatrix2 (LAYOUT_FILL_X | LAYOUT_CENTER_Y | LAYOUT_BOTTOM | LAYOUT_LEFT | MATRIX_BY_COLUMNS), 0, 0, 0, 0, 10, 10, 0, 0, 5, 5
572
573
#define GUIDesignViewSettingsMatrix3 (LAYOUT_FILL_X | LAYOUT_TOP | LAYOUT_LEFT | MATRIX_BY_COLUMNS), 0, 0, 0, 0, 10, 10, 10, 2, 5, 5
574
575
#define GUIDesignViewSettingsMatrix4 (LAYOUT_FILL_X | MATRIX_BY_COLUMNS), 0, 0, 0, 0, 10, 10, 0, 0, 5, 3
576
577
#define GUIDesignViewSettingsMatrix5 (LAYOUT_FILL_X | LAYOUT_BOTTOM | LAYOUT_LEFT | MATRIX_BY_COLUMNS), 0, 0, 0, 0, 10, 10, 0, 0, 5, 5
578
579
/// @brief Combo boxes
580
#define GUIDesignViewSettingsComboBox1 (COMBOBOX_INSERT_LAST | FRAME_SUNKEN | LAYOUT_LEFT | LAYOUT_CENTER_Y | COMBOBOX_STATIC)
581
582
/// @brief ColorWell
583
#define GUIDesignViewSettingsColorWell (LAYOUT_FIX_WIDTH | LAYOUT_CENTER_Y | LAYOUT_SIDE_TOP | FRAME_SUNKEN | FRAME_THICK | ICON_AFTER_TEXT), 0, 0, 100, 0, 0, 0, 0, 0
584
585
#define GUIDesignViewSettingsSpinDial1 (LAYOUT_CENTER_Y | LAYOUT_TOP | FRAME_SUNKEN | FRAME_THICK)
586
587
#define GUIDesignViewSettingsSpinDial2 (LAYOUT_TOP | FRAME_SUNKEN | FRAME_THICK)
588
589
/// @brief Tab books
590
#define GUIDesignViewSettingsTabBook1 (TABBOOK_LEFTTABS | PACK_UNIFORM_WIDTH | PACK_UNIFORM_HEIGHT | LAYOUT_FILL_X | LAYOUT_FILL_Y | LAYOUT_RIGHT), 0, 0, 0, 0, 0, 0, 0, 0
591
592
#define GUIDesignViewSettingsTabItemBook1 (TAB_LEFT_NORMAL), 0, 0, 0, 0, 4, 8, 4, 4
593
594
/// @brief Label
595
#define GUIDesignViewSettingsLabel1 (LAYOUT_CENTER_Y)
596
597
#define GUIDesignViewSettingsLabel2 (LAYOUT_FILL_X | JUSTIFY_LEFT)
598
599
/// @brief textFields
600
#define GUIDesignViewSettingsTextField1 (TEXTFIELD_ENTER_ONLY | FRAME_SUNKEN | FRAME_THICK | LAYOUT_FILL_X)
601
602
/// @brief Buttons
603
#define GUIDesignViewSettingsButton1 (BUTTON_DEFAULT | FRAME_RAISED | FRAME_THICK | LAYOUT_TOP | LAYOUT_LEFT | LAYOUT_CENTER_X), 0, 0, 0, 0, 20, 20, 4, 4
604
605
#define GUIDesignViewSettingsButton2 (BUTTON_INITIAL | BUTTON_DEFAULT | FRAME_RAISED | FRAME_THICK | LAYOUT_TOP | LAYOUT_LEFT | LAYOUT_CENTER_X), 0, 0, 0, 0, 30, 30, 4, 4
606
607
#define GUIDesignViewSettingsButton3 (BUTTON_DEFAULT | FRAME_RAISED | FRAME_THICK | LAYOUT_TOP | LAYOUT_LEFT | LAYOUT_CENTER_X), 0, 0, 0, 0, 30, 30, 4, 4
608
609
#define GUIDesignViewSettingsButton4 (BUTTON_INITIAL | BUTTON_DEFAULT | FRAME_RAISED | FRAME_THICK | LAYOUT_RIGHT)
610
611
#define GUIDesignViewSettingsButton5 (BUTTON_DEFAULT | FRAME_RAISED | FRAME_THICK | LAYOUT_RIGHT), 0, 0, 0, 0, 20, 20
612
613
/// @brief Color wells
614
#define GUIDesignViewSettingsColorWell1 (LAYOUT_FIX_WIDTH | LAYOUT_CENTER_Y | FRAME_SUNKEN | FRAME_THICK | ICON_AFTER_TEXT), 0, 0, 100, 0, 0, 0, 0, 0
615
616
#define GUIDesignViewSettingsColorWell2 (LAYOUT_FIX_WIDTH | LAYOUT_CENTER_Y | LAYOUT_SIDE_TOP | FRAME_SUNKEN | FRAME_THICK | ICON_AFTER_TEXT), 0, 0, 100, 0, 0, 0, 0, 0
617
618
/// @brief decals table
619
#define GUIDesignViewSettingsDecalsTable (LAYOUT_FILL_Y | LAYOUT_FIX_WIDTH), 0, 0, 550, 0
620
621
/// @brief decals cell
622
#define GUIDesignViewSettingsDecalsCellTable (JUSTIFY_CENTER_X | JUSTIFY_TOP)
623
624
/// @}
625
626
627
/// @name design for dialog boxes
628
/// @{
629
/// @brief design for standard dialog box with close button (for example, about dialog)
630
#define GUIDesignDialogBox (DECOR_CLOSE | DECOR_TITLE)
631
632
/// @brief design for dialog box with specific width and height (for example, additional dialogs)
633
#define GUIDesignDialogBoxExplicit(width, height) (DECOR_CLOSE | DECOR_TITLE | LAYOUT_EXPLICIT), 0, 0, width, height, 4, 4, 4, 4, 4, 4
634
635
/// @}
636
637
638
/// @name design for FXTables and their cells
639
/// @{
640
/// @brief design for table extended over frame
641
#define GUIDesignTable (LAYOUT_FILL_X | LAYOUT_FILL_Y)
642
643
/// @brief design for table extended over frame that cannot be edited
644
#define GUIDesignTableNotEditable (LAYOUT_FILL_X | LAYOUT_FILL_Y | TABLE_READONLY)
645
646
/// @brief design for table extended over frame but with limited Height
647
#define GUIDesignTableLimitedHeight (LAYOUT_FILL_X | LAYOUT_FIX_HEIGHT)
648
649
/// @brief design for tables used in ElementLists
650
#define GUIDesignElementListExtended (LAYOUT_FIX_WIDTH | LAYOUT_FILL_Y | VSCROLLER_ALWAYS | HSCROLLER_NEVER | TABLE_NO_ROWSELECT | TABLE_NO_COLSELECT), 0, 0, 400, 0, 2, 2, 2, 2
651
652
/// @brief design for tables used in GNEFixDemandElementsDialog dialogs
653
#define GUIDesignTableFixElements (LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT | VSCROLLER_ALWAYS | HSCROLLER_NEVER | TABLE_NO_ROWSELECT | TABLE_NO_COLSELECT), 0, 0, 500, 250, 2, 2, 2, 2
654
655
/// @}
656
657
658
/// @name design for Chooser (locator) and breakpoint dialogs
659
/// @{
660
/// @brief design for Chooser dialog specifying size
661
#define GUIDesignChooserDialog (DECOR_ALL), 20, 40, 300, 350
662
663
/// @brief design for Chooser buttons
664
#define GUIDesignChooserButtons (ICON_BEFORE_TEXT | LAYOUT_FIX_WIDTH | LAYOUT_FIX_HEIGHT | FRAME_THICK | FRAME_RAISED), 0, 0, 150, GUIDesignHeight, 2, 2, 2, 2
665
666
/// @brief design for Chooser TextField
667
#define GUIDesignChooserTextField (LAYOUT_FILL_X | LAYOUT_FIX_HEIGHT | FRAME_THICK | FRAME_SUNKEN), 0, 0, 0, GUIDesignHeight, 2, 2, 2, 2
668
669
/// @brief design for Chooser List
670
#define GUIDesignChooserListSingle (LIST_SINGLESELECT | LAYOUT_FILL_X | LAYOUT_FILL_Y | FRAME_SUNKEN | FRAME_THICK), 0, 0, 0, 0
671
672
/// @brief design for Chooser List
673
#define GUIDesignChooserListMultiple (LIST_MULTIPLESELECT | LAYOUT_FILL_X | LAYOUT_FILL_Y | FRAME_SUNKEN | FRAME_THICK), 0, 0, 0, 0
674
675
/// @brief design for Breakpoint table
676
#define GUIDesignBreakpointTable (LAYOUT_FILL_X | LAYOUT_FILL_Y | FRAME_SUNKEN | FRAME_THICK), 0, 0, 0, 0
677
678
/// @brief design for Chooser Layout left
679
#define GUIDesignChooserLayoutLeft (LAYOUT_FILL_X | LAYOUT_FILL_Y | LAYOUT_TOP), 0, 0, 0, 0, 4, 4, 4, 4
680
681
/// @brief design for Chooser Layout right
682
#define GUIDesignChooserLayoutRight (LAYOUT_TOP), 0, 0, 0, 0, 4, 4, 4, 4
683
684
/// @brief design for Chooser Layout list
685
#define GUIDesignChooserLayoutList (LAYOUT_FILL_X | LAYOUT_FILL_Y | LAYOUT_TOP | FRAME_THICK | FRAME_SUNKEN), 0, 0, 0, 0, 0, 0, 0, 0
686
687
/// @}
688
689
690
/// @name design for MFXTreeListDynamic
691
/// @{
692
/// @brief tree list with fixed width
693
#define GUIDesignTreeListFixedWidth (TREELIST_SHOWS_LINES | TREELIST_SHOWS_BOXES | TREELIST_SINGLESELECT | FRAME_SUNKEN | FRAME_THICK | LAYOUT_FIX_WIDTH | LAYOUT_FILL_Y)
694
695
/// @brief tree list with fixed height
696
#define GUIDesignTreeListFixedHeight (TREELIST_SHOWS_LINES | TREELIST_SHOWS_BOXES | TREELIST_SINGLESELECT | FRAME_SUNKEN | FRAME_THICK | LAYOUT_FILL_X | LAYOUT_FIX_HEIGHT)
697
698
/// @}
699
700
701
/// @brief design for FXLists
702
#define GUIDesignList (LIST_NORMAL | FRAME_NORMAL | LAYOUT_FILL_X)
703
704
/// @brief design for FXLists that only allow a single selected elements selected and height fixed
705
#define GUIDesignListFixedHeight (LIST_SINGLESELECT | FRAME_SUNKEN | FRAME_THICK | LAYOUT_FILL_X | LAYOUT_FIX_HEIGHT), 0, 0, 0, 100
706
707
/// @brief design for FXLists
708
#define GUIDesignListExtended (LIST_NORMAL | FRAME_SUNKEN | FRAME_THICK | LAYOUT_FILL_X | LAYOUT_FILL_Y)
709
710
/// @brief desing for FXDirBox
711
#define GUIDesignFileList (ICONLIST_MINI_ICONS | ICONLIST_BROWSESELECT | ICONLIST_AUTOSIZE | LAYOUT_FILL_X | LAYOUT_FILL_Y), 0, 0, 0, 0
712
713
/// @brief desing for FXDirBox
714
#define GUIDesignDirBox (DIRBOX_NO_OWN_ASSOC | FRAME_SUNKEN | FRAME_THICK | LAYOUT_CENTER_Y | LAYOUT_FILL_X | LAYOUT_FIX_HEIGHT), 0, 0, 0, GUIDesignHeight, 1, 1, 1, 1
715
716
// ===========================================================================
717
// Implementation
718
// ===========================================================================
719
720
class GUIDesigns {
721
722
public:
723
/// @brief build menu title
724
static FXMenuTitle* buildFXMenuTitle(FXComposite* p, const std::string& text, FXIcon* icon, FXMenuPane* menuPane);
725
726
/// @brief build menu command
727
static FXMenuCommand* buildFXMenuCommandShortcut(FXComposite* p, const std::string& text, const std::string& shortcut, const std::string& info, FXIcon* icon, FXObject* tgt, FXSelector sel);
728
729
/// @brief build menu checkbox
730
static FXMenuCheck* buildFXMenuCheckbox(FXComposite* p, const std::string& text, const std::string& info, FXObject* tgt, FXSelector sel);
731
732
/// @brief build menu checkbox with icon
733
static MFXMenuCheckIcon* buildFXMenuCheckboxIcon(FXComposite* p, const std::string& text, const std::string& shortcut, const std::string& info, FXIcon* icon, FXObject* tgt, FXSelector sel);
734
735
/// @brief build menu command
736
static FXMenuCommand* buildFXMenuCommand(FXComposite* p, const std::string& text, FXIcon* icon, FXObject* tgt, FXSelector sel, const bool disable = false);
737
738
/// @brief build menu command with help
739
static FXMenuCommand* buildFXMenuCommand(FXComposite* p, const std::string& text, const std::string& help, FXIcon* icon, FXObject* tgt, FXSelector sel, const bool disable = false);
740
741
/// @brief build menu command (for recent files)
742
static FXMenuCommand* buildFXMenuCommandRecentFile(FXComposite* p, const std::string& text, FXObject* tgt, FXSelector sel);
743
744
/// Construct label with given text and icon
745
static FXLabel* buildFXLabel(FXComposite* p, const std::string& text, const std::string& tip, const std::string& help,
746
FXIcon* ic, FXuint opts, FXint x = 0, FXint y = 0, FXint w = 0, FXint h = 0,
747
FXint pl = DEFAULT_PAD, FXint pr = DEFAULT_PAD, FXint pt = DEFAULT_PAD, FXint pb = DEFAULT_PAD);
748
749
/// @brief build button
750
static FXButton* buildFXButton(FXComposite* p, const std::string& text, const std::string& tip, const std::string& help,
751
FXIcon* ic, FXObject* tgt, FXSelector sel, FXuint opts = BUTTON_NORMAL, FXint x = 0, FXint y = 0, FXint w = 0, FXint h = 0,
752
FXint pl = DEFAULT_PAD, FXint pr = DEFAULT_PAD, FXint pt = DEFAULT_PAD, FXint pb = DEFAULT_PAD);
753
754
/// @brief build check button
755
static FXCheckButton* buildFXCheckButton(FXComposite* p, const std::string& text, const std::string& tip, const std::string& help,
756
FXObject* tgt, FXSelector sel, FXuint opts = CHECKBUTTON_NORMAL, FXint x = 0, FXint y = 0, FXint w = 0, FXint h = 0,
757
FXint pl = DEFAULT_PAD, FXint pr = DEFAULT_PAD, FXint pt = DEFAULT_PAD, FXint pb = DEFAULT_PAD);
758
759
/// @brief build radio button
760
static FXRadioButton* buildFXRadioButton(FXComposite* p, const std::string& text, const std::string& tip, const std::string& help,
761
FXObject* tgt, FXSelector sel, FXuint opts = RADIOBUTTON_NORMAL, FXint x = 0, FXint y = 0, FXint w = 0, FXint h = 0,
762
FXint pl = DEFAULT_PAD, FXint pr = DEFAULT_PAD, FXint pt = DEFAULT_PAD, FXint pb = DEFAULT_PAD);
763
};
764
765