LCOV - code coverage report
Current view: top level - src/utils/gui/windows - GUIDialog_ViewSettings.h (source / functions) Coverage Total Hit
Test: lcov.info Lines: 0.0 % 8 0
Test Date: 2025-12-06 15:35:27 Functions: 0.0 % 4 0

            Line data    Source code
       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            0 :     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            0 :         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            0 :         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            0 :     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            0 :     void hide() {
     267            0 :         saveWindowPos();
     268            0 :         FXTopWindow::hide();
     269            0 :     }
     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 color
     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 Data scaler
     461              :     MFXComboBoxIcon* myDataScaleMode = nullptr;
     462              :     FXVerticalFrame* myDataScaleSettingFrame = nullptr;
     463              :     std::vector<FXRealSpinner*> myDataScales;
     464              :     std::vector<FXRealSpinner*> myDataScaleThresholds;
     465              :     std::vector<FXButton*> myDataScaleButtons;
     466              :     FXCheckButton* myDataScaleInterpolation = nullptr;
     467              :     FXComboBox* myDataScaleParamKey = nullptr;
     468              : 
     469              :     /// @brief buttons
     470              :     FXCheckButton* myShowLane2Lane = nullptr;
     471              :     FXCheckButton* myDrawJunctionShape = nullptr;
     472              :     FXCheckButton* myDrawCrossingsAndWalkingAreas = nullptr;
     473              :     FXCheckButton* myShowSizeLegend = nullptr;
     474              :     FXCheckButton* myShowColorLegend = nullptr;
     475              :     FXCheckButton* myShowVehicleColorLegend = nullptr;
     476              : 
     477              :     /// @brief
     478              :     FXCheckButton* myIgnoreColorSchemeFor3DVehicles = nullptr;
     479              :     FXCheckButton* myShow3DTLSLinkMarkers = nullptr;
     480              :     FXCheckButton* myShow3DTLSDomes = nullptr;
     481              :     FXCheckButton* myShow3DHeadUpDisplay = nullptr;
     482              :     FXCheckButton* myGenerate3DTLSModels = nullptr;
     483              :     FXSpinner* myLight3DFactor = nullptr;
     484              :     //FXColorWell* myAmbient3DLight = nullptr;
     485              :     //FXColorWell* myDiffuse3DLight = nullptr;
     486              :     FXColorWell* mySkyColor = nullptr;
     487              : 
     488              :     /// @brief openGL
     489              :     FXCheckButton* myDither = nullptr;
     490              :     FXCheckButton* myFPS = nullptr;
     491              :     FXCheckButton* myTrueZ = nullptr;
     492              :     FXCheckButton* myDrawBoundaries = nullptr;
     493              :     FXCheckButton* myForceDrawForRectangleSelection = nullptr;
     494              :     FXCheckButton* myDisableDottedContours = nullptr;
     495              :     FXButton* myRecalculateBoundaries = nullptr;
     496              :     FXRealSpinner* myComboRows = nullptr;
     497              : 
     498              :     /// @brief name panels
     499              :     NamePanel* myEdgeNamePanel = nullptr;
     500              :     NamePanel* myInternalEdgeNamePanel = nullptr;
     501              :     NamePanel* myCwaEdgeNamePanel = nullptr;
     502              :     NamePanel* myStreetNamePanel = nullptr;
     503              :     NamePanel* myEdgeValuePanel = nullptr;
     504              :     NamePanel* myEdgeScaleValuePanel = nullptr;
     505              :     NamePanel* myJunctionIndexPanel = nullptr;
     506              :     NamePanel* myTLIndexPanel = nullptr;
     507              :     NamePanel* myJunctionIDPanel = nullptr;
     508              :     NamePanel* myJunctionNamePanel = nullptr;
     509              :     NamePanel* myInternalJunctionNamePanel = nullptr;
     510              :     NamePanel* myTLSPhaseIndexPanel = nullptr;
     511              :     NamePanel* myTLSPhaseNamePanel = nullptr;
     512              :     NamePanel* myVehicleNamePanel = nullptr;
     513              :     NamePanel* myVehicleValuePanel = nullptr;
     514              :     NamePanel* myVehicleScaleValuePanel = nullptr;
     515              :     NamePanel* myVehicleTextPanel = nullptr;
     516              :     NamePanel* myPersonNamePanel = nullptr;
     517              :     NamePanel* myPersonValuePanel = nullptr;
     518              :     NamePanel* myContainerNamePanel = nullptr;
     519              :     NamePanel* myAddNamePanel = nullptr;
     520              :     NamePanel* myAddFullNamePanel = nullptr;
     521              :     NamePanel* myPOINamePanel = nullptr;
     522              :     NamePanel* myPOITypePanel = nullptr;
     523              :     NamePanel* myPOITextPanel = nullptr;
     524              :     NamePanel* myPolyNamePanel = nullptr;
     525              :     NamePanel* myPolyTypePanel = nullptr;
     526              :     NamePanel* myDataValuePanel = nullptr;
     527              :     NamePanel* myGeometryIndicesPanel = nullptr;
     528              : 
     529              :     /// @brief size panels
     530              :     SizePanel* myVehicleSizePanel = nullptr;
     531              :     SizePanel* myPersonSizePanel = nullptr;
     532              :     SizePanel* myContainerSizePanel = nullptr;
     533              :     SizePanel* myPOISizePanel = nullptr;
     534              :     SizePanel* myPolySizePanel = nullptr;
     535              :     SizePanel* myAddSizePanel = nullptr;
     536              :     SizePanel* myJunctionSizePanel = nullptr;
     537              : 
     538              :     /// @brief rainbow panels
     539              :     RainbowPanel* myEdgeRainbowPanel = nullptr;
     540              :     RainbowPanel* myJunctionRainbowPanel = nullptr;
     541              :     RainbowPanel* myDataRainbowPanel = nullptr;
     542              :     RainbowPanel* myVehicleRainbowPanel = nullptr;
     543              : 
     544              :     /// @brief load/save-menu
     545              :     FXCheckButton* mySaveViewPort = nullptr;
     546              :     FXCheckButton* mySaveDelay = nullptr;
     547              :     FXCheckButton* mySaveDecals = nullptr;
     548              :     FXCheckButton* mySaveBreakpoints = nullptr;
     549              : 
     550              :     /// @}
     551              : 
     552              :     /// @brief Frame3D
     553              :     FXTabItem* myFrame3D = nullptr;
     554              : 
     555              :     /// @brief update color ranges
     556              :     bool updateColorRanges(FXObject* sender, std::vector<FXColorWell*>::const_iterator colIt,
     557              :                            std::vector<FXColorWell*>::const_iterator colEnd,
     558              :                            std::vector<FXRealSpinner*>::const_iterator threshIt,
     559              :                            std::vector<FXRealSpinner*>::const_iterator threshEnd,
     560              :                            std::vector<FXButton*>::const_iterator buttonIt,
     561              :                            GUIColorScheme& scheme);
     562              : 
     563              :     /// @brief update scale ranges
     564              :     bool updateScaleRanges(FXObject* sender, std::vector<FXRealSpinner*>::const_iterator colIt,
     565              :                            std::vector<FXRealSpinner*>::const_iterator colEnd,
     566              :                            std::vector<FXRealSpinner*>::const_iterator threshIt,
     567              :                            std::vector<FXRealSpinner*>::const_iterator threshEnd,
     568              :                            std::vector<FXButton*>::const_iterator buttonIt,
     569              :                            GUIScaleScheme& scheme);
     570              : 
     571              :     /// @brief Rebuilds manipulators for the current coloring scheme
     572              :     FXMatrix* rebuildColorMatrix(FXVerticalFrame* frame,
     573              :                                  std::vector<FXColorWell*>& colors,
     574              :                                  std::vector<FXRealSpinner*>& thresholds,
     575              :                                  std::vector<FXButton*>& buttons,
     576              :                                  FXCheckButton* interpolation,
     577              :                                  GUIColorScheme& scheme);
     578              : 
     579              :     /// @brief Rebuilds manipulators for the current scaling scheme
     580              :     FXMatrix* rebuildScaleMatrix(FXVerticalFrame* frame,
     581              :                                  std::vector<FXRealSpinner*>& scales,
     582              :                                  std::vector<FXRealSpinner*>& thresholds,
     583              :                                  std::vector<FXButton*>& buttons,
     584              :                                  FXCheckButton* interpolation,
     585              :                                  GUIScaleScheme& scheme);
     586              : 
     587              :     /** @brief Rebuilds color changing dialogs after choosing another coloring scheme
     588              :      * @param[in] doCreate Whether "create" shall be called (only if built the first time)
     589              :      */
     590              :     void rebuildColorMatrices(bool doCreate = false);
     591              : 
     592              :     /** @brief Loads a scheme from a file
     593              :      * @param[in] file The name of the file to read the settings from
     594              :      */
     595              :     void loadSettings(const std::string& file);
     596              : 
     597              :     /** @brief Writes the currently used decals into a file
     598              :      * @param[in] file The name of the file to write the decals into
     599              :      */
     600              :     void saveDecals(OutputDevice& dev) const;
     601              : 
     602              :     /** @brief Loads decals from a file
     603              :      * @param[in] file The name of the file to read the decals from
     604              :      */
     605              :     void loadDecals(const std::string& file);
     606              : 
     607              :     /// @brief reload known vehicle parameters
     608              :     void updateVehicleParams();
     609              : 
     610              :     /// @brief reload known POI parameters
     611              :     void updatePOIParams();
     612              : 
     613              :     /// @brief build header
     614              :     void buildHeader(FXVerticalFrame* contentFrame);
     615              : 
     616              :     /// @brief build frames
     617              :     /// @{
     618              : 
     619              :     void buildBackgroundFrame(FXTabBook* tabbook);
     620              :     void buildStreetsFrame(FXTabBook* tabbook);
     621              :     void buildVehiclesFrame(FXTabBook* tabbook);
     622              :     void buildPersonsFrame(FXTabBook* tabbook);
     623              :     void buildContainersFrame(FXTabBook* tabbook);
     624              :     void buildJunctionsFrame(FXTabBook* tabbook);
     625              :     void buildAdditionalsFrame(FXTabBook* tabbook);
     626              :     void buildDemandFrame(FXTabBook* tabbook);
     627              :     void buildPOIsFrame(FXTabBook* tabbook);
     628              :     void buildPolygonsFrame(FXTabBook* tabbook);
     629              :     void buildSelectionFrame(FXTabBook* tabbook);
     630              :     void buildDataFrame(FXTabBook* tabbook);
     631              :     void buildLegendFrame(FXTabBook* tabbook);
     632              :     void buildOpenGLFrame(FXTabBook* tabbook);
     633              :     void build3DFrame(FXTabBook* tabbook);
     634              : 
     635              :     ///@}
     636              : 
     637              :     /// @brief build buttons
     638              :     void buildButtons(FXVerticalFrame* contentFrame);
     639              : 
     640              : private:
     641              :     /// @brief invalidated copy constructor
     642              :     GUIDialog_ViewSettings(const GUIDialog_ViewSettings& s) = delete;
     643              : 
     644              :     /// @brief invalidated assignment operator
     645              :     GUIDialog_ViewSettings& operator=(const GUIDialog_ViewSettings& s) = delete;
     646              : };
        

Generated by: LCOV version 2.0-1