Eclipse SUMO - Simulation of Urban MObility
GNEPythonToolDialog.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 for tools
19 /****************************************************************************/
20 #pragma once
21 #include <config.h>
22 
24 
26 
27 // ===========================================================================
28 // class declarations
29 // ===========================================================================
30 
32 class GNEPythonTool;
33 class MFXCheckableButton;
34 
35 // ===========================================================================
36 // class definitions
37 // ===========================================================================
38 
43 class GNEPythonToolDialog : protected FXDialogBox {
45  FXDECLARE(GNEPythonToolDialog)
46 
47 
49 
50 public:
53 
56 
58  void openDialog(GNEPythonTool* tool);
59 
62 
64  const GNEPythonTool* getPythonTool() const;
65 
68 
70  long onCmdShowToolTipsMenu(FXObject*, FXSelector, void*);
71 
73  long onCmdSave(FXObject*, FXSelector, void*);
74 
76  long onCmdLoad(FXObject*, FXSelector, void*);
77 
79  long onCmdSetVisualization(FXObject*, FXSelector, void*);
80 
82  long onCmdRun(FXObject*, FXSelector, void*);
83 
85  long onCmdCancel(FXObject*, FXSelector, void*);
86 
88  long onCmdReset(FXObject*, FXSelector, void*);
89 
91  long onUpdRequiredAttributes(FXObject* sender, FXSelector, void*);
92 
94 
95 protected:
97  class CategoryOptions : public std::string {
98 
99  public:
101  CategoryOptions(const std::string& category);
102 
104  void addOption(const std::string& name, Option* option);
105 
107  const std::vector<std::pair<std::string, Option*> >& getOptions() const;
108 
110  void sortByName();
111 
112  private:
114  std::vector<std::pair<std::string, Option*> > myOptions;
115 
118  };
119 
122 
124  void buildArguments(bool sortByName, bool groupedByCategories);
125 
127  void adjustParameterColumn();
128 
131 
133  std::vector<GNEPythonToolDialog::CategoryOptions> getOptions(OptionsCont& optionsCont) const;
134 
136  std::vector<CategoryOptions> getOptionsByCategories(OptionsCont& optionsCont) const;
137 
139  int getNumRowColums() const;
140 
142  FXVerticalFrame* getArgumentFrameLeft() const;
143 
145  FXVerticalFrame* getArgumentFrameRight() const;
146 
148  std::vector<GNEPythonToolDialogElements::Argument*> myArguments;
149 
151  std::vector<GNEPythonToolDialogElements::Category*> myCategories;
152 
153 private:
156 
159 
161  FXCheckButton* mySortedCheckButton = nullptr;
162 
164  FXCheckButton* myGroupedCheckButton = nullptr;
165 
167  FXVerticalFrame* myArgumentFrameLeft = nullptr;
168 
170  FXVerticalFrame* myArgumentFrameRight = nullptr;
171 
174 
177 
180 };
The main window of Netedit.
internal class used for sorting options by categories
std::vector< std::pair< std::string, Option * > > myOptions
options for this category
elements used in Tool Dialogs
Dialog for python tool dialog.
std::vector< CategoryOptions > getOptionsByCategories(OptionsCont &optionsCont) const
get options sorted by category
FXVerticalFrame * myArgumentFrameRight
argument frame right
long onCmdCancel(FXObject *, FXSelector, void *)
event after press cancel button
GNEPythonTool * myPythonTool
python tool
void adjustParameterColumn()
adjust parameter column
int getNumRowColums() const
get number of row colums
GNEPythonToolDialog()
FOX needs this.
long onCmdLoad(FXObject *, FXSelector, void *)
load options
std::vector< GNEPythonToolDialogElements::Argument * > myArguments
list of arguments sorted by categories
GNEApplicationWindow * myGNEApp
pointer to GNEApplicationWindow
std::vector< GNEPythonToolDialogElements::Category * > myCategories
list of categories
OptionsCont myCustomToolsOptions
custom tools options
long onCmdShowToolTipsMenu(FXObject *, FXSelector, void *)
enable/disable show toolTip
GNEApplicationWindow * getGNEApplicationWindow() const
get pointer to GNEApplicationWindow
long onCmdRun(FXObject *, FXSelector, void *)
event after press run button
MFXCheckableButton * myShowToolTipsMenu
menu for tooltips menu
std::vector< GNEPythonToolDialog::CategoryOptions > getOptions(OptionsCont &optionsCont) const
get options
FXVerticalFrame * getArgumentFrameLeft() const
get argument frame left
long onUpdRequiredAttributes(FXObject *sender, FXSelector, void *)
event for check if required attributes was set
FXCheckButton * mySortedCheckButton
check button to enable/diasble sorting
long onCmdSetVisualization(FXObject *, FXSelector, void *)
set visualization (sorting and grouping)
FXVerticalFrame * getArgumentFrameRight() const
get argument frame right
long onCmdReset(FXObject *, FXSelector, void *)
event after press reset button
FXVerticalFrame * myArgumentFrameLeft
argument frame left
const GNEPythonTool * getPythonTool() const
get python tool
long onCmdSave(FXObject *, FXSelector, void *)
save options
GNEPythonToolDialog(const GNEPythonToolDialog &)=delete
Invalidated copy constructor.
void buildArguments(bool sortByName, bool groupedByCategories)
build arguments
FXCheckButton * myGroupedCheckButton
check button to enable/diasble grouping
GNEPythonToolDialog & operator=(const GNEPythonToolDialog &)=delete
Invalidated assignment operator.
void openDialog(GNEPythonTool *tool)
open dialog
A class representing a single program option.
Definition: Option.h:72
A storage for options typed value containers)
Definition: OptionsCont.h:89
Definition: json.hpp:4471
every row value