Eclipse SUMO - Simulation of Urban MObility
GNEFixElementsDialog.h
Go to the documentation of this file.
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 /****************************************************************************/
18 // Dialog used to fix elements during saving
19 /****************************************************************************/
20 #pragma once
21 #include <config.h>
22 
24 
25 // ===========================================================================
26 // class declarations
27 // ===========================================================================
28 class GNEStoppingPlace;
29 class GNEDetector;
30 class GNEViewNet;
31 
32 // ===========================================================================
33 // class definitions
34 // ===========================================================================
35 
36 class GNEFixElementsDialog : public FXDialogBox {
38  FXDECLARE(GNEFixElementsDialog)
39 
40 public:
42  GNEFixElementsDialog(GNEViewNet* viewNet, const std::vector<GNEAdditional*>& invalidSingleLaneAdditionals, const std::vector<GNEAdditional*>& invalidMultiLaneAdditionals);
43 
46 
50  long onCmdSelectOption(FXObject* obj, FXSelector, void*);
51 
53  long onCmdAccept(FXObject*, FXSelector, void*);
54 
56  long onCmdCancel(FXObject*, FXSelector, void*);
58 
59 protected:
61  class AdditionalList : protected FXGroupBox {
62 
63  public:
65  AdditionalList(GNEFixElementsDialog* fixAdditionalPositions, const std::vector<GNEAdditional*>& invalidSingleLaneAdditionals, const std::vector<GNEAdditional*>& invalidMultiLaneAdditionals);
66 
68  std::vector<GNEAdditional*> myInvalidSingleLaneAdditionals;
69 
71  std::vector<GNEAdditional*> myInvalidMultiLaneAdditionals;
72 
74  FXTable* myTable;
75  };
76 
79 
80  public:
82  PositionOptions(GNEFixElementsDialog* fixAdditionalPositions);
83 
85  void selectOption(FXObject* option);
86 
88  void enablePositionOptions();
89 
92 
95 
97  FXRadioButton* fixPositionsAndSave;
98 
100  FXRadioButton* saveInvalid;
101 
104  };
105 
108 
109  public:
111  ConsecutiveLaneOptions(GNEFixElementsDialog* fixAdditionalPositions);
112 
114  void selectOption(FXObject* option);
115 
118 
121 
124 
126  FXRadioButton* removeInvalidElements;
127 
130 
132  FXRadioButton* fixPositionsAndSave;
133  };
134 
135  FOX_CONSTRUCTOR(GNEFixElementsDialog)
136 
137 
139 
141  FXVerticalFrame* myMainFrame;
142 
145 
148 
151 
153  FXButton* myAcceptButton;
154 
156  FXButton* myCancelButton;
157 
158 private:
161 
163  GNEFixElementsDialog& operator=(const GNEFixElementsDialog&) = delete;
164 };
std::vector< GNEAdditional * > myInvalidMultiLaneAdditionals
vector with the invalid multi-lane additionals
AdditionalList(GNEFixElementsDialog *fixAdditionalPositions, const std::vector< GNEAdditional * > &invalidSingleLaneAdditionals, const std::vector< GNEAdditional * > &invalidMultiLaneAdditionals)
constructor
FXTable * myTable
list with the stoppingPlaces and detectors
std::vector< GNEAdditional * > myInvalidSingleLaneAdditionals
vector with the invalid single-lane additionals
groupbox for group all radio buttons related to additionals with consecutive lanes
FXRadioButton * fixPositionsAndSave
Option "Fix Positions and save".
FXRadioButton * activateFriendlyPositionAndSave
Option "Activate friendlyPos and save".
FXRadioButton * removeInvalidElements
Option "remove invalid elements".
void enableConsecutiveLaneOptions()
enable consecutive lane options
FXRadioButton * buildConnectionBetweenLanes
Option "build connections between lanes".
void selectOption(FXObject *option)
select option
void disableConsecutiveLaneOptions()
disable consecutive lane options
ConsecutiveLaneOptions(GNEFixElementsDialog *fixAdditionalPositions)
build consecutive lane Options
groupbox for group all radio buttons related to additionals with single lanes
FXRadioButton * selectInvalidStopsAndCancel
Option "Select invalid stops and cancel".
FXRadioButton * saveInvalid
Option "Save invalid".
void selectOption(FXObject *option)
select option
FXRadioButton * fixPositionsAndSave
Option "Fix Positions and save".
FXRadioButton * activateFriendlyPositionAndSave
Option "Activate friendlyPos and save".
void enablePositionOptions()
enable position options
PositionOptions(GNEFixElementsDialog *fixAdditionalPositions)
build Position Options
void disablePositionOptions()
disable position options
GNEViewNet * myViewNet
view net
long onCmdCancel(FXObject *, FXSelector, void *)
event after press cancel button
ConsecutiveLaneOptions * myConsecutiveLaneOptions
consecutive lane options
AdditionalList * myAdditionalList
Additional List.
FXButton * myCancelButton
cancel button
FXVerticalFrame * myMainFrame
main
PositionOptions * myPositionOptions
position options
long onCmdSelectOption(FXObject *obj, FXSelector, void *)
long onCmdAccept(FXObject *, FXSelector, void *)
event after press accept button
FXButton * myAcceptButton
accept button
GNEFixElementsDialog(GNEViewNet *viewNet, const std::vector< GNEAdditional * > &invalidSingleLaneAdditionals, const std::vector< GNEAdditional * > &invalidMultiLaneAdditionals)
FOX-declaration.
MFXGroupBoxModule (based on FXGroupBox)