Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
GNEPythonToolDialogElements.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-2026 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// Elements used in GNEPythonToolDialog
19/****************************************************************************/
20#pragma once
21#include <config.h>
22
23#include <string>
24#include <vector>
26
27// ===========================================================================
28// class declaration
29// ===========================================================================
30
32class GNEPythonTool;
35class MFXLabelTooltip;
36class Option;
37
38// ===========================================================================
39// class definitions
40// ===========================================================================
41
44
45public:
47 class Category : public FXHorizontalFrame {
48
49 public:
51 Category(FXVerticalFrame* argumentFrame, const std::string& category);
52
54 ~Category();
55
56 private:
58 Category(const Category&) = delete;
59
61 Category& operator=(const Category&) = delete;
62 };
63
65 class Argument : public FXHorizontalFrame {
68
69 public:
71 Argument(GNEPythonToolDialog* toolDialogParent, const GNEPythonTool* pythonTool,
72 GNEApplicationWindow* applicationWindow, FXVerticalFrame* argumentFrame,
73 const std::string& parameter, Option* option);
74
76 ~Argument();
77
79 virtual void reset() = 0;
80
83
85 const std::string getArgument() const;
86
88 bool requiredAttributeSet() const;
89
92
94 virtual long onCmdSetValue(FXObject*, FXSelector, void*) = 0;
95
97 long onCmdResetValue(FXObject*, FXSelector, void*);
98
100 long onUpdResetValue(FXObject*, FXSelector, void*);
101
103
104 protected:
106 Argument();
107
109 virtual const std::string getValue() const = 0;
110
113
115 Option* myOption = nullptr;
116
118 const std::string myDefaultValue;
119
121 FXHorizontalFrame* myElementsFrame = nullptr;
122
123 private:
126
128 FXButton* myResetButton = nullptr;
129
131 Argument(const Argument&) = delete;
132
134 Argument& operator=(const Argument&) = delete;
135 };
136
137
142
143 public:
145 EdgeVectorArgument(GNEPythonToolDialog* toolDialogParent, const GNEPythonTool* pythonTool,
146 GNEApplicationWindow* applicationWindow, FXVerticalFrame* argumentFrame,
147 const std::string name, Option* option);
148
150 void reset();
151
153 long onCmdSetValue(FXObject*, FXSelector, void*);
154
156 long onCmdUseCurrent(FXObject*, FXSelector, void*);
157
159 long onUpdUseCurrent(FXObject* sender, FXSelector, void*);
160
161 protected:
164
166 const std::string getValue() const;
167
169 FXTextField* myEdgeVectorTextField = nullptr;
170
171 private:
174
177
180 };
181
182
184 class FileNameArgument : public Argument {
187
188 public:
190 FileNameArgument(GNEPythonToolDialog* toolDialogParent, const GNEPythonTool* pythonTool,
191 GNEApplicationWindow* applicationWindow, FXVerticalFrame* argumentFrame,
192 const std::string name, Option* option);
193
195 void reset();
196
198 long onCmdOpenFilename(FXObject*, FXSelector, void*);
199
201 long onCmdSetValue(FXObject*, FXSelector, void*);
202
203 protected:
206
208 FileNameArgument(GNEPythonToolDialog* toolDialogParent, const GNEPythonTool* pythonTool,
209 GNEApplicationWindow* applicationWindow, FXVerticalFrame* argumentFrame,
210 const std::string name, Option* option, const std::string& useCurrent);
211
213 const std::string getValue() const;
214
216 void updateFromDialog(const GNEFileDialog& fileDialog);
217
219 FXTextField* myFilenameTextField = nullptr;
220
221 private:
224
227
230
233 };
234
239
240 public:
242 NetworkArgument(GNEPythonToolDialog* toolDialogParent, const GNEPythonTool* pythonTool,
243 GNEApplicationWindow* applicationWindow, FXVerticalFrame* argumentFrame,
244 const std::string name, Option* option);
245
247 long onCmdOpenFilename(FXObject*, FXSelector, void*);
248
250 long onCmdUseCurrentNetworkFile(FXObject*, FXSelector, void*);
251
253 long onUpdUseCurrentNetworkFile(FXObject* sender, FXSelector, void*);
254
255 protected:
258
259 private:
262
265 };
266
271
272 public:
274 AdditionalArgument(GNEPythonToolDialog* toolDialogParent, const GNEPythonTool* pythonTool,
275 GNEApplicationWindow* applicationWindow, FXVerticalFrame* argumentFrame,
276 const std::string name, Option* option);
277
279 long onCmdOpenFilename(FXObject*, FXSelector, void*);
280
282 long onCmdUseCurrentAdditionalFile(FXObject*, FXSelector, void*);
283
285 long onUpdUseCurrentAdditionalFile(FXObject* sender, FXSelector, void*);
286
287 protected:
290
291 private:
294
297 };
298
303
304 public:
306 RouteArgument(GNEPythonToolDialog* toolDialogParent, const GNEPythonTool* pythonTool,
307 GNEApplicationWindow* applicationWindow, FXVerticalFrame* argumentFrame,
308 const std::string name, Option* option);
309
311 long onCmdOpenFilename(FXObject*, FXSelector, void*);
312
314 long onCmdUseCurrentRouteFile(FXObject*, FXSelector, void*);
315
317 long onUpdUseCurrentRouteFile(FXObject* sender, FXSelector, void*);
318
319 protected:
322
323 private:
325 RouteArgument(const RouteArgument&) = delete;
326
329 };
330
335
336 public:
338 DataArgument(GNEPythonToolDialog* toolDialogParent, const GNEPythonTool* pythonTool,
339 GNEApplicationWindow* applicationWindow, FXVerticalFrame* argumentFrame,
340 const std::string name, Option* option);
341
343 long onCmdOpenFilename(FXObject*, FXSelector, void*);
344
346 long onCmdUseCurrentDataFile(FXObject*, FXSelector, void*);
347
349 long onUpdUseCurrentDataFile(FXObject* sender, FXSelector, void*);
350
351 protected:
353 DataArgument();
354
355 private:
357 DataArgument(const DataArgument&) = delete;
358
361 };
362
367
368 public:
370 SumoConfigArgument(GNEPythonToolDialog* toolDialogParent, const GNEPythonTool* pythonTool,
371 GNEApplicationWindow* applicationWindow, FXVerticalFrame* argumentFrame,
372 const std::string name, Option* option);
373
375 long onCmdOpenFilename(FXObject*, FXSelector, void*);
376
378 long onCmdUseCurrentSumoConfigFile(FXObject*, FXSelector, void*);
379
381 long onUpdUseCurrentSumoConfigFile(FXObject* sender, FXSelector, void*);
382
383 protected:
386
387 private:
390
393 };
394
396 class EdgeArgument : public Argument {
397
398 public:
400 EdgeArgument(GNEPythonToolDialog* toolDialogParent, const GNEPythonTool* pythonTool,
401 GNEApplicationWindow* applicationWindow, FXVerticalFrame* argumentFrame,
402 const std::string name, Option* option);
403
405 void reset();
406
408 long onCmdSetValue(FXObject*, FXSelector, void*);
409
410 protected:
412 const std::string getValue() const;
413
415 FXTextField* myEdgeTextField = nullptr;
416
417 private:
419 static const std::string INVALID_INT_STR;
420
422 EdgeArgument(const EdgeArgument&) = delete;
423
426 };
427
429 class StringArgument : public Argument {
430
431 public:
433 StringArgument(GNEPythonToolDialog* toolDialogParent, const GNEPythonTool* pythonTool,
434 GNEApplicationWindow* applicationWindow, FXVerticalFrame* argumentFrame,
435 const std::string name, Option* option);
436
438 void reset();
439
441 long onCmdSetValue(FXObject*, FXSelector, void*);
442
443 protected:
445 const std::string getValue() const;
446
448 FXTextField* myStringTextField = nullptr;
449
450 private:
453
456 };
457
459 class IntArgument : public Argument {
460
461 public:
463 IntArgument(GNEPythonToolDialog* toolDialogParent, const GNEPythonTool* pythonTool,
464 GNEApplicationWindow* applicationWindow, FXVerticalFrame* argumentFrame,
465 const std::string name, Option* option);
466
468 void reset();
469
471 long onCmdSetValue(FXObject*, FXSelector, void*);
472
473 protected:
475 const std::string getValue() const;
476
478 FXTextField* myIntTextField = nullptr;
479
480 private:
482 static const std::string INVALID_INT_STR;
483
485 IntArgument(const IntArgument&) = delete;
486
489 };
490
492 class FloatArgument : public Argument {
493
494 public:
496 FloatArgument(GNEPythonToolDialog* toolDialogParent, const GNEPythonTool* pythonTool,
497 GNEApplicationWindow* applicationWindow, FXVerticalFrame* argumentFrame,
498 const std::string name, Option* option);
499
501 void reset();
502
504 long onCmdSetValue(FXObject*, FXSelector, void*);
505
506 protected:
508 const std::string getValue() const;
509
511 FXTextField* myFloatTextField = nullptr;
512
513 private:
515 static const std::string INVALID_DOUBLE_STR;
516
518 FloatArgument(const IntArgument&) = delete;
519
522 };
523
524
526 class BoolArgument : public Argument {
527
528 public:
530 BoolArgument(GNEPythonToolDialog* toolDialogParent, const GNEPythonTool* pythonTool,
531 GNEApplicationWindow* applicationWindow, FXVerticalFrame* argumentFrame,
532 const std::string name, Option* option);
533
535 void reset();
536
538 long onCmdSetValue(FXObject*, FXSelector, void*);
539
540 protected:
542 const std::string getValue() const;
543
545 FXCheckButton* myCheckButton = nullptr;
546
547 private:
549 BoolArgument(const IntArgument&) = delete;
550
553 };
554
556};
OpenMode
file open mode
long onUpdUseCurrentAdditionalFile(FXObject *sender, FXSelector, void *)
enable or disable use current button
long onCmdOpenFilename(FXObject *, FXSelector, void *)
Called when user press open filename button.
long onCmdUseCurrentAdditionalFile(FXObject *, FXSelector, void *)
Called when user press use current button.
AdditionalArgument & operator=(const AdditionalArgument &)=delete
Invalidated assignment operator.
AdditionalArgument(const AdditionalArgument &)=delete
Invalidated copy constructor.
Argument & operator=(const Argument &)=delete
Invalidated assignment operator.
GNEPythonToolDialog * myToolDialogParent
tool dialog parent
virtual long onCmdSetValue(FXObject *, FXSelector, void *)=0
Called when user changes argument value.
MFXLabelTooltip * myParameterLabel
parameter label
Argument(const Argument &)=delete
Invalidated copy constructor.
virtual void reset()=0
reset to default value
bool requiredAttributeSet() const
check if required attribute is set
long onUpdResetValue(FXObject *, FXSelector, void *)
Called when user press reset button.
MFXLabelTooltip * getParameterLabel() const
get parameter label
long onCmdResetValue(FXObject *, FXSelector, void *)
Called when user press reset button.
FXHorizontalFrame * myElementsFrame
auxiliar elements frame
const std::string getArgument() const
get argument
virtual const std::string getValue() const =0
get value
BoolArgument & operator=(const IntArgument &)=delete
Invalidated assignment operator.
long onCmdSetValue(FXObject *, FXSelector, void *)
Called when user set bool value.
BoolArgument(const IntArgument &)=delete
Invalidated copy constructor.
Category(const Category &)=delete
Invalidated copy constructor.
Category & operator=(const Category &)=delete
Invalidated assignment operator.
long onUpdUseCurrentDataFile(FXObject *sender, FXSelector, void *)
enable or disable use current button
DataArgument & operator=(const DataArgument &)=delete
Invalidated assignment operator.
DataArgument(const DataArgument &)=delete
Invalidated copy constructor.
long onCmdUseCurrentDataFile(FXObject *, FXSelector, void *)
Called when user press use current button.
long onCmdOpenFilename(FXObject *, FXSelector, void *)
Called when user press open filename button.
static const std::string INVALID_INT_STR
invalid int in string format
EdgeArgument(const EdgeArgument &)=delete
Invalidated copy constructor.
EdgeArgument & operator=(const EdgeArgument &)=delete
Invalidated assignment operator.
long onCmdSetValue(FXObject *, FXSelector, void *)
Called when user set int value.
long onCmdUseCurrent(FXObject *, FXSelector, void *)
Called when user press use seleted edges button.
EdgeVectorArgument & operator=(const EdgeVectorArgument &)=delete
Invalidated assignment operator.
long onCmdSetValue(FXObject *, FXSelector, void *)
Called when user changes argument value.
MFXButtonTooltip * myCurrentEdgesButton
current edges button
EdgeVectorArgument(const EdgeVectorArgument &)=delete
Invalidated copy constructor.
long onUpdUseCurrent(FXObject *sender, FXSelector, void *)
enable or disable use selected edges button
long onCmdSetValue(FXObject *, FXSelector, void *)
Called when user set filename.
long onCmdOpenFilename(FXObject *, FXSelector, void *)
Called when user press open filename button.
FileNameArgument & operator=(const FileNameArgument &)=delete
Invalidated assignment operator.
FileNameArgument(const FileNameArgument &)=delete
Invalidated copy constructor.
void updateFromDialog(const GNEFileDialog &fileDialog)
update text field depending on openMode
FloatArgument(const IntArgument &)=delete
Invalidated copy constructor.
static const std::string INVALID_DOUBLE_STR
invalid float in string format
FloatArgument & operator=(const IntArgument &)=delete
Invalidated assignment operator.
long onCmdSetValue(FXObject *, FXSelector, void *)
Called when user set float value.
IntArgument(const IntArgument &)=delete
Invalidated copy constructor.
static const std::string INVALID_INT_STR
invalid int in string format
IntArgument & operator=(const IntArgument &)=delete
Invalidated assignment operator.
long onCmdSetValue(FXObject *, FXSelector, void *)
Called when user set int value.
NetworkArgument(const NetworkArgument &)=delete
Invalidated copy constructor.
long onCmdUseCurrentNetworkFile(FXObject *, FXSelector, void *)
Called when user press use current button.
long onUpdUseCurrentNetworkFile(FXObject *sender, FXSelector, void *)
enable or disable use current button
NetworkArgument & operator=(const NetworkArgument &)=delete
Invalidated assignment operator.
long onCmdOpenFilename(FXObject *, FXSelector, void *)
Called when user press open filename button.
long onCmdUseCurrentRouteFile(FXObject *, FXSelector, void *)
Called when user press use current button.
long onCmdOpenFilename(FXObject *, FXSelector, void *)
Called when user press open filename button.
RouteArgument(const RouteArgument &)=delete
Invalidated copy constructor.
RouteArgument & operator=(const RouteArgument &)=delete
Invalidated assignment operator.
long onUpdUseCurrentRouteFile(FXObject *sender, FXSelector, void *)
enable or disable use current button
StringArgument & operator=(const StringArgument &)=delete
Invalidated assignment operator.
long onCmdSetValue(FXObject *, FXSelector, void *)
Called when user set string value.
StringArgument(const StringArgument &)=delete
Invalidated copy constructor.
long onCmdOpenFilename(FXObject *, FXSelector, void *)
Called when user press open filename button.
SumoConfigArgument & operator=(const SumoConfigArgument &)=delete
Invalidated assignment operator.
long onCmdUseCurrentSumoConfigFile(FXObject *, FXSelector, void *)
Called when user press use current button.
SumoConfigArgument(const SumoConfigArgument &)=delete
Invalidated copy constructor.
long onUpdUseCurrentSumoConfigFile(FXObject *sender, FXSelector, void *)
enable or disable use current button
elements used in Tool Dialogs
static GNEFileDialog::OpenMode getOpenMode(const Option *o)
A class representing a single program option.
Definition Option.h:74