Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
GNEDistributionFrame.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// The Widget for edit distribution elements
19/****************************************************************************/
20#pragma once
21#include <config.h>
22
27
28// ===========================================================================
29// class definitions
30// ===========================================================================
31
34class MFXComboBoxIcon;
36
37// ===========================================================================
38// class definitions
39// ===========================================================================
40
42
43public:
44 // ===========================================================================
45 // class declaration
46 // ===========================================================================
47
50
51 // ===========================================================================
52 // class DistributionEditor
53 // ===========================================================================
54
58
59
61
62 public:
64 DistributionEditor(GNEFrame* frameParent, SumoXMLTag distributionTag, GUIIcon icon);
65
68
71
74
76 long onCmdCreateDistribution(FXObject*, FXSelector, void*);
77
79 long onCmdDeleteDistribution(FXObject*, FXSelector, void*);
80
82 long onUpdDeleteDistribution(FXObject* sender, FXSelector, void*);
83
85
86 protected:
88 FOX_CONSTRUCTOR(DistributionEditor)
89
90 private:
93
96
99
102
105
108
110 DistributionEditor& operator=(const DistributionEditor& src) = delete;
111 };
112
113 // ===========================================================================
114 // class DistributionSelector
115 // ===========================================================================
116
120
121
123
124 public:
126 DistributionSelector(GNEFrame* frameParent);
127
130
132 void setDistribution(GNEDemandElement* distribution);
133
136
139
142
145
147 long onCmdSelectDistribution(FXObject*, FXSelector, void*);
148
150 long onCmdUpdateDistribution(FXObject* sender, FXSelector, void*);
151
153
154 protected:
156 FOX_CONSTRUCTOR(DistributionSelector)
157
160
161 private:
164
167
170
173
176
179
182
184 DistributionSelector& operator=(const DistributionSelector& src) = delete;
185 };
186
187 // ===========================================================================
188 // class DistributionRow
189 // ===========================================================================
190
191 class DistributionRow : protected FXHorizontalFrame {
194
195 public:
197 DistributionRow(DistributionValuesEditor* attributeEditorParent, GNEDemandElement* distributionReference);
198
200 void destroy();
201
204
207
210
212 long onCmdSetProbability(FXObject*, FXSelector, void*);
213
215
216 protected:
218 FOX_CONSTRUCTOR(DistributionRow)
219
220 private:
223
226
229
231 FXLabel* myIconLabel = nullptr;
232
235
238
241
244 };
245
246 // ===========================================================================
247 // class DistributionValuesEditor
248 // ===========================================================================
249
253
254
256
257 public:
259 DistributionValuesEditor(GNEFrame* frameParent, DistributionEditor* distributionEditor,
260 DistributionSelector* distributionSelector,
261 GNEAttributesEditor* attributesEditor);
262
265
268
270 void refreshRows();
271
273 GNEFrame* getFrameParent() const;
274
277
279 long onCmdAddRow(FXObject*, FXSelector, void*);
280
282 long onCmdRemoveRow(FXObject* obj, FXSelector, void*);
283
285
286 protected:
288 FOX_CONSTRUCTOR(DistributionValuesEditor)
289
291 void updateSumLabel();
292
293 private:
296
299
302
305
308
310 FXHorizontalFrame* myBotFrame = nullptr;
311
314
316 FXLabel* mySumLabel = nullptr;
317
320
322 DistributionValuesEditor& operator=(const DistributionValuesEditor& src) = delete;
323 };
324};
GUIIcon
An enumeration of icons used by the gui applications.
Definition GUIIcons.h:33
SumoXMLTag
Numbers representing SUMO-XML - element names.
long onCmdDeleteDistribution(FXObject *, FXSelector, void *)
Called when "Delete distribution" button is clicked.
friend class DistributionValuesEditor
FOX-declaration.
SumoXMLTag getDistributionTag() const
get distribution tag
MFXButtonTooltip * myCreateDistributionButton
"create Distribution" button
MFXButtonTooltip * myDeleteDistributionButton
"delete Distribution" button
SumoXMLTag myDistributionTag
@briuef distribution tag
long onUpdDeleteDistribution(FXObject *sender, FXSelector, void *)
Called when "Delete distribution" button is updated.
long onCmdCreateDistribution(FXObject *, FXSelector, void *)
Called when "create distribution" button is clicked.
DistributionEditor(GNEFrame *frameParent, SumoXMLTag distributionTag, GUIIcon icon)
constructor
DistributionSelector * myDistributionSelector
distribution selector
void destroy()
destroy DistributionRow (but don't delete)
GNEDemandElement * getDistributionReference() const
get pointer to distributionReference
MFXTextFieldIcon * myProbabilityTextField
textField to modify the probability attribute
DistributionRow & operator=(const DistributionRow &src)=delete
Invalidated assignment operator.
DistributionRow(const DistributionRow &)=delete
Invalidated copy constructor.
GNEDemandElement * myDistributionReference
pointer to distributionReference
long onCmdSetProbability(FXObject *, FXSelector, void *)
try to set new probability
DistributionRow(DistributionValuesEditor *attributeEditorParent, GNEDemandElement *distributionReference)
FOX-declaration.
MFXButtonTooltip * getDeleteRowButton() const
get delete row button
MFXTextFieldIcon * myIDTextField
comboBox with ID
DistributionValuesEditor * myDistributionValuesEditorParent
FOX need this.
MFXButtonTooltip * myDeleteRowButton
delete row button
GNEDemandElement * getCurrentDistribution() const
current distribution
friend class DistributionValuesEditor
FOX-declaration.
DistributionValuesEditor * myDistributionValuesEditor
distribution values editor
std::map< std::string, GNEDemandElement * > fillDistributionComboBox()
FOX need this.
long onCmdSelectDistribution(FXObject *, FXSelector, void *)
Called when the user select distribution in ComboBox.
void refreshDistributionIDs()
refresh distribution IDs (only call when user change ID in internal attributes)
MFXComboBoxIcon * myDistributionsComboBox
comboBox with the list of distributions
DistributionEditor * myDistributionEditor
pointer to distribution editor
GNEAttributesEditor * myAttributesEditor
attributes editor
long onCmdUpdateDistribution(FXObject *sender, FXSelector, void *)
update distribution comboBox
GNEDemandElement * myCurrentDistribution
current distribution element
void setDistribution(GNEDemandElement *distribution)
refresh modul
DistributionSelector(GNEFrame *frameParent)
constructor
GNEFrame * myFrameParent
pointer to Frame Parent
GNEFrame * myFrameParent
pointer to frame parent
GNEAttributesEditor * myAttributesEditor
attributes editor
DistributionValuesEditor(GNEFrame *frameParent, DistributionEditor *distributionEditor, DistributionSelector *distributionSelector, GNEAttributesEditor *attributesEditor)
constructor
std::vector< DistributionRow * > myDistributionRows
list of Attribute editor rows
GNEFrame * getFrameParent() const
pointer to GNEFrame parent
DistributionEditor * myDistributionEditor
distribution editor
long onCmdRemoveRow(FXObject *obj, FXSelector, void *)
Called when user press the add button.
long onCmdAddRow(FXObject *, FXSelector, void *)
Called when user press the add button.
DistributionSelector * myDistributionSelector
distribution selector
void showDistributionValuesEditor()
show attributes of multiple ACs
MFXGroupBoxModule(GNEFrame *frame, const std::string &text, const int options=Options::COLLAPSIBLE)
constructor for frames
Definition json.hpp:4471
every row value