Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
eclipse
GitHub Repository: eclipse/sumo
Path: blob/main/src/utils/gui/windows/GUIDialog_ViewSettings.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 GUIDialog_ViewSettings.h
15
/// @author Daniel Krajzewicz
16
/// @author Jakob Erdmann
17
/// @author Michael Behrisch
18
/// @date Wed, 21. Dec 2005
19
///
20
// The dialog to change the view (gui) settings.
21
/****************************************************************************/
22
#pragma once
23
#include <config.h>
24
25
#include <utils/foxtools/fxheader.h>
26
#include <utils/gui/windows/GUISUMOAbstractView.h>
27
#include <utils/gui/div/GUIPersistentWindowPos.h>
28
#include <utils/foxtools/MFXDecalsTable.h>
29
30
31
// ===========================================================================
32
// class declarations
33
// ===========================================================================
34
35
class MFXComboBoxIcon;
36
37
// ===========================================================================
38
// class definitions
39
// ===========================================================================
40
/**
41
* @class GUIDialog_ViewSettings
42
* @brief The dialog to change the view (gui) settings.
43
*
44
* @todo Check whether saving/loading settings should be done via XML
45
*/
46
class GUIDialog_ViewSettings : public FXTopWindow, public GUIPersistentWindowPos {
47
/// @brief FOX Declaration
48
FXDECLARE(GUIDialog_ViewSettings)
49
50
public:
51
/// @brief NamePanel
52
class NamePanel {
53
54
public:
55
/// @brief constructor
56
NamePanel(FXMatrix* parent, GUIDialog_ViewSettings* target,
57
const std::string& title,
58
const GUIVisualizationTextSettings& settings);
59
60
/// @brief get settings
61
GUIVisualizationTextSettings getSettings();
62
63
/// @brief update
64
void update(const GUIVisualizationTextSettings& settings);
65
66
/// @brief check button
67
FXCheckButton* myCheck = nullptr;
68
69
/// @brief size dial
70
FXRealSpinner* mySizeDial = nullptr;
71
72
/// @brief color well
73
FXColorWell* myColorWell = nullptr;
74
75
/// @brief BGColor well
76
FXColorWell* myBGColorWell = nullptr;
77
78
/// @brief draw only for selected?
79
FXCheckButton* mySelectedCheck = nullptr;
80
81
/// @brief const size check
82
FXCheckButton* myConstSizeCheck = nullptr;
83
84
/// @brief Matrix
85
FXMatrix* myMatrix0 = nullptr;
86
};
87
88
/// @brief SizePanel
89
class SizePanel : public FXObject {
90
/// @brief FOX Declaration
91
FXDECLARE(SizePanel)
92
93
public:
94
/// @brief constructor
95
SizePanel(FXMatrix* parent, GUIDialog_ViewSettings* target,
96
const GUIVisualizationSizeSettings& settings, GUIGlObjectType type);
97
98
/// @brief get settings
99
GUIVisualizationSizeSettings getSettings();
100
101
/// @brief update
102
void update(const GUIVisualizationSizeSettings& settings);
103
104
/// @name FOX-callbacks
105
/// @{
106
/// @brief Called if something (color, width, etc.) has been changed
107
long onCmdSizeChange(FXObject* obj, FXSelector sel, void* ptr);
108
109
/// @}
110
111
/// @brief min size dial
112
FXRealSpinner* myMinSizeDial = nullptr;
113
114
/// @brief exaggerate dial
115
FXRealSpinner* myExaggerateDial = nullptr;
116
117
/// @brief check button
118
FXCheckButton* myCheck = nullptr;
119
120
/// @brief check selected button
121
FXCheckButton* myCheckSelected = nullptr;
122
123
protected:
124
/// @brief FOX needs this
125
FOX_CONSTRUCTOR(SizePanel)
126
127
private:
128
/// @brief pointer to dialog viewSettings
129
GUIDialog_ViewSettings* myDialogViewSettings = nullptr;
130
131
/// @brief GLObject type associated with this size
132
GUIGlObjectType myType = GLO_NETWORK;
133
};
134
135
/// @brief NamePanel
136
class RainbowPanel {
137
138
public:
139
/// @brief constructor
140
RainbowPanel(FXComposite* parent, GUIDialog_ViewSettings* target,
141
const GUIVisualizationRainbowSettings& settings);
142
143
/// @brief get settings
144
GUIVisualizationRainbowSettings getSettings();
145
146
/// @brief update
147
void update(const GUIVisualizationRainbowSettings& settings);
148
149
FXButton* myColorRainbow = nullptr;
150
151
MFXComboBoxIcon* myRainbowStyle = nullptr;
152
153
/// @brief check button
154
FXCheckButton* myHideMinCheck = nullptr;
155
156
/// @brief threshold dial
157
FXRealSpinner* myMinThreshold = nullptr;
158
159
/// @brief check button
160
FXCheckButton* myHideMaxCheck = nullptr;
161
162
/// @brief threshold dial
163
FXRealSpinner* myMaxThreshold = nullptr;
164
165
/// @brief check button
166
FXCheckButton* mySetNeutral = nullptr;
167
168
/// @brief threshold dial
169
FXRealSpinner* myNeutralThreshold = nullptr;
170
171
/// @brief check button
172
FXCheckButton* myFixRange = nullptr;
173
};
174
175
/** @brief Constructor
176
* @param[in] parent The view to report changed settings to
177
* @param[in, out] settings The current settings that can be changed
178
*/
179
GUIDialog_ViewSettings(GUISUMOAbstractView* parent, GUIVisualizationSettings* settings);
180
181
/// @brief FOX need this
182
GUIDialog_ViewSettings() : myBackup("DUMMY") {}
183
184
/// @brief Destructor
185
~GUIDialog_ViewSettings();
186
187
/// @brief show view settings dialog
188
void show();
189
using FXTopWindow::show; // to silence the warning C4266 about a hidden function
190
191
/// @brief get GUISUMOAbstractView parent
192
GUISUMOAbstractView* getSUMOAbstractView();
193
194
/** @brief Sets current settings (called if reopened)
195
* @param[in, out] settings The current settings that can be changed
196
*/
197
void setCurrent(GUIVisualizationSettings* settings);
198
199
/// @brief keyboard functions
200
//@{
201
long onKeyPress(FXObject* o, FXSelector sel, void* data);
202
//@}
203
204
/// @name FOX-callbacks
205
/// @{
206
207
/// @brief Called if the OK-button was pressed
208
long onCmdOk(FXObject*, FXSelector, void*);
209
210
/// @brief Called if the Cancel-button was pressed
211
long onCmdCancel(FXObject*, FXSelector, void*);
212
213
/// @brief Called if something (color, width, etc.) has been changed
214
long onCmdColorChange(FXObject*, FXSelector, void*);
215
216
/// @brief Called if the name of the scheme was changed
217
long onCmdNameChange(FXObject*, FXSelector, void*);
218
219
/// @brief Called if the settings shall be saved into the registry
220
long onCmdSaveSetting(FXObject*, FXSelector, void* data);
221
222
/// @brief Called when updating the button that allows to save the settings into the registry
223
long onUpdSaveSetting(FXObject*, FXSelector, void* data);
224
225
/// @brief Called if the settings shall be deleted
226
long onCmdDeleteSetting(FXObject*, FXSelector, void* data);
227
228
/// @brief Called when updating the button that allows to delete settings
229
long onUpdDeleteSetting(FXObject*, FXSelector, void* data);
230
231
/// @brief Called if the settings shall be exported into a file
232
long onCmdExportSetting(FXObject*, FXSelector, void* data);
233
234
/// @brief Called when updating the button that allows to export settings into a file
235
long onUpdExportSetting(FXObject*, FXSelector, void* data);
236
237
/// @brief Called if the settings shall be read from a file
238
long onCmdImportSetting(FXObject*, FXSelector, void* data);
239
240
/// @brief Called when updating the button that allows to read settings from a file
241
long onUpdImportSetting(FXObject*, FXSelector, void* data);
242
243
/// @brief Called if the decal shall be loaded from a file
244
long onCmdLoadDecal(FXObject*, FXSelector, void* data);
245
246
/// @brief Called if the decals shall be loaded from a file
247
long onCmdLoadXMLDecals(FXObject*, FXSelector, void* data);
248
249
/// @brief Called if the decals shall be saved to a file
250
long onCmdSaveXMLDecals(FXObject*, FXSelector, void* data);
251
252
/// @brief Called if the decals shall be cleared
253
long onCmdClearDecals(FXObject*, FXSelector, void* data);
254
/// @}
255
256
/** @brief Returns the name of the currently chosen scheme
257
* @return The name of the edited (chosen) scheme)
258
*/
259
std::string getCurrentScheme() const;
260
261
/** @brief Sets the named scheme as the current
262
* @param[in] The name of the scheme that shall be set as current
263
*/
264
void setCurrentScheme(const std::string&);
265
266
void hide() {
267
saveWindowPos();
268
FXTopWindow::hide();
269
}
270
271
protected:
272
/// @brief The parent view (which settings are changed)
273
GUISUMOAbstractView* myParent = nullptr;
274
275
/// @brief The current settings
276
GUIVisualizationSettings* mySettings = nullptr;
277
278
/// @brief A backup of the settings (used if the "Cancel" button is pressed)
279
GUIVisualizationSettings myBackup;
280
281
/// @name Dialog elements
282
/// @{
283
284
MFXComboBoxIcon* mySchemeName = nullptr;
285
FXCheckButton* myShowGrid = nullptr;
286
FXRealSpinner* myGridXSizeDialer = nullptr;
287
FXRealSpinner* myGridYSizeDialer = nullptr;
288
289
FXColorWell* myBackgroundColor = nullptr;
290
MFXDecalsTable* myDecalsTable = nullptr;
291
292
/// @brief selection colors
293
FXColorWell* mySelectionColor = nullptr;
294
FXColorWell* mySelectedEdgeColor = nullptr;
295
FXColorWell* mySelectedLaneColor = nullptr;
296
FXColorWell* mySelectedConnectionColor = nullptr;
297
FXColorWell* mySelectedProhibitionColor = nullptr;
298
FXColorWell* mySelectedCrossingColor = nullptr;
299
FXColorWell* mySelectedAdditionalColor = nullptr;
300
FXColorWell* mySelectedRouteColor = nullptr;
301
FXColorWell* mySelectedVehicleColor = nullptr;
302
FXColorWell* mySelectedPersonColor = nullptr;
303
FXColorWell* mySelectedPersonPlanColor = nullptr;
304
FXColorWell* mySelectedEdgeDataColor = nullptr;
305
306
/// @brief additional colors
307
FXColorWell* myBusStopColor = nullptr;
308
FXColorWell* myBusStopColorSign = nullptr;
309
FXColorWell* myTrainStopColor = nullptr;
310
FXColorWell* myTrainStopColorSign = nullptr;
311
FXColorWell* myContainerStopColor = nullptr;
312
FXColorWell* myContainerStopColorSign = nullptr;
313
FXColorWell* myChargingStationColor = nullptr;
314
FXColorWell* myChargingStationColorSign = nullptr;
315
FXColorWell* myStopColor = nullptr;
316
FXColorWell* myWaypointColor = nullptr;
317
FXColorWell* myVehicleTripsColor = nullptr;
318
FXColorWell* myStopPersonsColor = nullptr;
319
FXColorWell* myPersonTripColor = nullptr;
320
FXColorWell* myWalkColor = nullptr;
321
FXColorWell* myRideColor = nullptr;
322
FXColorWell* myStopContainersColor = nullptr;
323
FXColorWell* myTransportColor = nullptr;
324
FXColorWell* myTranshipColor = nullptr;
325
326
/// @brief demand widths
327
328
FXRealSpinner* myTripWidth = nullptr;
329
FXRealSpinner* myPersonTripWidth = nullptr;
330
FXRealSpinner* myWalkWidth = nullptr;
331
FXRealSpinner* myRideWidth = nullptr;
332
FXRealSpinner* myTransportWidth = nullptr;
333
FXRealSpinner* myTranshipWidth = nullptr;
334
335
/// @brief ... lane colorer
336
MFXComboBoxIcon* myLaneEdgeColorMode = nullptr;
337
FXVerticalFrame* myLaneColorSettingFrame = nullptr;
338
std::vector<FXColorWell*> myLaneColors;
339
std::vector<FXRealSpinner*> myLaneThresholds;
340
std::vector<FXButton*> myLaneButtons;
341
FXCheckButton* myLaneColorInterpolation = nullptr;
342
FXComboBox* myParamKey = nullptr;
343
FXComboBox* myScalingParamKey = nullptr;
344
MFXComboBoxIcon* myMeanDataID = nullptr;
345
346
/// @brief ... lane scaler
347
MFXComboBoxIcon* myLaneEdgeScaleMode = nullptr;
348
FXVerticalFrame* myLaneScaleSettingFrame = nullptr;
349
std::vector<FXRealSpinner*> myLaneScales;
350
std::vector<FXRealSpinner*> myLaneScaleThresholds;
351
std::vector<FXButton*> myLaneScaleButtons;
352
FXCheckButton* myLaneScaleInterpolation = nullptr;
353
354
FXCheckButton* myShowLaneBorders = nullptr;
355
FXCheckButton* myShowBikeMarkings = nullptr;
356
FXCheckButton* myShowLaneDecals = nullptr;
357
FXCheckButton* myRealisticLinkRules = nullptr;
358
FXCheckButton* myShowLinkRules = nullptr;
359
FXCheckButton* myShowRails = nullptr;
360
FXCheckButton* mySecondaryShape = nullptr;
361
FXCheckButton* myHideMacroConnectors = nullptr;
362
FXCheckButton* myShowLaneDirection = nullptr;
363
FXCheckButton* myShowSublanes = nullptr;
364
FXCheckButton* mySpreadSuperposed = nullptr;
365
FXCheckButton* myDisableHideByZoom = nullptr;
366
FXRealSpinner* myLaneWidthUpscaleDialer = nullptr;
367
FXRealSpinner* myLaneMinWidthDialer = nullptr;
368
369
/// @brief Vehicles
370
MFXComboBoxIcon* myVehicleColorMode, *myVehicleShapeDetail = nullptr;
371
FXVerticalFrame* myVehicleColorSettingFrame = nullptr;
372
std::vector<FXColorWell*> myVehicleColors;
373
std::vector<FXRealSpinner*> myVehicleThresholds;
374
std::vector<FXButton*> myVehicleButtons;
375
FXCheckButton* myVehicleColorInterpolation = nullptr;
376
377
/// @brief vehicle scaler
378
MFXComboBoxIcon* myVehicleScaleMode = nullptr;
379
FXVerticalFrame* myVehicleScaleSettingFrame = nullptr;
380
std::vector<FXRealSpinner*> myVehicleScales;
381
std::vector<FXRealSpinner*> myVehicleScaleThresholds;
382
std::vector<FXButton*> myVehicleScaleButtons;
383
FXCheckButton* myVehicleScaleInterpolation = nullptr;
384
385
FXCheckButton* myShowBlinker = nullptr;
386
FXCheckButton* myShowMinGap = nullptr;
387
FXCheckButton* myShowBrakeGap = nullptr;
388
FXCheckButton* myShowBTRange = nullptr;
389
FXCheckButton* myShowRouteIndex = nullptr;
390
FXCheckButton* myScaleLength = nullptr;
391
FXCheckButton* myDrawReversed = nullptr;
392
FXCheckButton* myShowParkingInfo = nullptr;
393
FXCheckButton* myShowChargingInfo = nullptr;
394
/*FXCheckButton* myShowLaneChangePreference = nullptr;*/
395
396
FXComboBox* myVehicleParamKey = nullptr;
397
FXComboBox* myVehicleScalingParamKey = nullptr;
398
FXComboBox* myVehicleTextParamKey = nullptr;
399
400
/// @brief Persons
401
MFXComboBoxIcon* myPersonColorMode, *myPersonShapeDetail = nullptr;
402
FXVerticalFrame* myPersonColorSettingFrame = nullptr;
403
std::vector<FXColorWell*> myPersonColors;
404
std::vector<FXRealSpinner*> myPersonThresholds;
405
std::vector<FXButton*> myPersonButtons;
406
FXCheckButton* myPersonColorInterpolation = nullptr;
407
FXCheckButton* myShowPedestrianNetwork = nullptr;
408
FXColorWell* myPedestrianNetworkColor = nullptr;
409
410
/// @brief Containers
411
MFXComboBoxIcon* myContainerColorMode, *myContainerShapeDetail = nullptr;
412
FXVerticalFrame* myContainerColorSettingFrame = nullptr;
413
std::vector<FXColorWell*> myContainerColors;
414
std::vector<FXRealSpinner*> myContainerThresholds;
415
std::vector<FXButton*> myContainerButtons;
416
FXCheckButton* myContainerColorInterpolation = nullptr;
417
FXRealSpinner* myContainerMinSizeDialer, *myContainerUpscaleDialer = nullptr;
418
419
/// @brief junctions
420
MFXComboBoxIcon* myJunctionColorMode = nullptr;
421
FXVerticalFrame* myJunctionColorSettingFrame = nullptr;
422
std::vector<FXColorWell*> myJunctionColors;
423
std::vector<FXRealSpinner*> myJunctionThresholds;
424
std::vector<FXButton*> myJunctionButtons;
425
FXCheckButton* myJunctionColorInterpolation = nullptr;
426
427
/// @brief POIs
428
MFXComboBoxIcon* myPOIColorMode, *myPOIShapeDetail = nullptr;
429
FXVerticalFrame* myPOIColorSettingFrame = nullptr;
430
std::vector<FXColorWell*> myPOIColors;
431
std::vector<FXRealSpinner*> myPOIThresholds;
432
std::vector<FXButton*> myPOIButtons;
433
FXCheckButton* myPOIColorInterpolation = nullptr;
434
FXComboBox* myPOITextParamKey = nullptr;
435
FXSpinner* myPoiDetail = nullptr;
436
FXCheckButton* myPOIUseCustomLayer = nullptr;
437
FXRealSpinner* myPOICustomLayer = nullptr;
438
439
/// @brief Polygons
440
MFXComboBoxIcon* myPolyColorMode, *myPolyShapeDetail = nullptr;
441
FXVerticalFrame* myPolyColorSettingFrame = nullptr;
442
std::vector<FXColorWell*> myPolyColors;
443
std::vector<FXRealSpinner*> myPolyThresholds;
444
std::vector<FXButton*> myPolyButtons;
445
FXCheckButton* myPolyColorInterpolation = nullptr;
446
FXCheckButton* myPolyUseCustomLayer = nullptr;
447
FXRealSpinner* myPolyCustomLayer = nullptr;
448
449
/// @brief Data
450
MFXComboBoxIcon* myDataColorMode = nullptr;
451
FXVerticalFrame* myDataColorSettingFrame = nullptr;
452
std::vector<FXColorWell*> myDataColors;
453
std::vector<FXRealSpinner*> myDataThresholds;
454
std::vector<FXButton*> myDataButtons;
455
FXCheckButton* myDataColorInterpolation = nullptr;
456
FXComboBox* myDataParamKey = nullptr;
457
FXRealSpinner* myEdgeRelationUpscaleDialer = nullptr;
458
FXRealSpinner* myTazRelationUpscaleDialer = nullptr;
459
460
/// @brief buttons
461
FXCheckButton* myShowLane2Lane = nullptr;
462
FXCheckButton* myDrawJunctionShape = nullptr;
463
FXCheckButton* myDrawCrossingsAndWalkingAreas = nullptr;
464
FXCheckButton* myShowSizeLegend = nullptr;
465
FXCheckButton* myShowColorLegend = nullptr;
466
FXCheckButton* myShowVehicleColorLegend = nullptr;
467
468
/// @brief
469
FXCheckButton* myIgnoreColorSchemeFor3DVehicles = nullptr;
470
FXCheckButton* myShow3DTLSLinkMarkers = nullptr;
471
FXCheckButton* myShow3DTLSDomes = nullptr;
472
FXCheckButton* myShow3DHeadUpDisplay = nullptr;
473
FXCheckButton* myGenerate3DTLSModels = nullptr;
474
FXSpinner* myLight3DFactor = nullptr;
475
//FXColorWell* myAmbient3DLight = nullptr;
476
//FXColorWell* myDiffuse3DLight = nullptr;
477
FXColorWell* mySkyColor = nullptr;
478
479
/// @brief openGL
480
FXCheckButton* myDither = nullptr;
481
FXCheckButton* myFPS = nullptr;
482
FXCheckButton* myTrueZ = nullptr;
483
FXCheckButton* myDrawBoundaries = nullptr;
484
FXCheckButton* myForceDrawForRectangleSelection = nullptr;
485
FXCheckButton* myDisableDottedContours = nullptr;
486
FXButton* myRecalculateBoundaries = nullptr;
487
FXRealSpinner* myComboRows = nullptr;
488
489
/// @brief name panels
490
NamePanel* myEdgeNamePanel = nullptr;
491
NamePanel* myInternalEdgeNamePanel = nullptr;
492
NamePanel* myCwaEdgeNamePanel = nullptr;
493
NamePanel* myStreetNamePanel = nullptr;
494
NamePanel* myEdgeValuePanel = nullptr;
495
NamePanel* myEdgeScaleValuePanel = nullptr;
496
NamePanel* myJunctionIndexPanel = nullptr;
497
NamePanel* myTLIndexPanel = nullptr;
498
NamePanel* myJunctionIDPanel = nullptr;
499
NamePanel* myJunctionNamePanel = nullptr;
500
NamePanel* myInternalJunctionNamePanel = nullptr;
501
NamePanel* myTLSPhaseIndexPanel = nullptr;
502
NamePanel* myTLSPhaseNamePanel = nullptr;
503
NamePanel* myVehicleNamePanel = nullptr;
504
NamePanel* myVehicleValuePanel = nullptr;
505
NamePanel* myVehicleScaleValuePanel = nullptr;
506
NamePanel* myVehicleTextPanel = nullptr;
507
NamePanel* myPersonNamePanel = nullptr;
508
NamePanel* myPersonValuePanel = nullptr;
509
NamePanel* myContainerNamePanel = nullptr;
510
NamePanel* myAddNamePanel = nullptr;
511
NamePanel* myAddFullNamePanel = nullptr;
512
NamePanel* myPOINamePanel = nullptr;
513
NamePanel* myPOITypePanel = nullptr;
514
NamePanel* myPOITextPanel = nullptr;
515
NamePanel* myPolyNamePanel = nullptr;
516
NamePanel* myPolyTypePanel = nullptr;
517
NamePanel* myDataValuePanel = nullptr;
518
NamePanel* myGeometryIndicesPanel = nullptr;
519
520
/// @brief size panels
521
SizePanel* myVehicleSizePanel = nullptr;
522
SizePanel* myPersonSizePanel = nullptr;
523
SizePanel* myContainerSizePanel = nullptr;
524
SizePanel* myPOISizePanel = nullptr;
525
SizePanel* myPolySizePanel = nullptr;
526
SizePanel* myAddSizePanel = nullptr;
527
SizePanel* myJunctionSizePanel = nullptr;
528
529
/// @brief rainbow panels
530
RainbowPanel* myEdgeRainbowPanel = nullptr;
531
RainbowPanel* myJunctionRainbowPanel = nullptr;
532
RainbowPanel* myDataRainbowPanel = nullptr;
533
RainbowPanel* myVehicleRainbowPanel = nullptr;
534
535
/// @brief load/save-menu
536
FXCheckButton* mySaveViewPort = nullptr;
537
FXCheckButton* mySaveDelay = nullptr;
538
FXCheckButton* mySaveDecals = nullptr;
539
FXCheckButton* mySaveBreakpoints = nullptr;
540
541
/// @}
542
543
/// @brief Frame3D
544
FXTabItem* myFrame3D = nullptr;
545
546
/// @brief update color ranges
547
bool updateColorRanges(FXObject* sender, std::vector<FXColorWell*>::const_iterator colIt,
548
std::vector<FXColorWell*>::const_iterator colEnd,
549
std::vector<FXRealSpinner*>::const_iterator threshIt,
550
std::vector<FXRealSpinner*>::const_iterator threshEnd,
551
std::vector<FXButton*>::const_iterator buttonIt,
552
GUIColorScheme& scheme);
553
554
/// @brief update scale ranges
555
bool updateScaleRanges(FXObject* sender, std::vector<FXRealSpinner*>::const_iterator colIt,
556
std::vector<FXRealSpinner*>::const_iterator colEnd,
557
std::vector<FXRealSpinner*>::const_iterator threshIt,
558
std::vector<FXRealSpinner*>::const_iterator threshEnd,
559
std::vector<FXButton*>::const_iterator buttonIt,
560
GUIScaleScheme& scheme);
561
562
/// @brief Rebuilds manipulators for the current coloring scheme
563
FXMatrix* rebuildColorMatrix(FXVerticalFrame* frame,
564
std::vector<FXColorWell*>& colors,
565
std::vector<FXRealSpinner*>& thresholds,
566
std::vector<FXButton*>& buttons,
567
FXCheckButton* interpolation,
568
GUIColorScheme& scheme);
569
570
/// @brief Rebuilds manipulators for the current scaling scheme
571
FXMatrix* rebuildScaleMatrix(FXVerticalFrame* frame,
572
std::vector<FXRealSpinner*>& scales,
573
std::vector<FXRealSpinner*>& thresholds,
574
std::vector<FXButton*>& buttons,
575
FXCheckButton* interpolation,
576
GUIScaleScheme& scheme);
577
578
/** @brief Rebuilds color changing dialogs after choosing another coloring scheme
579
* @param[in] doCreate Whether "create" shall be called (only if built the first time)
580
*/
581
void rebuildColorMatrices(bool doCreate = false);
582
583
/** @brief Loads a scheme from a file
584
* @param[in] file The name of the file to read the settings from
585
*/
586
void loadSettings(const std::string& file);
587
588
/** @brief Writes the currently used decals into a file
589
* @param[in] file The name of the file to write the decals into
590
*/
591
void saveDecals(OutputDevice& dev) const;
592
593
/** @brief Loads decals from a file
594
* @param[in] file The name of the file to read the decals from
595
*/
596
void loadDecals(const std::string& file);
597
598
/// @brief reload known vehicle parameters
599
void updateVehicleParams();
600
601
/// @brief reload known POI parameters
602
void updatePOIParams();
603
604
/// @brief build header
605
void buildHeader(FXVerticalFrame* contentFrame);
606
607
/// @brief build frames
608
/// @{
609
610
void buildBackgroundFrame(FXTabBook* tabbook);
611
void buildStreetsFrame(FXTabBook* tabbook);
612
void buildVehiclesFrame(FXTabBook* tabbook);
613
void buildPersonsFrame(FXTabBook* tabbook);
614
void buildContainersFrame(FXTabBook* tabbook);
615
void buildJunctionsFrame(FXTabBook* tabbook);
616
void buildAdditionalsFrame(FXTabBook* tabbook);
617
void buildDemandFrame(FXTabBook* tabbook);
618
void buildPOIsFrame(FXTabBook* tabbook);
619
void buildPolygonsFrame(FXTabBook* tabbook);
620
void buildSelectionFrame(FXTabBook* tabbook);
621
void buildDataFrame(FXTabBook* tabbook);
622
void buildLegendFrame(FXTabBook* tabbook);
623
void buildOpenGLFrame(FXTabBook* tabbook);
624
void build3DFrame(FXTabBook* tabbook);
625
626
///@}
627
628
/// @brief build buttons
629
void buildButtons(FXVerticalFrame* contentFrame);
630
631
private:
632
/// @brief invalidated copy constructor
633
GUIDialog_ViewSettings(const GUIDialog_ViewSettings& s) = delete;
634
635
/// @brief invalidated assignment operator
636
GUIDialog_ViewSettings& operator=(const GUIDialog_ViewSettings& s) = delete;
637
};
638
639