Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
GNESingleParametersDialog.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-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/****************************************************************************/
18// Dialog for edit parameters
19/****************************************************************************/
20#pragma once
21#include <config.h>
22
25
26#include "GNEDialog.h"
27
28// ===========================================================================
29// class definitions
30// ===========================================================================
31
34class GNEViewNet;
36
37// ===========================================================================
38// class definitions
39// ===========================================================================
40
44
45public:
46
47 // ===========================================================================
48 // class ParametersValues
49 // ===========================================================================
50
51 class ParametersValues : protected FXGroupBox {
54
55
56 class ParameterRow;
57
58 public:
60 ParametersValues(FXHorizontalFrame* frame, const std::string& name);
61
64
66 void setParameters(const std::vector<std::pair<std::string, std::string> >& newParameters);
67
69 void addParameter(std::pair<std::string, std::string> newParameter);
70
72 void clearParameters();
73
75 const std::vector<ParameterRow*> getParameterRows() const;
76
78 bool keyExist(const std::string& key) const;
79
83 long onPaint(FXObject* o, FXSelector f, void* p);
84
86 long onCmdSetAttribute(FXObject*, FXSelector, void*);
87
89 long onCmdButtonPress(FXObject*, FXSelector, void*);
90
92
93 protected:
95 FOX_CONSTRUCTOR(ParametersValues)
96
97 private:
100
101 public:
103 ParameterRow(ParametersValues* ParametersValues, FXVerticalFrame* verticalFrameParent);
104
107
109 void disableRow();
110
112 void enableRow(const std::string& parameter, const std::string& value) const;
113
115 void toggleAddButton();
116
118 bool isButtonInAddMode() const;
119
121 void copyValues(const ParameterRow& other);
122
124 FXTextField* keyField;
125
127 FXTextField* valueField;
128
130 FXButton* button;
131 private:
133 FXHorizontalFrame* horizontalFrame;
134 };
135
137 FXLabel* myKeyLabel;
138
140 FXVerticalFrame* myVerticalFrameRow;
141
143 std::vector<ParameterRow*> myParameterRows;
144 };
145
146 // ===========================================================================
147 // class ParametersOperations
148 // ===========================================================================
149
150 class ParametersOperations : protected FXGroupBox {
153
154 public:
156 ParametersOperations(FXHorizontalFrame* frame, GNESingleParametersDialog* ParameterDialogParent);
157
160
164 long onCmdLoadParameters(FXObject*, FXSelector, void*);
165
167 long onCmdSaveParameters(FXObject*, FXSelector, void*);
168
170 long onCmdClearParameters(FXObject*, FXSelector, void*);
171
173 long onCmdSortParameters(FXObject*, FXSelector, void*);
174
176 long onCmdHelpParameter(FXObject*, FXSelector, void*);
177
179
180 protected:
182 FOX_CONSTRUCTOR(ParametersOperations)
183
184 private:
188
189 public:
191 GNEParameterHandler(ParametersOperations* ParametersOperationsParent, const std::string& file);
192
195
198
204 void myStartElement(int element, const SUMOSAXAttributes& attrs);
205
206 private:
209 };
210
213
215 FXButton* mySortButton;
216
218 FXButton* myClearButton;
219
221 FXButton* myLoadButton;
222
224 FXButton* mySaveButton;
225
227 FXButton* myHelpButton;
228 };
229
232
235
238
241
244
246 void runInternalTest(const InternalTestStep::DialogArgument* dialogArgument);
247
250
252 long onCmdAccept(FXObject*, FXSelector, void*);
253
255 long onCmdReset(FXObject*, FXSelector, void*);
256
258
259protected:
261 FOX_CONSTRUCTOR(GNESingleParametersDialog)
262
263
265
268
271
274
277
280
281private:
284
287};
The main window of Netedit.
void myStartElement(int element, const SUMOSAXAttributes &attrs)
Called on the opening of a tag;.
ParametersOperations * myParametersOperationsParent
pointer to ParametersOperations parent
long onCmdSaveParameters(FXObject *, FXSelector, void *)
event when user press save parameters button
long onCmdClearParameters(FXObject *, FXSelector, void *)
event when user press clear parameters button
GNESingleParametersDialog * myParameterDialogParent
pointer to Shape Frame Parent
long onCmdSortParameters(FXObject *, FXSelector, void *)
event when user press sort parameters button
long onCmdHelpParameter(FXObject *, FXSelector, void *)
event when user press help parameters button
bool isButtonInAddMode() const
check if remove button is in mode "add"
void copyValues(const ParameterRow &other)
copy values of other parameter Row
FXHorizontalFrame * horizontalFrame
frame in which elements of ParameterRow are placed
void enableRow(const std::string &parameter, const std::string &value) const
enable row
long onPaint(FXObject *o, FXSelector f, void *p)
std::vector< ParameterRow * > myParameterRows
vector with the ParameterRows
long onCmdSetAttribute(FXObject *, FXSelector, void *)
event when user change an attribute
const std::vector< ParameterRow * > getParameterRows() const
get vector with the ParameterRows
FXVerticalFrame * myVerticalFrameRow
vertical frame in which rows are placed
void setParameters(const std::vector< std::pair< std::string, std::string > > &newParameters)
set parameters
FXLabel * myKeyLabel
label for key (its neccesary because has to be resized in every onPaint() iteration)
bool keyExist(const std::string &key) const
check if given key exist already
long onCmdButtonPress(FXObject *, FXSelector, void *)
event when user press a remove (or add) button
void addParameter(std::pair< std::string, std::string > newParameter)
add a single parameter
void runInternalTest(const InternalTestStep::DialogArgument *dialogArgument)
run internal test
ParametersValues * myParametersValues
pointer to parameters values
long onCmdReset(FXObject *, FXSelector, void *)
event after press reset button
GNEVehicleTypeDialog::VTypeAttributes::VTypeAttributeRow * VTypeAttributeRow
pointer to VTypeAttributeRow
ParametersOperations * myParametersOperations
pointer to parameters operations
GNEAttributeCarrier * myAttributeCarrier
pointer to GNEAttributeCarrier
NBLoadedSUMOTLDef * myTLDef
pointer to TLDef
GNEAttributesEditorType * myAttributesEditor
FOX need this.
long onCmdAccept(FXObject *, FXSelector, void *)
event after press accept button
class used for represent rows with Vehicle Type parameters
dialog arguments, used for certain modal dialogs that can not be edited using tab
A loaded (complete) traffic light logic.
Encapsulated SAX-Attributes.
SAX-handler base for SUMO-files.