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: 2024-11-20 15:55:46 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-2024 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 FXDialogBox, 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              : 
     190              :     /// @brief get GUISUMOAbstractView parent
     191              :     GUISUMOAbstractView* getSUMOAbstractView();
     192              : 
     193              :     /** @brief Sets current settings (called if reopened)
     194              :      * @param[in, out] settings The current settings that can be changed
     195              :      */
     196              :     void setCurrent(GUIVisualizationSettings* settings);
     197              : 
     198              :     /// @name FOX-callbacks
     199              :     /// @{
     200              : 
     201              :     /// @brief Called if the OK-button was pressed
     202              :     long onCmdOk(FXObject*, FXSelector, void*);
     203              : 
     204              :     /// @brief Called if the Cancel-button was pressed
     205              :     long onCmdCancel(FXObject*, FXSelector, void*);
     206              : 
     207              :     /// @brief Called if something (color, width, etc.) has been changed
     208              :     long onCmdColorChange(FXObject*, FXSelector, void*);
     209              : 
     210              :     /// @brief Called if the name of the scheme was changed
     211              :     long onCmdNameChange(FXObject*, FXSelector, void*);
     212              : 
     213              :     /// @brief Called if the settings shall be saved into the registry
     214              :     long onCmdSaveSetting(FXObject*, FXSelector, void* data);
     215              : 
     216              :     /// @brief Called when updating the button that allows to save the settings into the registry
     217              :     long onUpdSaveSetting(FXObject*, FXSelector, void* data);
     218              : 
     219              :     /// @brief Called if the settings shall be deleted
     220              :     long onCmdDeleteSetting(FXObject*, FXSelector, void* data);
     221              : 
     222              :     /// @brief Called when updating the button that allows to delete settings
     223              :     long onUpdDeleteSetting(FXObject*, FXSelector, void* data);
     224              : 
     225              :     /// @brief Called if the settings shall be exported into a file
     226              :     long onCmdExportSetting(FXObject*, FXSelector, void* data);
     227              : 
     228              :     /// @brief Called when updating the button that allows to export settings into a file
     229              :     long onUpdExportSetting(FXObject*, FXSelector, void* data);
     230              : 
     231              :     /// @brief Called if the settings shall be read from a file
     232              :     long onCmdImportSetting(FXObject*, FXSelector, void* data);
     233              : 
     234              :     /// @brief Called when updating the button that allows to read settings from a file
     235              :     long onUpdImportSetting(FXObject*, FXSelector, void* data);
     236              : 
     237              :     /// @brief Called if the decal shall be loaded from a file
     238              :     long onCmdLoadDecal(FXObject*, FXSelector, void* data);
     239              : 
     240              :     /// @brief Called if the decals shall be loaded from a file
     241              :     long onCmdLoadXMLDecals(FXObject*, FXSelector, void* data);
     242              : 
     243              :     /// @brief Called if the decals shall be saved to a file
     244              :     long onCmdSaveXMLDecals(FXObject*, FXSelector, void* data);
     245              : 
     246              :     /// @brief Called if the decals shall be cleared
     247              :     long onCmdClearDecals(FXObject*, FXSelector, void* data);
     248              :     /// @}
     249              : 
     250              :     /** @brief Returns the name of the currently chosen scheme
     251              :      * @return The name of the edited (chosen) scheme)
     252              :      */
     253              :     std::string getCurrentScheme() const;
     254              : 
     255              :     /** @brief Sets the named scheme as the current
     256              :      * @param[in] The name of the scheme that shall be set as current
     257              :      */
     258              :     void setCurrentScheme(const std::string&);
     259              : 
     260            0 :     void hide() {
     261            0 :         saveWindowPos();
     262            0 :         FXTopWindow::hide();
     263            0 :     }
     264              : 
     265              : protected:
     266              :     /// @brief The parent view (which settings are changed)
     267              :     GUISUMOAbstractView* myParent = nullptr;
     268              : 
     269              :     /// @brief The current settings
     270              :     GUIVisualizationSettings* mySettings = nullptr;
     271              : 
     272              :     /// @brief A backup of the settings (used if the "Cancel" button is pressed)
     273              :     GUIVisualizationSettings myBackup;
     274              : 
     275              :     /// @name Dialog elements
     276              :     /// @{
     277              : 
     278              :     MFXComboBoxIcon* mySchemeName = nullptr;
     279              :     FXCheckButton* myShowGrid = nullptr;
     280              :     FXRealSpinner* myGridXSizeDialer = nullptr;
     281              :     FXRealSpinner* myGridYSizeDialer = nullptr;
     282              : 
     283              :     FXColorWell* myBackgroundColor = nullptr;
     284              :     MFXDecalsTable* myDecalsTable = nullptr;
     285              : 
     286              :     /// @brief selection colors
     287              :     FXColorWell* mySelectionColor = nullptr;
     288              :     FXColorWell* mySelectedEdgeColor = nullptr;
     289              :     FXColorWell* mySelectedLaneColor = nullptr;
     290              :     FXColorWell* mySelectedConnectionColor = nullptr;
     291              :     FXColorWell* mySelectedProhibitionColor = nullptr;
     292              :     FXColorWell* mySelectedCrossingColor = nullptr;
     293              :     FXColorWell* mySelectedAdditionalColor = nullptr;
     294              :     FXColorWell* mySelectedRouteColor = nullptr;
     295              :     FXColorWell* mySelectedVehicleColor = nullptr;
     296              :     FXColorWell* mySelectedPersonColor = nullptr;
     297              :     FXColorWell* mySelectedPersonPlanColor = nullptr;
     298              :     FXColorWell* mySelectedEdgeDataColor = nullptr;
     299              : 
     300              :     /// @brief additional colors
     301              :     FXColorWell* myBusStopColor = nullptr;
     302              :     FXColorWell* myBusStopColorSign = nullptr;
     303              :     FXColorWell* myTrainStopColor = nullptr;
     304              :     FXColorWell* myTrainStopColorSign = nullptr;
     305              :     FXColorWell* myContainerStopColor = nullptr;
     306              :     FXColorWell* myContainerStopColorSign = nullptr;
     307              :     FXColorWell* myChargingStationColor = nullptr;
     308              :     FXColorWell* myChargingStationColorSign = nullptr;
     309              :     FXColorWell* myStopColor = nullptr;
     310              :     FXColorWell* myWaypointColor = nullptr;
     311              :     FXColorWell* myVehicleTripsColor = nullptr;
     312              :     FXColorWell* myStopPersonsColor = nullptr;
     313              :     FXColorWell* myPersonTripColor = nullptr;
     314              :     FXColorWell* myWalkColor = nullptr;
     315              :     FXColorWell* myRideColor = nullptr;
     316              :     FXColorWell* myStopContainersColor = nullptr;
     317              :     FXColorWell* myTransportColor = nullptr;
     318              :     FXColorWell* myTranshipColor = nullptr;
     319              : 
     320              :     /// @brief demand widths
     321              : 
     322              :     FXRealSpinner* myTripWidth = nullptr;
     323              :     FXRealSpinner* myPersonTripWidth = nullptr;
     324              :     FXRealSpinner* myWalkWidth = nullptr;
     325              :     FXRealSpinner* myRideWidth = nullptr;
     326              :     FXRealSpinner* myTransportWidth = nullptr;
     327              :     FXRealSpinner* myTranshipWidth = nullptr;
     328              : 
     329              :     /// @brief ... lane colorer
     330              :     MFXComboBoxIcon* myLaneEdgeColorMode = nullptr;
     331              :     FXVerticalFrame* myLaneColorSettingFrame = nullptr;
     332              :     std::vector<FXColorWell*> myLaneColors;
     333              :     std::vector<FXRealSpinner*> myLaneThresholds;
     334              :     std::vector<FXButton*> myLaneButtons;
     335              :     FXCheckButton* myLaneColorInterpolation = nullptr;
     336              :     RainbowPanel* myJunctionRainbowPanel = nullptr;
     337              :     FXComboBox* myParamKey = nullptr;
     338              :     FXComboBox* myScalingParamKey = nullptr;
     339              :     MFXComboBoxIcon* myMeanDataID = nullptr;
     340              : 
     341              :     /// @brief ... lane scaler
     342              :     MFXComboBoxIcon* myLaneEdgeScaleMode = nullptr;
     343              :     FXVerticalFrame* myLaneScaleSettingFrame = nullptr;
     344              :     std::vector<FXRealSpinner*> myLaneScales;
     345              :     std::vector<FXRealSpinner*> myLaneScaleThresholds;
     346              :     std::vector<FXButton*> myLaneScaleButtons;
     347              :     FXCheckButton* myLaneScaleInterpolation = nullptr;
     348              : 
     349              :     FXCheckButton* myShowLaneBorders = nullptr;
     350              :     FXCheckButton* myShowBikeMarkings = nullptr;
     351              :     FXCheckButton* myShowLaneDecals = nullptr;
     352              :     FXCheckButton* myRealisticLinkRules = nullptr;
     353              :     FXCheckButton* myShowLinkRules = nullptr;
     354              :     FXCheckButton* myShowRails = nullptr;
     355              :     FXCheckButton* mySecondaryShape = nullptr;
     356              :     FXCheckButton* myHideMacroConnectors = nullptr;
     357              :     FXCheckButton* myShowLaneDirection = nullptr;
     358              :     FXCheckButton* myShowSublanes = nullptr;
     359              :     FXCheckButton* mySpreadSuperposed = nullptr;
     360              :     FXCheckButton* myDisableHideByZoom = nullptr;
     361              :     FXRealSpinner* myLaneWidthUpscaleDialer = nullptr;
     362              :     FXRealSpinner* myLaneMinWidthDialer = nullptr;
     363              : 
     364              :     /// @brief Vehicles
     365              :     MFXComboBoxIcon* myVehicleColorMode, *myVehicleShapeDetail = nullptr;
     366              :     FXVerticalFrame* myVehicleColorSettingFrame = nullptr;
     367              :     std::vector<FXColorWell*> myVehicleColors;
     368              :     std::vector<FXRealSpinner*> myVehicleThresholds;
     369              :     std::vector<FXButton*> myVehicleButtons;
     370              :     FXCheckButton* myVehicleColorInterpolation = nullptr;
     371              : 
     372              :     /// @brief vehicle scaler
     373              :     MFXComboBoxIcon* myVehicleScaleMode = nullptr;
     374              :     FXVerticalFrame* myVehicleScaleSettingFrame = nullptr;
     375              :     std::vector<FXRealSpinner*> myVehicleScales;
     376              :     std::vector<FXRealSpinner*> myVehicleScaleThresholds;
     377              :     std::vector<FXButton*> myVehicleScaleButtons;
     378              :     FXCheckButton* myVehicleScaleInterpolation = nullptr;
     379              : 
     380              :     FXCheckButton* myShowBlinker = nullptr;
     381              :     FXCheckButton* myShowMinGap = nullptr;
     382              :     FXCheckButton* myShowBrakeGap = nullptr;
     383              :     FXCheckButton* myShowBTRange = nullptr;
     384              :     FXCheckButton* myShowRouteIndex = nullptr;
     385              :     FXCheckButton* myScaleLength = nullptr;
     386              :     FXCheckButton* myDrawReversed = nullptr;
     387              :     FXCheckButton* myShowParkingInfo = nullptr;
     388              :     FXCheckButton* myShowChargingInfo = nullptr;
     389              :     /*FXCheckButton* myShowLaneChangePreference = nullptr;*/
     390              : 
     391              :     FXComboBox* myVehicleParamKey = nullptr;
     392              :     FXComboBox* myVehicleScalingParamKey = nullptr;
     393              :     FXComboBox* myVehicleTextParamKey = nullptr;
     394              : 
     395              :     /// @brief Persons
     396              :     MFXComboBoxIcon* myPersonColorMode, *myPersonShapeDetail = nullptr;
     397              :     FXVerticalFrame* myPersonColorSettingFrame = nullptr;
     398              :     std::vector<FXColorWell*> myPersonColors;
     399              :     std::vector<FXRealSpinner*> myPersonThresholds;
     400              :     std::vector<FXButton*> myPersonButtons;
     401              :     FXCheckButton* myPersonColorInterpolation = nullptr;
     402              :     FXCheckButton* myShowPedestrianNetwork = nullptr;
     403              :     FXColorWell* myPedestrianNetworkColor = nullptr;
     404              : 
     405              :     /// @brief Containers
     406              :     MFXComboBoxIcon* myContainerColorMode, *myContainerShapeDetail = nullptr;
     407              :     FXVerticalFrame* myContainerColorSettingFrame = nullptr;
     408              :     std::vector<FXColorWell*> myContainerColors;
     409              :     std::vector<FXRealSpinner*> myContainerThresholds;
     410              :     std::vector<FXButton*> myContainerButtons;
     411              :     FXCheckButton* myContainerColorInterpolation = nullptr;
     412              :     FXRealSpinner* myContainerMinSizeDialer, *myContainerUpscaleDialer = nullptr;
     413              : 
     414              :     /// @brief junctions
     415              :     MFXComboBoxIcon* myJunctionColorMode = nullptr;
     416              :     FXVerticalFrame* myJunctionColorSettingFrame = nullptr;
     417              :     std::vector<FXColorWell*> myJunctionColors;
     418              :     std::vector<FXRealSpinner*> myJunctionThresholds;
     419              :     std::vector<FXButton*> myJunctionButtons;
     420              :     FXCheckButton* myJunctionColorInterpolation = nullptr;
     421              : 
     422              :     /// @brief POIs
     423              :     MFXComboBoxIcon* myPOIColorMode, *myPOIShapeDetail = nullptr;
     424              :     FXVerticalFrame* myPOIColorSettingFrame = nullptr;
     425              :     std::vector<FXColorWell*> myPOIColors;
     426              :     std::vector<FXRealSpinner*> myPOIThresholds;
     427              :     std::vector<FXButton*> myPOIButtons;
     428              :     FXCheckButton* myPOIColorInterpolation = nullptr;
     429              :     FXComboBox* myPOITextParamKey = nullptr;
     430              :     FXSpinner* myPoiDetail = nullptr;
     431              :     FXCheckButton* myPOIUseCustomLayer = nullptr;
     432              :     FXRealSpinner* myPOICustomLayer = nullptr;
     433              : 
     434              :     /// @brief Polygons
     435              :     MFXComboBoxIcon* myPolyColorMode, *myPolyShapeDetail = nullptr;
     436              :     FXVerticalFrame* myPolyColorSettingFrame = nullptr;
     437              :     std::vector<FXColorWell*> myPolyColors;
     438              :     std::vector<FXRealSpinner*> myPolyThresholds;
     439              :     std::vector<FXButton*> myPolyButtons;
     440              :     FXCheckButton* myPolyColorInterpolation = nullptr;
     441              :     FXCheckButton* myPolyUseCustomLayer = nullptr;
     442              :     FXRealSpinner* myPolyCustomLayer = nullptr;
     443              : 
     444              :     /// @brief Data
     445              :     MFXComboBoxIcon* myDataColorMode = nullptr;
     446              :     FXVerticalFrame* myDataColorSettingFrame = nullptr;
     447              :     std::vector<FXColorWell*> myDataColors;
     448              :     std::vector<FXRealSpinner*> myDataThresholds;
     449              :     std::vector<FXButton*> myDataButtons;
     450              :     FXCheckButton* myDataColorInterpolation = nullptr;
     451              :     FXComboBox* myDataParamKey = nullptr;
     452              :     FXRealSpinner* myEdgeRelationUpscaleDialer = nullptr;
     453              :     FXRealSpinner* myTazRelationUpscaleDialer = nullptr;
     454              :     RainbowPanel* myDataRainbowPanel = nullptr;
     455              : 
     456              :     /// @brief buttons
     457              :     FXCheckButton* myShowLane2Lane = nullptr;
     458              :     FXCheckButton* myDrawJunctionShape = nullptr;
     459              :     FXCheckButton* myDrawCrossingsAndWalkingAreas = nullptr;
     460              :     FXCheckButton* myShowSizeLegend = nullptr;
     461              :     FXCheckButton* myShowColorLegend = nullptr;
     462              :     FXCheckButton* myShowVehicleColorLegend = nullptr;
     463              : 
     464              :     /// @brief 3D
     465              :     FXCheckButton* myShow3DTLSLinkMarkers = nullptr;
     466              :     FXCheckButton* myShow3DTLSDomes = nullptr;
     467              :     FXCheckButton* myShow3DHeadUpDisplay = nullptr;
     468              :     FXCheckButton* myGenerate3DTLSModels = nullptr;
     469              :     FXSpinner* myLight3DFactor = nullptr;
     470              :     //FXColorWell* myAmbient3DLight = nullptr;
     471              :     //FXColorWell* myDiffuse3DLight = nullptr;
     472              :     FXColorWell* mySkyColor = nullptr;
     473              : 
     474              :     /// @brief openGL
     475              :     FXCheckButton* myDither = nullptr;
     476              :     FXCheckButton* myFPS = nullptr;
     477              :     FXCheckButton* myTrueZ = nullptr;
     478              :     FXCheckButton* myDrawBoundaries = nullptr;
     479              :     FXCheckButton* myForceDrawForRectangleSelection = nullptr;
     480              :     FXCheckButton* myDisableDottedContours = nullptr;
     481              :     FXButton* myRecalculateBoundaries = nullptr;
     482              :     FXRealSpinner* myComboRows = nullptr;
     483              : 
     484              :     /// @brief name panels
     485              :     NamePanel* myEdgeNamePanel = nullptr;
     486              :     NamePanel* myInternalEdgeNamePanel = nullptr;
     487              :     NamePanel* myCwaEdgeNamePanel = nullptr;
     488              :     NamePanel* myStreetNamePanel = nullptr;
     489              :     NamePanel* myEdgeValuePanel = nullptr;
     490              :     NamePanel* myEdgeScaleValuePanel = nullptr;
     491              :     NamePanel* myJunctionIndexPanel = nullptr;
     492              :     NamePanel* myTLIndexPanel = nullptr;
     493              :     NamePanel* myJunctionIDPanel = nullptr;
     494              :     NamePanel* myJunctionNamePanel = nullptr;
     495              :     NamePanel* myInternalJunctionNamePanel = nullptr;
     496              :     NamePanel* myTLSPhaseIndexPanel = nullptr;
     497              :     NamePanel* myTLSPhaseNamePanel = nullptr;
     498              :     NamePanel* myVehicleNamePanel = nullptr;
     499              :     NamePanel* myVehicleValuePanel = nullptr;
     500              :     NamePanel* myVehicleScaleValuePanel = nullptr;
     501              :     NamePanel* myVehicleTextPanel = nullptr;
     502              :     NamePanel* myPersonNamePanel = nullptr;
     503              :     NamePanel* myPersonValuePanel = nullptr;
     504              :     NamePanel* myContainerNamePanel = nullptr;
     505              :     NamePanel* myAddNamePanel = nullptr;
     506              :     NamePanel* myAddFullNamePanel = nullptr;
     507              :     NamePanel* myPOINamePanel = nullptr;
     508              :     NamePanel* myPOITypePanel = nullptr;
     509              :     NamePanel* myPOITextPanel = nullptr;
     510              :     NamePanel* myPolyNamePanel = nullptr;
     511              :     NamePanel* myPolyTypePanel = nullptr;
     512              :     NamePanel* myDataValuePanel = nullptr;
     513              :     NamePanel* myGeometryIndicesPanel = nullptr;
     514              : 
     515              :     /// @brief size panels
     516              :     SizePanel* myVehicleSizePanel = nullptr;
     517              :     SizePanel* myPersonSizePanel = nullptr;
     518              :     SizePanel* myContainerSizePanel = nullptr;
     519              :     SizePanel* myPOISizePanel = nullptr;
     520              :     SizePanel* myPolySizePanel = nullptr;
     521              :     SizePanel* myAddSizePanel = nullptr;
     522              :     SizePanel* myJunctionSizePanel = nullptr;
     523              : 
     524              :     /// @brief rainbow panels
     525              :     RainbowPanel* myEdgeRainbowPanel = nullptr;
     526              : 
     527              :     /// @brief load/save-menu
     528              :     FXCheckButton* mySaveViewPort = nullptr;
     529              :     FXCheckButton* mySaveDelay = nullptr;
     530              :     FXCheckButton* mySaveDecals = nullptr;
     531              :     FXCheckButton* mySaveBreakpoints = nullptr;
     532              : 
     533              :     /// @}
     534              : 
     535              :     /// @brief Frame3D
     536              :     FXTabItem* myFrame3D = nullptr;
     537              : 
     538              :     /// @brief update color ranges
     539              :     bool updateColorRanges(FXObject* sender, std::vector<FXColorWell*>::const_iterator colIt,
     540              :                            std::vector<FXColorWell*>::const_iterator colEnd,
     541              :                            std::vector<FXRealSpinner*>::const_iterator threshIt,
     542              :                            std::vector<FXRealSpinner*>::const_iterator threshEnd,
     543              :                            std::vector<FXButton*>::const_iterator buttonIt,
     544              :                            GUIColorScheme& scheme);
     545              : 
     546              :     /// @brief update scale ranges
     547              :     bool updateScaleRanges(FXObject* sender, std::vector<FXRealSpinner*>::const_iterator colIt,
     548              :                            std::vector<FXRealSpinner*>::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              :                            GUIScaleScheme& scheme);
     553              : 
     554              :     /// @brief Rebuilds manipulators for the current coloring scheme
     555              :     FXMatrix* rebuildColorMatrix(FXVerticalFrame* frame,
     556              :                                  std::vector<FXColorWell*>& colors,
     557              :                                  std::vector<FXRealSpinner*>& thresholds,
     558              :                                  std::vector<FXButton*>& buttons,
     559              :                                  FXCheckButton* interpolation,
     560              :                                  GUIColorScheme& scheme);
     561              : 
     562              :     /// @brief Rebuilds manipulators for the current scaling scheme
     563              :     FXMatrix* rebuildScaleMatrix(FXVerticalFrame* frame,
     564              :                                  std::vector<FXRealSpinner*>& scales,
     565              :                                  std::vector<FXRealSpinner*>& thresholds,
     566              :                                  std::vector<FXButton*>& buttons,
     567              :                                  FXCheckButton* interpolation,
     568              :                                  GUIScaleScheme& scheme);
     569              : 
     570              :     /** @brief Rebuilds color changing dialogs after choosing another coloring scheme
     571              :      * @param[in] doCreate Whether "create" shall be called (only if built the first time)
     572              :      */
     573              :     void rebuildColorMatrices(bool doCreate = false);
     574              : 
     575              :     /** @brief Loads a scheme from a file
     576              :      * @param[in] file The name of the file to read the settings from
     577              :      */
     578              :     void loadSettings(const std::string& file);
     579              : 
     580              :     /** @brief Writes the currently used decals into a file
     581              :      * @param[in] file The name of the file to write the decals into
     582              :      */
     583              :     void saveDecals(OutputDevice& dev) const;
     584              : 
     585              :     /** @brief Loads decals from a file
     586              :      * @param[in] file The name of the file to read the decals from
     587              :      */
     588              :     void loadDecals(const std::string& file);
     589              : 
     590              :     /// @brief reload known vehicle parameters
     591              :     void updateVehicleParams();
     592              : 
     593              :     /// @brief reload known POI parameters
     594              :     void updatePOIParams();
     595              : 
     596              :     /// @brief build header
     597              :     void buildHeader(FXVerticalFrame* contentFrame);
     598              : 
     599              :     /// @brief build frames
     600              :     /// @{
     601              : 
     602              :     void buildBackgroundFrame(FXTabBook* tabbook);
     603              :     void buildStreetsFrame(FXTabBook* tabbook);
     604              :     void buildVehiclesFrame(FXTabBook* tabbook);
     605              :     void buildPersonsFrame(FXTabBook* tabbook);
     606              :     void buildContainersFrame(FXTabBook* tabbook);
     607              :     void buildJunctionsFrame(FXTabBook* tabbook);
     608              :     void buildAdditionalsFrame(FXTabBook* tabbook);
     609              :     void buildDemandFrame(FXTabBook* tabbook);
     610              :     void buildPOIsFrame(FXTabBook* tabbook);
     611              :     void buildPolygonsFrame(FXTabBook* tabbook);
     612              :     void buildSelectionFrame(FXTabBook* tabbook);
     613              :     void buildDataFrame(FXTabBook* tabbook);
     614              :     void buildLegendFrame(FXTabBook* tabbook);
     615              :     void buildOpenGLFrame(FXTabBook* tabbook);
     616              :     void build3DFrame(FXTabBook* tabbook);
     617              : 
     618              :     ///@}
     619              : 
     620              :     /// @brief build buttons
     621              :     void buildButtons(FXVerticalFrame* contentFrame);
     622              : 
     623              : private:
     624              :     /// @brief invalidated copy constructor
     625              :     GUIDialog_ViewSettings(const GUIDialog_ViewSettings& s) = delete;
     626              : 
     627              :     /// @brief invalidated assignment operator
     628              :     GUIDialog_ViewSettings& operator=(const GUIDialog_ViewSettings& s) = delete;
     629              : };
        

Generated by: LCOV version 2.0-1