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-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// 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
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 FXTextField* myFilenameTextField = nullptr;
217
218 private:
221
224
227
230 };
231
236
237 public:
239 NetworkArgument(GNEPythonToolDialog* toolDialogParent, const GNEPythonTool* pythonTool,
240 GNEApplicationWindow* applicationWindow, FXVerticalFrame* argumentFrame,
241 const std::string name, Option* option);
242
244 long onCmdOpenFilename(FXObject*, FXSelector, void*);
245
247 long onCmdUseCurrentNetworkFile(FXObject*, FXSelector, void*);
248
250 long onUpdUseCurrentNetworkFile(FXObject* sender, FXSelector, void*);
251
252 protected:
255
256 private:
259
262 };
263
268
269 public:
271 AdditionalArgument(GNEPythonToolDialog* toolDialogParent, const GNEPythonTool* pythonTool,
272 GNEApplicationWindow* applicationWindow, FXVerticalFrame* argumentFrame,
273 const std::string name, Option* option);
274
276 long onCmdOpenFilename(FXObject*, FXSelector, void*);
277
279 long onCmdUseCurrentAdditionalFile(FXObject*, FXSelector, void*);
280
282 long onUpdUseCurrentAdditionalFile(FXObject* sender, FXSelector, void*);
283
284 protected:
287
288 private:
291
294 };
295
300
301 public:
303 RouteArgument(GNEPythonToolDialog* toolDialogParent, const GNEPythonTool* pythonTool,
304 GNEApplicationWindow* applicationWindow, FXVerticalFrame* argumentFrame,
305 const std::string name, Option* option);
306
308 long onCmdOpenFilename(FXObject*, FXSelector, void*);
309
311 long onCmdUseCurrentRouteFile(FXObject*, FXSelector, void*);
312
314 long onUpdUseCurrentRouteFile(FXObject* sender, FXSelector, void*);
315
316 protected:
319
320 private:
322 RouteArgument(const RouteArgument&) = delete;
323
326 };
327
332
333 public:
335 DataArgument(GNEPythonToolDialog* toolDialogParent, const GNEPythonTool* pythonTool,
336 GNEApplicationWindow* applicationWindow, FXVerticalFrame* argumentFrame,
337 const std::string name, Option* option);
338
340 long onCmdOpenFilename(FXObject*, FXSelector, void*);
341
343 long onCmdUseCurrentDataFile(FXObject*, FXSelector, void*);
344
346 long onUpdUseCurrentDataFile(FXObject* sender, FXSelector, void*);
347
348 protected:
350 DataArgument();
351
352 private:
354 DataArgument(const DataArgument&) = delete;
355
358 };
359
364
365 public:
367 SumoConfigArgument(GNEPythonToolDialog* toolDialogParent, const GNEPythonTool* pythonTool,
368 GNEApplicationWindow* applicationWindow, FXVerticalFrame* argumentFrame,
369 const std::string name, Option* option);
370
372 long onCmdOpenFilename(FXObject*, FXSelector, void*);
373
375 long onCmdUseCurrentSumoConfigFile(FXObject*, FXSelector, void*);
376
378 long onUpdUseCurrentSumoConfigFile(FXObject* sender, FXSelector, void*);
379
380 protected:
383
384 private:
387
390 };
391
393 class EdgeArgument : public Argument {
394
395 public:
397 EdgeArgument(GNEPythonToolDialog* toolDialogParent, const GNEPythonTool* pythonTool,
398 GNEApplicationWindow* applicationWindow, FXVerticalFrame* argumentFrame,
399 const std::string name, Option* option);
400
402 void reset();
403
405 long onCmdSetValue(FXObject*, FXSelector, void*);
406
407 protected:
409 const std::string getValue() const;
410
412 FXTextField* myEdgeTextField = nullptr;
413
414 private:
416 static const std::string INVALID_INT_STR;
417
419 EdgeArgument(const EdgeArgument&) = delete;
420
423 };
424
426 class StringArgument : public Argument {
427
428 public:
430 StringArgument(GNEPythonToolDialog* toolDialogParent, const GNEPythonTool* pythonTool,
431 GNEApplicationWindow* applicationWindow, FXVerticalFrame* argumentFrame,
432 const std::string name, Option* option);
433
435 void reset();
436
438 long onCmdSetValue(FXObject*, FXSelector, void*);
439
440 protected:
442 const std::string getValue() const;
443
445 FXTextField* myStringTextField = nullptr;
446
447 private:
450
453 };
454
456 class IntArgument : public Argument {
457
458 public:
460 IntArgument(GNEPythonToolDialog* toolDialogParent, const GNEPythonTool* pythonTool,
461 GNEApplicationWindow* applicationWindow, FXVerticalFrame* argumentFrame,
462 const std::string name, Option* option);
463
465 void reset();
466
468 long onCmdSetValue(FXObject*, FXSelector, void*);
469
470 protected:
472 const std::string getValue() const;
473
475 FXTextField* myIntTextField = nullptr;
476
477 private:
479 static const std::string INVALID_INT_STR;
480
482 IntArgument(const IntArgument&) = delete;
483
486 };
487
489 class FloatArgument : public Argument {
490
491 public:
493 FloatArgument(GNEPythonToolDialog* toolDialogParent, const GNEPythonTool* pythonTool,
494 GNEApplicationWindow* applicationWindow, FXVerticalFrame* argumentFrame,
495 const std::string name, Option* option);
496
498 void reset();
499
501 long onCmdSetValue(FXObject*, FXSelector, void*);
502
503 protected:
505 const std::string getValue() const;
506
508 FXTextField* myFloatTextField = nullptr;
509
510 private:
512 static const std::string INVALID_DOUBLE_STR;
513
515 FloatArgument(const IntArgument&) = delete;
516
519 };
520
521
523 class BoolArgument : public Argument {
524
525 public:
527 BoolArgument(GNEPythonToolDialog* toolDialogParent, const GNEPythonTool* pythonTool,
528 GNEApplicationWindow* applicationWindow, FXVerticalFrame* argumentFrame,
529 const std::string name, Option* option);
530
532 void reset();
533
535 long onCmdSetValue(FXObject*, FXSelector, void*);
536
537 protected:
539 const std::string getValue() const;
540
542 FXCheckButton* myCheckButton = nullptr;
543
544 private:
546 BoolArgument(const IntArgument&) = delete;
547
550 };
551};
The main window of Netedit.
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.
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
A class representing a single program option.
Definition Option.h:74