Eclipse SUMO - Simulation of Urban MObility
GNEApplicationWindowHelper.cpp
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 // The main window of Netedit (adapted from GUIApplicationWindow)
19 /****************************************************************************/
20 
27 #include <netedit/templates.h>
33 #include <xercesc/parsers/SAXParser.hpp>
34 #include <xercesc/sax/AttributeList.hpp>
35 #include <xercesc/sax/HandlerBase.hpp>
36 #include <xercesc/sax/SAXException.hpp>
37 #include <xercesc/sax/SAXParseException.hpp>
38 
39 #include <regex>
40 
41 #include "GNEApplicationWindow.h"
42 #include "GNEViewNet.h"
43 #include "GNENet.h"
44 
45 // ===========================================================================
46 // GNEApplicationWindowHelper::ToolbarsGrip method definitions
47 // ===========================================================================
48 
50  myGNEApp(GNEApp) {
51 }
52 
53 
54 void
56  // build menu bar (for File, edit, processing...) using specify design
57  myPythonToolBarShellMenu = new FXToolBarShell(myGNEApp, GUIDesignToolBar);
58  menu = new FXMenuBar(myGNEApp->getTopDock(), myPythonToolBarShellMenu, GUIDesignToolbarMenuBarNetedit);
59  // declare toolbar grip for menu bar
60  new FXToolBarGrip(menu, menu, FXMenuBar::ID_TOOLBARGRIP, GUIDesignToolBarGrip);
61 }
62 
63 
64 void
66  // build toolbar shells
67  myPythonToolBarShellSuperModes = new FXToolBarShell(myGNEApp, GUIDesignToolBar);
68  myPythonToolBarShellSaveElements = new FXToolBarShell(myGNEApp, GUIDesignToolBar);
69  myPythonToolBarShellTimeFormat = new FXToolBarShell(myGNEApp, GUIDesignToolBar);
70  myPythonToolBarShellNavigation = new FXToolBarShell(myGNEApp, GUIDesignToolBar);
71  myPythonToolBarShellModes = new FXToolBarShell(myGNEApp, GUIDesignToolBar);
72  myPythonToolBarShellIntervalBar = new FXToolBarShell(myGNEApp, GUIDesignToolBar);
73  // build menu bars
74  superModes = new FXMenuBar(myGNEApp->getTopDock(), myPythonToolBarShellSuperModes, GUIDesignToolBarRaisedSupermodes);
75  saveElements = new FXMenuBar(myGNEApp->getTopDock(), myPythonToolBarShellSaveElements, GUIDesignToolBarRaisedNext);
76  timeSwitch = new FXMenuBar(myGNEApp->getTopDock(), myPythonToolBarShellTimeFormat, GUIDesignToolBarRaisedSame);
77  navigation = new FXMenuBar(myGNEApp->getTopDock(), myPythonToolBarShellNavigation, GUIDesignToolBarRaisedSame);
78  if (OptionsCont::getOptions().getBool("gui-testing")) {
79  modes = new FXMenuBar(myGNEApp->getTopDock(), myPythonToolBarShellModes, GUIDesignToolBarRaisedNext);
80  } else {
81  modes = new FXMenuBar(myGNEApp->getTopDock(), myPythonToolBarShellModes, GUIDesignToolBarRaisedSame);
82  }
83  intervalBar = new FXMenuBar(myGNEApp->getTopDock(), myPythonToolBarShellIntervalBar, GUIDesignToolBarRaisedNext);
84  // build FXToolBarGrip
85  new FXToolBarGrip(superModes, superModes, FXMenuBar::ID_TOOLBARGRIP, GUIDesignToolBarGrip);
86  new FXToolBarGrip(saveElements, saveElements, FXMenuBar::ID_TOOLBARGRIP, GUIDesignToolBarGrip);
87  new FXToolBarGrip(timeSwitch, timeSwitch, FXMenuBar::ID_TOOLBARGRIP, GUIDesignToolBarGrip);
88  new FXToolBarGrip(navigation, navigation, FXMenuBar::ID_TOOLBARGRIP, GUIDesignToolBarGrip);
89  new FXToolBarGrip(modes, modes, FXMenuBar::ID_TOOLBARGRIP, GUIDesignToolBarGrip);
90  new FXToolBarGrip(intervalBar, intervalBar, FXMenuBar::ID_TOOLBARGRIP, GUIDesignToolBarGrip);
91  // create menu bars
92  superModes->create();
93  saveElements->create();
94  timeSwitch->create();
95  navigation->create();
96  modes->create();
97  intervalBar->create();
98  // create toolbar shells
99  myPythonToolBarShellSuperModes->create();
100  myPythonToolBarShellSaveElements->create();
101  myPythonToolBarShellTimeFormat->create();
102  myPythonToolBarShellNavigation->create();
103  myPythonToolBarShellModes->create();
104  myPythonToolBarShellIntervalBar->create();
105  // recalc top dop after creating elements
106  myGNEApp->getTopDock()->recalc();
107 }
108 
109 
110 void
112  // delete Menu bars
113  delete superModes;
114  delete saveElements;
115  delete timeSwitch;
116  delete navigation;
117  delete modes;
118  delete intervalBar;
119  // also delete toolbar shells to avoid floating windows
120  delete myPythonToolBarShellSuperModes;
121  delete myPythonToolBarShellSaveElements;
122  delete myPythonToolBarShellTimeFormat;
123  delete myPythonToolBarShellNavigation;
124  delete myPythonToolBarShellModes;
125  delete myPythonToolBarShellIntervalBar;
126  // recalc top dop after deleting elements
127  myGNEApp->getTopDock()->recalc();
128 }
129 
130 // ===========================================================================
131 // GNEApplicationWindowHelper::MenuBarFile method definitions
132 // ===========================================================================
133 
135  myRecentNetworks(GNEApp->getApp(), TL("nets")),
136  myRecentConfigs(GNEApp->getApp(), TL("configs")),
137  myGNEApp(GNEApp) {
138 }
139 
140 
141 void
142 GNEApplicationWindowHelper::MenuBarFile::buildRecentNetworkFiles(FXMenuPane* fileMenu, FXMenuPane* fileMenuRecentNetworkFiles) {
143  // for whatever reason, sonar complains in the next line that sep1 may leak, but fox does the cleanup
144  GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentNetworkFiles, "", &myRecentNetworks, FXRecentFiles::ID_FILE_1);
145  GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentNetworkFiles, "", &myRecentNetworks, FXRecentFiles::ID_FILE_2);
146  GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentNetworkFiles, "", &myRecentNetworks, FXRecentFiles::ID_FILE_3);
147  GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentNetworkFiles, "", &myRecentNetworks, FXRecentFiles::ID_FILE_4);
148  GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentNetworkFiles, "", &myRecentNetworks, FXRecentFiles::ID_FILE_5);
149  GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentNetworkFiles, "", &myRecentNetworks, FXRecentFiles::ID_FILE_6);
150  GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentNetworkFiles, "", &myRecentNetworks, FXRecentFiles::ID_FILE_7);
151  GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentNetworkFiles, "", &myRecentNetworks, FXRecentFiles::ID_FILE_8);
152  GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentNetworkFiles, "", &myRecentNetworks, FXRecentFiles::ID_FILE_9);
153  GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentNetworkFiles, "", &myRecentNetworks, FXRecentFiles::ID_FILE_10);
154  new FXMenuSeparator(fileMenuRecentNetworkFiles); // NOSONAR, Fox does the cleanup
155  GUIDesigns::buildFXMenuCommand(fileMenuRecentNetworkFiles, TL("Cl&ear Recent Networks"), nullptr, &myRecentNetworks, FXRecentFiles::ID_CLEAR);
156  GUIDesigns::buildFXMenuCommand(fileMenuRecentNetworkFiles, TL("No Recent Networks"), nullptr, &myRecentNetworks, MFXRecentNetworks::ID_NOFILES);
157  // set target
158  myRecentNetworks.setTarget(myGNEApp);
159  myRecentNetworks.setSelector(MID_RECENTFILE);
160  new FXMenuCascade(fileMenu, TL("Recent Networks"), nullptr, fileMenuRecentNetworkFiles);
161 }
162 
163 
164 void
165 GNEApplicationWindowHelper::MenuBarFile::buildRecentConfigFiles(FXMenuPane* fileMenu, FXMenuPane* fileMenuRecentConfigFiles) {
166  // for whatever reason, sonar complains in the next line that sep1 may leak, but fox does the cleanup
167  GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentConfigFiles, "", &myRecentConfigs, FXRecentFiles::ID_FILE_1);
168  GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentConfigFiles, "", &myRecentConfigs, FXRecentFiles::ID_FILE_2);
169  GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentConfigFiles, "", &myRecentConfigs, FXRecentFiles::ID_FILE_3);
170  GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentConfigFiles, "", &myRecentConfigs, FXRecentFiles::ID_FILE_4);
171  GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentConfigFiles, "", &myRecentConfigs, FXRecentFiles::ID_FILE_5);
172  GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentConfigFiles, "", &myRecentConfigs, FXRecentFiles::ID_FILE_6);
173  GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentConfigFiles, "", &myRecentConfigs, FXRecentFiles::ID_FILE_7);
174  GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentConfigFiles, "", &myRecentConfigs, FXRecentFiles::ID_FILE_8);
175  GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentConfigFiles, "", &myRecentConfigs, FXRecentFiles::ID_FILE_9);
176  GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentConfigFiles, "", &myRecentConfigs, FXRecentFiles::ID_FILE_10);
177  new FXMenuSeparator(fileMenuRecentConfigFiles); // NOSONAR, Fox does the cleanup
178  GUIDesigns::buildFXMenuCommand(fileMenuRecentConfigFiles, TL("Cl&ear Recent Configs"), nullptr, &myRecentConfigs, FXRecentFiles::ID_CLEAR);
179  GUIDesigns::buildFXMenuCommand(fileMenuRecentConfigFiles, TL("No Recent Configs"), nullptr, &myRecentConfigs, MFXRecentNetworks::ID_NOFILES);
180  // set target
181  myRecentConfigs.setTarget(myGNEApp);
182  myRecentConfigs.setSelector(MID_RECENTFILE);
183  new FXMenuCascade(fileMenu, TL("Recent Configs"), nullptr, fileMenuRecentConfigFiles);
184 }
185 
186 // ---------------------------------------------------------------------------
187 // GNEApplicationWindowHelper::FileMenuCommands - methods
188 // ---------------------------------------------------------------------------
189 
191  myGNEApp(GNEApp) {
192 }
193 
194 
195 void
196 GNEApplicationWindowHelper::FileMenuCommands::buildFileMenuCommands(FXMenuPane* fileMenu, FXMenuPane* fileMenuNeteditConfig,
197  FXMenuPane* fileMenuSumoConfig, FXMenuPane* fileMenuTLS, FXMenuPane* fileMenuEdgeTypes, FXMenuPane* fileMenuAdditionals,
198  FXMenuPane* fileMenuDemandElements, FXMenuPane* fileMenuDataElements, FXMenuPane* fileMenuMeanDataElements) {
199 
201  TL("New Network"), "Ctrl+N", TL("Create a new network."),
203 
205  TL("New Window"), "Ctrl+Shift+N", TL("Open a new netedit window."),
206  nullptr, myGNEApp, MID_HOTKEY_CTRL_SHIFT_N_NEWWINDOW);
207 
209  TL("Generate Network"), "", TL("Create network using netgenerate."),
211 
212  // load sumo/netedit configs
213  new FXMenuSeparator(fileMenu);
214 
216  TL("Load Netedit config..."), "Ctrl+E", TL("Load a netedit configuration file."),
218 
220  TL("Load Sumo config..."), "Ctrl+M", TL("Load a SUMO configuration file."),
222 
223  // load networks
224  new FXMenuSeparator(fileMenu);
225 
227  TL("Open Network..."), "Ctrl+O", TL("Open a SUMO network."),
229 
231  TL("Open Netconvert Configuration..."), "Ctrl+Shift+O", TL("Open a configuration file with NETCONVERT options."),
233 
235  TL("Import Foreign Network..."), "", TL("Import a foreign network such as OSM."),
237 
238  // save networks
239  new FXMenuSeparator(fileMenu);
240 
242  TL("Save Network"), "Ctrl+S", TL("Save the network."),
244 
246  TL("Save Network As..."), "", TL("Save the network to another file."),
248 
250  TL("Save Plain XML..."), "Ctrl+L", TL("Save a plain XML representation of the network."),
252 
254  TL("Save Joined Junctions..."), "", TL("Save log of joined junctions (allows reproduction of joins)."),
256 
257  // reload
258  new FXMenuSeparator(fileMenu);
259 
261  TL("Reload"), "Ctrl+R", TL("Reload the network."),
263 
265  TL("Reload Network"), "", TL("Reload the network."),
267 
268  new FXMenuSeparator(fileMenu);
269 
270  // create netedit config menu options
271  buildNeteditConfigSection(fileMenuNeteditConfig);
272  myNeteditConfigMenuCascade = new FXMenuCascade(fileMenu, TL("Netedit Config"), GUIIconSubSys::getIcon(GUIIcon::NETEDIT_MINI), fileMenuNeteditConfig);
273 
274  // create SumoConfig menu options
275  buildSumoConfigSection(fileMenuSumoConfig);
276  mySumoConfigMenuCascade = new FXMenuCascade(fileMenu, TL("Sumo Config"), GUIIconSubSys::getIcon(GUIIcon::SUMO_MINI), fileMenuSumoConfig);
277 
278  // create TLS menu options
279  buildTrafficLightSection(fileMenuTLS);
280  myTLSMenuCascade = new FXMenuCascade(fileMenu, TL("Traffic Lights"), GUIIconSubSys::getIcon(GUIIcon::MODETLS), fileMenuTLS);
281 
282  // create edgeTypes menu options
283  buildEdgeTypeSection(fileMenuEdgeTypes);
284  myEdgeTypesMenuCascade = new FXMenuCascade(fileMenu, TL("Edge Types"), GUIIconSubSys::getIcon(GUIIcon::MODECREATEEDGE), fileMenuEdgeTypes);
285 
286  // create Additionals menu options
287  buildAdditionalSection(fileMenuAdditionals);
288  myAdditionalMenuCascade = new FXMenuCascade(fileMenu, TL("Additionals and Shapes"), GUIIconSubSys::getIcon(GUIIcon::MODEADDITIONAL), fileMenuAdditionals);
289 
290  // create DemandElements menu options
291  buildDemandSection(fileMenuDemandElements);
292  myDemandMenuCascade = new FXMenuCascade(fileMenu, TL("Demand Elements"), GUIIconSubSys::getIcon(GUIIcon::SUPERMODEDEMAND), fileMenuDemandElements);
293 
294  // create DataElements menu options
295  buildDataSection(fileMenuDataElements);
296  myDataMenuCascade = new FXMenuCascade(fileMenu, TL("Data Elements"), GUIIconSubSys::getIcon(GUIIcon::SUPERMODEDATA), fileMenuDataElements);
297 
298  // create MeanDatas menu options
299  buildMeanDataSection(fileMenuMeanDataElements);
300  myMeanDataMenuCascade = new FXMenuCascade(fileMenu, TL("MeanData Elements"), GUIIconSubSys::getIcon(GUIIcon::MODEMEANDATA), fileMenuMeanDataElements);
301 
302  // close network
303  new FXMenuSeparator(fileMenu);
305  TL("Close"), "Ctrl+W", TL("Close the network."),
307 }
308 
309 
310 void
312  mySumoConfigMenuCascade->enable();
313  myNeteditConfigMenuCascade->enable();
314  myTLSMenuCascade->enable();
315  myEdgeTypesMenuCascade->enable();
316  myAdditionalMenuCascade->enable();
317  myDemandMenuCascade->enable();
318  myDataMenuCascade->enable();
319  myMeanDataMenuCascade->enable();
320 }
321 
322 
323 void
325  mySumoConfigMenuCascade->disable();
326  myNeteditConfigMenuCascade->disable();
327  myTLSMenuCascade->disable();
328  myEdgeTypesMenuCascade->disable();
329  myAdditionalMenuCascade->disable();
330  myDemandMenuCascade->disable();
331  myDataMenuCascade->disable();
332  myMeanDataMenuCascade->disable();
333 }
334 
335 
336 void
338  myTLSMenuCascade->show();
339  myDataMenuCascade->show();
340  myMeanDataMenuCascade->show();
341 }
342 
343 
344 void
346  myTLSMenuCascade->hide();
347  myDataMenuCascade->hide();
348  myMeanDataMenuCascade->hide();
349 }
350 
351 
352 void
355  TL("Save Netedit Config"), "Ctrl+Shift+E", TL("Save netedit configuration file."),
357 
359  TL("Save Netedit Config As..."), "", TL("Save netedit configuration in a new file."),
361 
362  new FXMenuSeparator(menuPane);
363 
365  TL("Reload Netedit Config"), "", TL("Reload netedit configuration."),
367 }
368 
369 
370 void
373  TL("Save Sumo Config"), "Ctrl+Shift+S", TL("Save sumo configuration file."),
375 
377  TL("Save Sumo Config As..."), "", TL("Save sumo configuration in a new file."),
379 
380  new FXMenuSeparator(menuPane);
381 
383  TL("Reload Sumo Config"), "", TL("Reload sumo configuration."),
385 }
386 
387 
388 void
391  TL("Load TLS Programs..."), "Ctrl+K", TL("Load programs for traffic lights in the current net."),
393 
394  new FXMenuSeparator(menuPane);
395 
397  TL("Save TLS Programs"), "Ctrl+Shift+K", TL("Save all traffic light programs of the current network."),
399 
401  TL("Save TLS Programs As..."), "", TL("Save all traffic light programs of the current network to another file."),
403 
404  new FXMenuSeparator(menuPane);
405 
407  TL("Reload TLS Programs"), "", TL("Reload TLS Programs."),
409 }
410 
411 
412 void
415  TL("Load Edge Types..."), "Ctrl+H", TL("Load edge types in the current net."),
417 
418  new FXMenuSeparator(menuPane);
419 
421  TL("Save Edge Types"), "Ctrl+Shift+H", TL("Save edge types of the current net."),
423 
425  TL("Save Edge Types As..."), "", TL("Save edge types of the current net to another file."),
427 
428  new FXMenuSeparator(menuPane);
429 
431  TL("Reload edge types"), "", TL("Reload edge types."),
433 }
434 
435 
436 void
439  TL("Load Additionals..."), "Ctrl+A", TL("Load additionals and shapes."),
441 
442  new FXMenuSeparator(menuPane);
443 
445  TL("Save Additionals"), "Ctrl+Shift+A", TL("Save additionals and shapes."),
447 
449  TL("Save Additionals As..."), "", TL("Save additional elements to another file."),
451 
453  TL("Save JuPedSim Elements As..."), "", TL("Save JuPedSim elements in a separated file."),
455 
456  new FXMenuSeparator(menuPane);
457 
459  TL("Reload Additionals"), "", TL("Reload additionals."),
461 }
462 
463 
464 void
467  TL("Load Demand Elements..."), "Ctrl+D", TL("Load demand elements."),
469 
470  new FXMenuSeparator(menuPane);
471 
473  TL("Save Demand Elements"), "Ctrl+Shift+D", TL("Save demand elements."),
475 
477  TL("Save Demand Elements As..."), "", TL("Save demand elements to another file."),
479 
480  new FXMenuSeparator(menuPane);
481 
483  TL("Reload Demand Elements"), "", TL("Reload demand elements."),
485 }
486 
487 
488 void
491  TL("Load Data Elements..."), "Ctrl+B", TL("Load data elements."),
493 
494  new FXMenuSeparator(menuPane);
495 
497  TL("Save Data Elements"), "Ctrl+Shift+B", TL("Save data elements."),
499 
501  TL("Save Data Elements As..."), "", TL("Save data elements to another file."),
503 
504  new FXMenuSeparator(menuPane);
505 
507  TL("Reload Data Elements"), "", TL("Reload data elements."),
509 }
510 
511 
512 void
515  TL("Load MeanDatas..."), "", TL("Load meanDatas and shapes."),
517 
518  new FXMenuSeparator(menuPane);
519 
521  TL("Save MeanDatas"), "", TL("Save meanDatas and shapes."),
523 
525  TL("Save MeanDatas As..."), "Ctrl+Shift+M", TL("Save meanData elements to another file."),
527 
528  new FXMenuSeparator(menuPane);
529 
531  TL("Reload MeanDatas"), "", TL("Reload meanDatas."),
533 }
534 
535 // ---------------------------------------------------------------------------
536 // GNEApplicationWindowHelper::ModesMenuCommands::CommonMenuCommands - methods
537 // ---------------------------------------------------------------------------
538 
540  myModesMenuCommandsParent(modesMenuCommandsParent) {
541 }
542 
543 
544 void
546  // build every FXMenuCommand giving it a shortcut
547  inspectMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
548  TL("&Inspect"), "I", TL("Inspect elements and change their attributes."),
549  GUIIconSubSys::getIcon(GUIIcon::MODEINSPECT), myModesMenuCommandsParent->myGNEApp, MID_HOTKEY_I_MODE_INSPECT);
550  deleteMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
551  TL("&Delete"), "D", TL("Delete elements."),
553  selectMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
554  TL("&Select"), "S", TL("Select elements."),
556 }
557 
558 // ---------------------------------------------------------------------------
559 // GNEApplicationWindowHelper::ModesMenuCommands::NetworkMenuCommands - methods
560 // ---------------------------------------------------------------------------
561 
563  myModesMenuCommandsParent(modesMenuCommandsParent) {
564 }
565 
566 
567 void
569  createEdgeMode->show();
570  moveMode->show();
571  connectMode->show();
572  prohibitionMode->show();
573  TLSMode->show();
574  additionalMode->show();
575  crossingMode->show();
576  TAZMode->show();
577  shapeMode->show();
578  wireMode->show();
579  decalMode->show();
580 }
581 
582 
583 void
585  createEdgeMode->hide();
586  moveMode->hide();
587  connectMode->hide();
588  prohibitionMode->hide();
589  TLSMode->hide();
590  additionalMode->hide();
591  crossingMode->hide();
592  TAZMode->hide();
593  shapeMode->hide();
594  wireMode->hide();
595  decalMode->hide();
596 }
597 
598 
599 void
601  // build every FXMenuCommand giving it a shortcut
602  moveMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
603  TL("&Move"), "M", TL("Move elements."),
604  GUIIconSubSys::getIcon(GUIIcon::MODEMOVE), myModesMenuCommandsParent->myGNEApp,
606  createEdgeMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
607  TL("&Edge"), "E", TL("Create junction and edges."),
608  GUIIconSubSys::getIcon(GUIIcon::MODECREATEEDGE), myModesMenuCommandsParent->myGNEApp,
610  TLSMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
611  TL("&Traffic light"), "T", TL("Modes traffic lights over junctions."),
612  GUIIconSubSys::getIcon(GUIIcon::MODETLS), myModesMenuCommandsParent->myGNEApp,
614  connectMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
615  TL("&Connection"), "C", TL("Modes connections between lanes."),
616  GUIIconSubSys::getIcon(GUIIcon::MODECONNECTION), myModesMenuCommandsParent->myGNEApp,
618  prohibitionMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
619  TL("Pro&hibition"), "H", TL("Modes connection prohibitions."),
620  GUIIconSubSys::getIcon(GUIIcon::MODEPROHIBITION), myModesMenuCommandsParent->myGNEApp,
622  crossingMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
623  TL("C&rossing"), "R", TL("Create crossings between edges."),
624  GUIIconSubSys::getIcon(GUIIcon::MODECROSSING), myModesMenuCommandsParent->myGNEApp,
626  additionalMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
627  TL("&Additional"), "A", TL("Create additional elements."),
628  GUIIconSubSys::getIcon(GUIIcon::MODEADDITIONAL), myModesMenuCommandsParent->myGNEApp,
630  wireMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
631  TL("&Wire"), "W", TL("Create wires."),
632  GUIIconSubSys::getIcon(GUIIcon::MODEWIRE), myModesMenuCommandsParent->myGNEApp,
634  TAZMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
635  TL("TA&Z"), "Z", TL("Create Traffic Assignment Zones."),
636  GUIIconSubSys::getIcon(GUIIcon::MODETAZ), myModesMenuCommandsParent->myGNEApp,
638  shapeMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
639  TL("&POI-Poly"), "P", TL("Create Points-Of-Interest and polygons."),
640  GUIIconSubSys::getIcon(GUIIcon::MODESHAPE), myModesMenuCommandsParent->myGNEApp,
642  decalMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
643  TL("Deca&ls"), "U", TL("Create decals."),
644  GUIIconSubSys::getIcon(GUIIcon::MODEDECAL), myModesMenuCommandsParent->myGNEApp,
646 }
647 
648 // ---------------------------------------------------------------------------
649 // GNEApplicationWindowHelper::ModesMenuCommands::DemandMenuCommands - methods
650 // ---------------------------------------------------------------------------
651 
653  myModesMenuCommandsParent(modesMenuCommandsParent) {
654 }
655 
656 
657 void
659  moveMode->show();
660  routeMode->show();
661  routeDistributionMode->show();
662  vehicleMode->show();
663  typeMode->show();
664  typeDistributionMode->show();
665  stopMode->show();
666  personMode->show();
667  personPlanMode->show();
668  containerMode->show();
669  containerPlanMode->show();
670 }
671 
672 
673 void
675  moveMode->hide();
676  routeMode->hide();
677  routeDistributionMode->hide();
678  vehicleMode->hide();
679  typeMode->hide();
680  typeDistributionMode->hide();
681  stopMode->hide();
682  personMode->hide();
683  personPlanMode->hide();
684  containerMode->hide();
685  containerPlanMode->hide();
686 }
687 
688 
689 void
691  // build every FXMenuCommand giving it a shortcut
692  moveMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
693  TL("&Move"), "M", TL("Move elements."),
694  GUIIconSubSys::getIcon(GUIIcon::MODEMOVE), myModesMenuCommandsParent->myGNEApp, MID_HOTKEY_M_MODE_MOVE_MEANDATA);
695  routeMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
696  TL("Route"), "R", TL("Create Routes."),
698  routeDistributionMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
699  TL("Route distribution"), "W", TL("Create and edit route distributions."),
700  GUIIconSubSys::getIcon(GUIIcon::MODEROUTEDISTRIBUTION), myModesMenuCommandsParent->myGNEApp,
702  vehicleMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
703  TL("Vehicle"), "V", TL("Create vehicles."),
704  GUIIconSubSys::getIcon(GUIIcon::MODEVEHICLE), myModesMenuCommandsParent->myGNEApp, MID_HOTKEY_V_MODE_VEHICLE);
705  typeMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
706  TL("Type"), "T", TL("Create types (vehicles, person and containers)."),
707  GUIIconSubSys::getIcon(GUIIcon::MODETYPE), myModesMenuCommandsParent->myGNEApp, MID_HOTKEY_T_MODE_TLS_TYPE);
708  typeDistributionMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
709  TL("TypeDistribution"), "U", TL("Create and edit type distributions."),
711  stopMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
712  TL("Stop"), "A", TL("Create stops."),
714  personMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
715  TL("Person"), "P", TL("Create persons."),
716  GUIIconSubSys::getIcon(GUIIcon::MODEPERSON), myModesMenuCommandsParent->myGNEApp, MID_HOTKEY_P_MODE_POLYGON_PERSON);
717  personPlanMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
718  TL("Person plan"), "L", TL("Create person plans."),
719  GUIIconSubSys::getIcon(GUIIcon::MODEPERSONPLAN), myModesMenuCommandsParent->myGNEApp, MID_HOTKEY_L_MODE_PERSONPLAN);
720  containerMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
721  TL("Container"), "C", TL("Create containers."),
723  containerPlanMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
724  TL("Container plan"), "H", TL("Create container plans."),
726 }
727 
728 // ---------------------------------------------------------------------------
729 // GNEApplicationWindowHelper::ModesMenuCommands::DataMenuCommands - methods
730 // ---------------------------------------------------------------------------
731 
733  myModesMenuCommandsParent(modesMenuCommandsParent) {
734 }
735 
736 
737 void
739  edgeData->show();
740  edgeRelData->show();
741  TAZRelData->show();
742  meanData->show();
743 }
744 
745 
746 void
748  edgeData->hide();
749  edgeRelData->hide();
750  TAZRelData->hide();
751  meanData->hide();
752 }
753 
754 
755 void
757  // build every FXMenuCommand giving it a shortcut
758  edgeData = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
759  TL("&EdgeData"), "E", TL("Create edgeData elements."),
760  GUIIconSubSys::getIcon(GUIIcon::MODEEDGEDATA), myModesMenuCommandsParent->myGNEApp, MID_HOTKEY_E_MODE_EDGE_EDGEDATA);
761  edgeRelData = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
762  TL("Edge&Relation"), "R", TL("Create edgeRelation elements."),
764  TAZRelData = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
765  TL("TA&ZRelation"), "Z", TL("Create TAZRelation elements."),
766  GUIIconSubSys::getIcon(GUIIcon::MODETAZRELDATA), myModesMenuCommandsParent->myGNEApp, MID_HOTKEY_Z_MODE_TAZ_TAZREL);
767  meanData = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
768  TL("&MeanData"), "M", TL("Create MeanData edge/lanes."),
769  GUIIconSubSys::getIcon(GUIIcon::MODEMEANDATA), myModesMenuCommandsParent->myGNEApp, MID_HOTKEY_M_MODE_MOVE_MEANDATA);
770 }
771 
772 // ---------------------------------------------------------------------------
773 // GNEApplicationWindowHelper::ModesMenuCommands - methods
774 // ---------------------------------------------------------------------------
775 
777  commonMenuCommands(this),
778  networkMenuCommands(this),
779  demandMenuCommands(this),
780  dataMenuCommands(this),
781  myGNEApp(GNEApp) {
782 }
783 
784 
785 void
787  commonMenuCommands.buildCommonMenuCommands(modesMenu);
788  // build Network modes commands and hide it
789  networkMenuCommands.buildNetworkMenuCommands(modesMenu);
790  networkMenuCommands.hideNetworkMenuCommands();
791  // build Demand Modes commands
792  demandMenuCommands.buildDemandMenuCommands(modesMenu);
793  demandMenuCommands.hideDemandMenuCommands();
794  // build Data Modes commands
795  dataMenuCommands.buildDataMenuCommands(modesMenu);
796  dataMenuCommands.hideDataMenuCommands();
797 }
798 
799 
800 void
802  if (supermode == Supermode::NETWORK) {
803  networkMenuCommands.showNetworkMenuCommands();
804  } else if (supermode == Supermode::DEMAND) {
805  demandMenuCommands.showDemandMenuCommands();
806  } else if (supermode == Supermode::DATA) {
807  dataMenuCommands.showDataMenuCommands();
808  }
809 }
810 
811 
812 void
814  if (supermode == Supermode::NETWORK) {
815  networkMenuCommands.connectMode->hide();
816  networkMenuCommands.TLSMode->hide();
817  networkMenuCommands.prohibitionMode->hide();
818  networkMenuCommands.wireMode->hide();
819  networkMenuCommands.decalMode->hide();
820  } else if (supermode == Supermode::DEMAND) {
821  demandMenuCommands.moveMode->hide();
822  demandMenuCommands.vehicleMode->hide();
823  demandMenuCommands.stopMode->hide();
824  demandMenuCommands.containerMode->hide();
825  demandMenuCommands.containerPlanMode->hide();
826  } else if (supermode == Supermode::DATA) {
827  dataMenuCommands.hideDataMenuCommands();
828  }
829 }
830 
831 // ---------------------------------------------------------------------------
832 // GNEApplicationWindowHelper::EditMenuCommands::NetworkViewOptions - methods
833 // ---------------------------------------------------------------------------
834 
836  myGNEApp(GNEApp) {
837 }
838 
839 
840 void
842  // create menu checks
843  menuCheckToggleGrid = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
844  TL("Show grid"), "Ctrl+G or Alt+1", "",
847 
848  menuCheckToggleDrawJunctionShape = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
849  TL("Hide junction shape"), "Ctrl+J or Alt+2", "",
852 
853  menuCheckDrawSpreadVehicles = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
854  TL("Draw vehicles spread in lane or in depart position"), "Alt+3", "",
857 
858  menuCheckShowDemandElements = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
859  TL("Show demand elements"), "Alt+4", "",
862 
863  menuCheckSelectEdges = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
864  TL("Clicking should target lanes"), "Alt+5", "",
867 
868  menuCheckShowConnections = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
869  TL("Show connections over junctions"), "Alt+6", "",
872 
873  menuCheckHideConnections = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
874  TL("Hide connections"), "Alt+7", "",
877 
878  menuCheckShowAdditionalSubElements = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
879  TL("Show sub-additional elements"), "Alt+8", "",
882 
883  menuCheckShowTAZElements = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
884  TL("Show TAZ elements"), "Alt+9", "",
887 
888  menuCheckExtendSelection = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
889  TL("Selecting multiple edges automatically select their junctions"), "Alt+10", "",
892 
893  menuCheckChangeAllPhases = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
894  TL("Clicking should apply state changes to all phases of TLS plan"), "Alt+5", "",
897 
898  menuCheckWarnAboutMerge = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
899  TL("Ask for confirmation before merging junction"), "Alt+5", "",
902 
903  menuCheckShowJunctionBubble = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
904  TL("Show bubbles over junctions shapes"), "Alt+6", "",
907 
908  menuCheckMoveElevation = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
909  TL("Apply mouse movement to elevation"), "Alt+7", "",
912 
913  menuCheckChainEdges = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
914  TL("Create consecutive edges"), "Alt+5", "",
917 
918  menuCheckAutoOppositeEdge = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
919  TL("Create an edge in the opposite direction"), "Alt+6", "",
922 
923  // build separator
924  separator = new FXMenuSeparator(editMenu);
925 }
926 
927 
928 void
930  menuCheckToggleGrid->hide();
931  menuCheckToggleDrawJunctionShape->hide();
932  menuCheckDrawSpreadVehicles->hide();
933  menuCheckShowDemandElements->hide();
934  menuCheckSelectEdges->hide();
935  menuCheckShowConnections->hide();
936  menuCheckHideConnections->hide();
937  menuCheckShowAdditionalSubElements->hide();
938  menuCheckShowTAZElements->hide();
939  menuCheckExtendSelection->hide();
940  menuCheckChangeAllPhases->hide();
941  menuCheckWarnAboutMerge->hide();
942  menuCheckShowJunctionBubble->hide();
943  menuCheckMoveElevation->hide();
944  menuCheckChainEdges->hide();
945  menuCheckAutoOppositeEdge->hide();
946  separator->hide();
947 }
948 
949 
950 void
952  int index = 2;
953  // update all accel text
954  if (menuCheckDrawSpreadVehicles->shown()) {
955  menuCheckDrawSpreadVehicles->setAccelText(("Alt+" + toString(index)).c_str());
956  index++;
957  }
958  if (menuCheckDrawSpreadVehicles->shown()) {
959  menuCheckDrawSpreadVehicles->setAccelText(("Alt+" + toString(index)).c_str());
960  index++;
961  }
962  if (menuCheckShowDemandElements->shown()) {
963  menuCheckShowDemandElements->setAccelText(("Alt+" + toString(index)).c_str());
964  index++;
965  }
966  if (menuCheckSelectEdges->shown()) {
967  menuCheckSelectEdges->setAccelText(("Alt+" + toString(index)).c_str());
968  index++;
969  }
970  if (menuCheckShowConnections->shown()) {
971  menuCheckShowConnections->setAccelText(("Alt+" + toString(index)).c_str());
972  index++;
973  }
974  if (menuCheckHideConnections->shown()) {
975  menuCheckHideConnections->setAccelText(("Alt+" + toString(index)).c_str());
976  index++;
977  }
978  if (menuCheckShowAdditionalSubElements->shown()) {
979  menuCheckShowAdditionalSubElements->setAccelText(("Alt+" + toString(index)).c_str());
980  index++;
981  }
982  if (menuCheckShowTAZElements->shown()) {
983  menuCheckShowTAZElements->setAccelText(("Alt+" + toString(index)).c_str());
984  index++;
985  }
986  if (menuCheckExtendSelection->shown()) {
987  menuCheckExtendSelection->setAccelText(("Alt+" + toString(index)).c_str());
988  index++;
989  }
990  if (menuCheckChangeAllPhases->shown()) {
991  menuCheckChangeAllPhases->setAccelText(("Alt+" + toString(index)).c_str());
992  index++;
993  }
994  if (menuCheckWarnAboutMerge->shown()) {
995  menuCheckWarnAboutMerge->setAccelText(("Alt+" + toString(index)).c_str());
996  index++;
997  }
998  if (menuCheckShowJunctionBubble->shown()) {
999  menuCheckShowJunctionBubble->setAccelText(("Alt+" + toString(index)).c_str());
1000  index++;
1001  }
1002  if (menuCheckMoveElevation->shown()) {
1003  menuCheckMoveElevation->setAccelText(("Alt+" + toString(index)).c_str());
1004  index++;
1005  }
1006  if (menuCheckChainEdges->shown()) {
1007  menuCheckChainEdges->setAccelText(("Alt+" + toString(index)).c_str());
1008  index++;
1009  }
1010  if (menuCheckAutoOppositeEdge->shown()) {
1011  menuCheckAutoOppositeEdge->setAccelText(("Alt+" + toString(index)).c_str());
1012  index++;
1013  }
1014 }
1015 
1016 // ---------------------------------------------------------------------------
1017 // GNEApplicationWindowHelper::DemandViewOptions - methods
1018 // ---------------------------------------------------------------------------
1019 
1021  myGNEApp(GNEApp) {
1022 }
1023 
1024 
1025 void
1027  // create menu checks
1028  menuCheckToggleGrid = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1029  TL("Show grid"), "Ctrl+G or Alt+1", "",
1032 
1033  menuCheckToggleDrawJunctionShape = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1034  TL("Hide junction shape"), "Ctrl+J or Alt+2", "",
1037 
1038  menuCheckDrawSpreadVehicles = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1039  TL("Draw vehicles spread/depart position"), "Alt+3", "",
1042 
1043  menuCheckHideShapes = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1044  TL("Show shapes"), "Alt+4", "",
1047 
1048  menuCheckShowAllTrips = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1049  TL("Show all trips"), "Alt+5", "",
1052 
1053  menuCheckShowAllPersonPlans = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1054  TL("Show all person plans"), "Alt+6", "",
1057 
1058  menuCheckLockPerson = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1059  TL("Lock selected person"), "Alt+7", "",
1062 
1063  menuCheckShowAllContainerPlans = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1064  TL("Show all container plans"), "Alt+6", "",
1067 
1068  menuCheckLockContainer = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1069  TL("Lock selected container"), "Alt+7", "",
1072 
1073  menuCheckHideNonInspectedDemandElements = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1074  TL("Show non-inspected demand elements"), "Alt+8", "",
1077 
1078  menuCheckShowOverlappedRoutes = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1079  TL("Show number of overlapped routes"), "Alt+9", "",
1082 
1083  // build separator
1084  separator = new FXMenuSeparator(editMenu);
1085 }
1086 
1087 
1088 void
1090  menuCheckToggleGrid->hide();
1091  menuCheckToggleDrawJunctionShape->hide();
1092  menuCheckDrawSpreadVehicles->hide();
1093  menuCheckHideShapes->hide();
1094  menuCheckShowAllTrips->hide();
1095  menuCheckHideNonInspectedDemandElements->hide();
1096  menuCheckShowOverlappedRoutes->hide();
1097  menuCheckShowAllPersonPlans->hide();
1098  menuCheckLockPerson->hide();
1099  menuCheckShowAllContainerPlans->hide();
1100  menuCheckLockContainer->hide();
1101  separator->hide();
1102 }
1103 
1104 
1105 void
1107  int index = 2;
1108  // update all accel text
1109  if (menuCheckDrawSpreadVehicles->shown()) {
1110  menuCheckDrawSpreadVehicles->setAccelText(("Alt+" + toString(index)).c_str());
1111  index++;
1112  }
1113  if (menuCheckHideShapes->shown()) {
1114  menuCheckHideShapes->setAccelText(("Alt+" + toString(index)).c_str());
1115  index++;
1116  }
1117  if (menuCheckShowAllTrips->shown()) {
1118  menuCheckShowAllTrips->setAccelText(("Alt+" + toString(index)).c_str());
1119  index++;
1120  }
1121  if (menuCheckHideNonInspectedDemandElements->shown()) {
1122  menuCheckHideNonInspectedDemandElements->setAccelText(("Alt+" + toString(index)).c_str());
1123  index++;
1124  }
1125  if (menuCheckShowOverlappedRoutes->shown()) {
1126  menuCheckShowOverlappedRoutes->setAccelText(("Alt+" + toString(index)).c_str());
1127  index++;
1128  }
1129  if (menuCheckShowAllPersonPlans->shown()) {
1130  menuCheckShowAllPersonPlans->setAccelText(("Alt+" + toString(index)).c_str());
1131  index++;
1132  }
1133  if (menuCheckLockPerson->shown()) {
1134  menuCheckLockPerson->setAccelText(("Alt+" + toString(index)).c_str());
1135  index++;
1136  }
1137  if (menuCheckShowAllContainerPlans->shown()) {
1138  menuCheckShowAllContainerPlans->setAccelText(("Alt+" + toString(index)).c_str());
1139  index++;
1140  }
1141  if (menuCheckLockContainer->shown()) {
1142  menuCheckLockContainer->setAccelText(("Alt+" + toString(index)).c_str());
1143  index++;
1144  }
1145 }
1146 
1147 // ---------------------------------------------------------------------------
1148 // GNEApplicationWindowHelper::EditMenuCommands::DataViewOptions - methods
1149 // ---------------------------------------------------------------------------
1150 
1152  myGNEApp(GNEApp) {
1153 }
1154 
1155 
1156 void
1158  // create menu checks
1159  menuCheckToggleDrawJunctionShape = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1160  TL("Hide junction shape"), "Ctrl+J or Alt+1", "",
1163 
1164  menuCheckShowAdditionals = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1165  TL("Show additionals"), "Alt+2", "",
1168 
1169  menuCheckShowShapes = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1170  TL("Show shapes"), "Alt+3", "",
1173 
1174  menuCheckShowDemandElements = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1175  TL("Show demand elements"), "Alt+4", "",
1178 
1179  menuCheckToggleTAZRelDrawing = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1180  TL("Draw TAZRel from center"), "Alt+5", "",
1183 
1184  menuCheckToggleTAZDrawFill = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1185  TL("Draw TAZ fill"), "Alt+6", "",
1188 
1189  menuCheckToggleTAZRelOnlyFrom = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1190  TL("Only draw TAZRel from"), "Alt+6", "",
1193 
1194  menuCheckToggleTAZRelOnlyTo = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1195  TL("Only draw TAZRel to"), "Alt+7", "",
1198  // build separator
1199  separator = new FXMenuSeparator(editMenu);
1200 }
1201 
1202 
1203 void
1205  menuCheckToggleDrawJunctionShape->hide();
1206  menuCheckShowAdditionals->hide();
1207  menuCheckShowShapes->hide();
1208  menuCheckShowDemandElements->hide();
1209  menuCheckToggleTAZRelDrawing->hide();
1210  menuCheckToggleTAZDrawFill->hide();
1211  menuCheckToggleTAZRelOnlyFrom->hide();
1212  menuCheckToggleTAZRelOnlyTo->hide();
1213  separator->hide();
1214 }
1215 
1216 
1217 void
1219  int index = 2;
1220  // update all accel text
1221  if (menuCheckShowAdditionals->shown()) {
1222  menuCheckShowAdditionals->setAccelText(("Alt+" + toString(index)).c_str());
1223  index++;
1224  }
1225  if (menuCheckShowShapes->shown()) {
1226  menuCheckShowShapes->setAccelText(("Alt+" + toString(index)).c_str());
1227  index++;
1228  }
1229  if (menuCheckShowDemandElements->shown()) {
1230  menuCheckShowDemandElements->setAccelText(("Alt+" + toString(index)).c_str());
1231  index++;
1232  }
1233  if (menuCheckToggleTAZRelDrawing->shown()) {
1234  menuCheckToggleTAZRelDrawing->setAccelText(("Alt+" + toString(index)).c_str());
1235  index++;
1236  }
1237  if (menuCheckToggleTAZDrawFill->shown()) {
1238  menuCheckToggleTAZDrawFill->setAccelText(("Alt+" + toString(index)).c_str());
1239  index++;
1240  }
1241  if (menuCheckToggleTAZRelOnlyFrom->shown()) {
1242  menuCheckToggleTAZRelOnlyFrom->setAccelText(("Alt+" + toString(index)).c_str());
1243  index++;
1244  }
1245  if (menuCheckToggleTAZRelOnlyTo->shown()) {
1246  menuCheckToggleTAZRelOnlyTo->setAccelText(("Alt+" + toString(index)).c_str());
1247  index++;
1248  }
1249 }
1250 
1251 // ---------------------------------------------------------------------------
1252 // GNEApplicationWindowHelper::EditMenuCommands - methods
1253 // ---------------------------------------------------------------------------
1254 
1256  networkViewOptions(GNEApp),
1257  demandViewOptions(GNEApp),
1258  dataViewOptions(GNEApp),
1259  myGNEApp(GNEApp) {
1260 }
1261 
1262 
1263 void
1265  // build undo/redo command
1266  undoLastChange = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
1267  TL("Undo"), "Ctrl+Z", TL("Undo the last change."),
1269  redoLastChange = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
1270  TL("Redo"), "Ctrl+Y", TL("Redo the last change."),
1272  openUndolistDialog = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
1273  TL("Show undo/redo history"), "", TL("Open undo/redo history dialog."),
1275 }
1276 
1277 
1278 void
1280  // build rest of menu commands
1281  editViewScheme = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
1282  TL("Edit Visualisation"), "F9", TL("Opens a dialog for editing visualization settings."),
1284  editViewPort = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
1285  TL("Edit Viewport"), "Ctrl+I", TL("Opens a dialog for editing viewing area, zoom and rotation."),
1287 }
1288 
1289 
1290 void
1292  // add clear front element
1293  clearFrontElement = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
1294  TL("Clear front element"), "F11", TL("Clear current front element"),
1296 }
1297 
1298 
1299 void
1301  // add open in sumo options
1302  loadAdditionalsInSUMOGUI = GUIDesigns::buildFXMenuCheckbox(editMenu,
1303  TL("Load additionals in sumo-gui"), TL("Load additionals in sumo-gui."),
1305  loadAdditionalsInSUMOGUI->setCheck(TRUE);
1306  loadDemandInSUMOGUI = GUIDesigns::buildFXMenuCheckbox(editMenu,
1307  TL("Load demand in sumo-gui"), TL("Load demand in sumo-gui."),
1308  myGNEApp, MID_TOOLBAREDIT_LOADDEMAND);
1309  loadDemandInSUMOGUI->setCheck(TRUE);
1310  openInSUMOGUI = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
1311  TL("Open in sumo-gui"), "Ctrl+T", TL("Opens the sumo-gui application with the current network."),
1313 }
1314 
1315 // ---------------------------------------------------------------------------
1316 // GNEApplicationWindowHelper::LockMenuCommands - methods
1317 // ---------------------------------------------------------------------------
1318 
1320  myGNEApp(GNEApp) {
1321 }
1322 
1323 
1324 void
1326  // network
1327  menuCheckLockJunction = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1328  TL("&Junctions"), "", "",
1330  myGNEApp, MID_GNE_LOCK_ELEMENT);
1331 
1332  menuCheckLockEdges = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1333  TL("&Edges"), "", "",
1335  myGNEApp, MID_GNE_LOCK_ELEMENT);
1336 
1337  menuCheckLockLanes = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1338  TL("&Lanes"), "", "",
1340  myGNEApp, MID_GNE_LOCK_ELEMENT);
1341 
1342  menuCheckLockConnections = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1343  TL("&Connections"), "", "",
1345  myGNEApp, MID_GNE_LOCK_ELEMENT);
1346 
1347  menuCheckLockCrossings = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1348  TL("C&rossings"), "", "",
1350  myGNEApp, MID_GNE_LOCK_ELEMENT);
1351 
1352  menuCheckLockWalkingAreas = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1353  TL("Walkin&gAreas"), "", "",
1355  myGNEApp, MID_GNE_LOCK_ELEMENT);
1356 
1357  menuCheckLockAdditionals = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1358  TL("&Additionals"), "", "",
1360  myGNEApp, MID_GNE_LOCK_ELEMENT);
1361 
1362  menuCheckLockTAZs = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1363  TL("&TAZs"), "", "",
1365  myGNEApp, MID_GNE_LOCK_ELEMENT);
1366 
1367  menuCheckLockWires = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1368  TL("&Wires"), "", "",
1370  myGNEApp, MID_GNE_LOCK_ELEMENT);
1371 
1372  menuCheckLockPolygons = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1373  TL("&Polygons"), "", "",
1375  myGNEApp, MID_GNE_LOCK_ELEMENT);
1376 
1377  menuCheckLockPOIs = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1378  TL("P&OIs"), "", "",
1380  myGNEApp, MID_GNE_LOCK_ELEMENT);
1381 
1382  menuCheckLockJpsWalkableAreas = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1383  TL("WalkableAreas"), "", "",
1385  myGNEApp, MID_GNE_LOCK_ELEMENT);
1386 
1387  menuCheckLockJpsObstacles = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1388  TL("Obstacles"), "", "",
1390  myGNEApp, MID_GNE_LOCK_ELEMENT);
1391  // demand
1392  menuCheckLockRoutes = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1393  TL("&Routes"), "", "",
1395  myGNEApp, MID_GNE_LOCK_ELEMENT);
1396 
1397  menuCheckLockVehicles = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1398  TL("&Vehicles"), "", "",
1400  myGNEApp, MID_GNE_LOCK_ELEMENT);
1401 
1402  menuCheckLockPersons = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1403  TL("&Persons"), "", "",
1405  myGNEApp, MID_GNE_LOCK_ELEMENT);
1406 
1407  menuCheckLockPersonTrip = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1408  TL("Person&Trips"), "", "",
1410  myGNEApp, MID_GNE_LOCK_ELEMENT);
1411 
1412  menuCheckLockWalk = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1413  TL("&Walks"), "", "",
1415  myGNEApp, MID_GNE_LOCK_ELEMENT);
1416 
1417  menuCheckLockRides = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1418  TL("Ri&des"), "", "",
1420  myGNEApp, MID_GNE_LOCK_ELEMENT);
1421 
1422  menuCheckLockContainers = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1423  TL("&Containers"), "", "",
1425  myGNEApp, MID_GNE_LOCK_ELEMENT);
1426 
1427  menuCheckLockTransports = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1428  TL("Tra&nsports"), "", "",
1430  myGNEApp, MID_GNE_LOCK_ELEMENT);
1431 
1432  menuCheckLockTranships = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1433  TL("Trans&hips"), "", "",
1435  myGNEApp, MID_GNE_LOCK_ELEMENT);
1436 
1437  menuCheckLockStops = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1438  TL("Stop&s"), "", "",
1440  myGNEApp, MID_GNE_LOCK_ELEMENT);
1441  // data
1442  menuCheckLockEdgeDatas = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1443  TL("&EdgeDatas"), "", "",
1445  myGNEApp, MID_GNE_LOCK_ELEMENT);
1446 
1447  menuCheckLockEdgeRelDatas = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1448  TL("E&dgeRelDatas"), "", "",
1450  myGNEApp, MID_GNE_LOCK_ELEMENT);
1451 
1452  menuCheckLockEdgeTAZRels = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1453  TL("Edge&TAZRel"), "", "",
1455  myGNEApp, MID_GNE_LOCK_ELEMENT);
1456 
1457  // separator
1458  new FXMenuSeparator(fileMenu);
1459 
1460  menuCheckLockSelectedElements = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1461  TL("Lock selected elements"), "", TL("selected elements"),
1463 
1464  // separator
1465  new FXMenuSeparator(fileMenu);
1466 
1468  TL("Lock all elements"), "", TL("all elements"),
1470 
1472  TL("Unlock all elements"), "", TL("Unlock all elements"),
1474 }
1475 
1476 
1477 void
1479  // network
1480  menuCheckLockJunction->remHotKey(parseHotKey('j'));
1481  menuCheckLockEdges->remHotKey(parseHotKey('e'));
1482  menuCheckLockLanes->remHotKey(parseHotKey('l'));
1483  menuCheckLockConnections->remHotKey(parseHotKey('c'));
1484  menuCheckLockCrossings->remHotKey(parseHotKey('r'));
1485  menuCheckLockWalkingAreas->remHotKey(parseHotKey('g'));
1486  menuCheckLockAdditionals->remHotKey(parseHotKey('a'));
1487  menuCheckLockTAZs->remHotKey(parseHotKey('t'));
1488  menuCheckLockWires->remHotKey(parseHotKey('w'));
1489  menuCheckLockPolygons->remHotKey(parseHotKey('p'));
1490  menuCheckLockPOIs->remHotKey(parseHotKey('o'));
1491  menuCheckLockJpsWalkableAreas->remHotKey(parseHotKey('n'));
1492  menuCheckLockJpsObstacles->remHotKey(parseHotKey('b'));
1493  // demand
1494  menuCheckLockRoutes->remHotKey(parseHotKey('r'));
1495  menuCheckLockVehicles->remHotKey(parseHotKey('v'));
1496  menuCheckLockPersons->remHotKey(parseHotKey('p'));
1497  menuCheckLockPersonTrip->remHotKey(parseHotKey('t'));
1498  menuCheckLockWalk->remHotKey(parseHotKey('w'));
1499  menuCheckLockRides->remHotKey(parseHotKey('d'));
1500  menuCheckLockContainers->remHotKey(parseHotKey('c'));
1501  menuCheckLockTransports->remHotKey(parseHotKey('n'));
1502  menuCheckLockTranships->remHotKey(parseHotKey('h'));
1503  menuCheckLockStops->remHotKey(parseHotKey('s'));
1504  // data
1505  menuCheckLockEdgeDatas->remHotKey(parseHotKey('e'));
1506  menuCheckLockEdgeRelDatas->remHotKey(parseHotKey('d'));
1507  menuCheckLockEdgeTAZRels->remHotKey(parseHotKey('t'));
1508 }
1509 
1510 void
1512  // first enable menu commands
1513  menuCheckLockJunction->enable();
1514  menuCheckLockEdges->enable();
1515  menuCheckLockLanes->enable();
1516  menuCheckLockConnections->enable();
1517  menuCheckLockCrossings->enable();
1518  menuCheckLockWalkingAreas->enable();
1519  menuCheckLockAdditionals->enable();
1520  menuCheckLockTAZs->enable();
1521  menuCheckLockWires->enable();
1522  menuCheckLockPolygons->enable();
1523  menuCheckLockPOIs->enable();
1524  menuCheckLockJpsWalkableAreas->enable();
1525  menuCheckLockJpsObstacles->enable();
1526  // set accels
1527  menuCheckLockJunction->addHotKey(parseHotKey('j'));
1528  menuCheckLockEdges->addHotKey(parseHotKey('e'));
1529  menuCheckLockLanes->addHotKey(parseHotKey('l'));
1530  menuCheckLockConnections->addHotKey(parseHotKey('c'));
1531  menuCheckLockCrossings->addHotKey(parseHotKey('r'));
1532  menuCheckLockWalkingAreas->addHotKey(parseHotKey('g'));
1533  menuCheckLockAdditionals->addHotKey(parseHotKey('a'));
1534  menuCheckLockTAZs->addHotKey(parseHotKey('t'));
1535  menuCheckLockWires->addHotKey(parseHotKey('w'));
1536  menuCheckLockPolygons->addHotKey(parseHotKey('p'));
1537  menuCheckLockPOIs->addHotKey(parseHotKey('o'));
1538  menuCheckLockJpsWalkableAreas->addHotKey(parseHotKey('n'));
1539  menuCheckLockJpsObstacles->addHotKey(parseHotKey('b'));
1540  // now show it
1541  menuCheckLockJunction->show();
1542  menuCheckLockEdges->show();
1543  menuCheckLockLanes->show();
1544  menuCheckLockConnections->show();
1545  menuCheckLockCrossings->show();
1546  menuCheckLockWalkingAreas->show();
1547  menuCheckLockAdditionals->show();
1548  menuCheckLockTAZs->show();
1549  menuCheckLockWires->show();
1550  menuCheckLockPolygons->show();
1551  menuCheckLockPOIs->show();
1552  menuCheckLockJpsWalkableAreas->show();
1553  menuCheckLockJpsObstacles->show();
1554 }
1555 
1556 
1557 void
1559  // first disable menu commands
1560  menuCheckLockJunction->disable();
1561  menuCheckLockEdges->disable();
1562  menuCheckLockLanes->disable();
1563  menuCheckLockConnections->disable();
1564  menuCheckLockCrossings->disable();
1565  menuCheckLockWalkingAreas->disable();
1566  menuCheckLockAdditionals->disable();
1567  menuCheckLockTAZs->disable();
1568  menuCheckLockPolygons->disable();
1569  menuCheckLockPOIs->disable();
1570  menuCheckLockJpsWalkableAreas->disable();
1571  menuCheckLockJpsObstacles->disable();
1572  // now hide it
1573  menuCheckLockJunction->hide();
1574  menuCheckLockEdges->hide();
1575  menuCheckLockLanes->hide();
1576  menuCheckLockConnections->hide();
1577  menuCheckLockCrossings->hide();
1578  menuCheckLockWalkingAreas->hide();
1579  menuCheckLockAdditionals->hide();
1580  menuCheckLockTAZs->hide();
1581  menuCheckLockWires->hide();
1582  menuCheckLockPolygons->hide();
1583  menuCheckLockPOIs->hide();
1584  menuCheckLockJpsWalkableAreas->hide();
1585  menuCheckLockJpsObstacles->hide();
1586 }
1587 
1588 
1589 void
1591  // first enable menu commands
1592  menuCheckLockRoutes->enable();
1593  menuCheckLockVehicles->enable();
1594  menuCheckLockPersons->enable();
1595  menuCheckLockPersonTrip->enable();
1596  menuCheckLockWalk->enable();
1597  menuCheckLockRides->enable();
1598  menuCheckLockContainers->enable();
1599  menuCheckLockTransports->enable();
1600  menuCheckLockTranships->enable();
1601  menuCheckLockStops->enable();
1602  // set accels
1603  menuCheckLockRoutes->addHotKey(parseHotKey('r'));
1604  menuCheckLockVehicles->addHotKey(parseHotKey('v'));
1605  menuCheckLockPersons->addHotKey(parseHotKey('p'));
1606  menuCheckLockPersonTrip->addHotKey(parseHotKey('t'));
1607  menuCheckLockWalk->addHotKey(parseHotKey('w'));
1608  menuCheckLockRides->addHotKey(parseHotKey('d'));
1609  menuCheckLockContainers->addHotKey(parseHotKey('c'));
1610  menuCheckLockTransports->addHotKey(parseHotKey('n'));
1611  menuCheckLockTranships->addHotKey(parseHotKey('h'));
1612  menuCheckLockStops->addHotKey(parseHotKey('s'));
1613  // now show it
1614  menuCheckLockRoutes->show();
1615  menuCheckLockVehicles->show();
1616  menuCheckLockPersons->show();
1617  menuCheckLockPersonTrip->show();
1618  menuCheckLockWalk->show();
1619  menuCheckLockRides->show();
1620  menuCheckLockContainers->show();
1621  menuCheckLockTransports->show();
1622  menuCheckLockTranships->show();
1623  menuCheckLockStops->show();
1624 }
1625 
1626 
1627 void
1629  // first disable menu commands
1630  menuCheckLockRoutes->disable();
1631  menuCheckLockVehicles->disable();
1632  menuCheckLockPersons->disable();
1633  menuCheckLockPersonTrip->disable();
1634  menuCheckLockWalk->disable();
1635  menuCheckLockRides->disable();
1636  menuCheckLockContainers->disable();
1637  menuCheckLockTransports->disable();
1638  menuCheckLockTranships->disable();
1639  menuCheckLockStops->disable();
1640  // now hide it
1641  menuCheckLockRoutes->hide();
1642  menuCheckLockVehicles->hide();
1643  menuCheckLockPersons->hide();
1644  menuCheckLockPersonTrip->hide();
1645  menuCheckLockWalk->hide();
1646  menuCheckLockRides->hide();
1647  menuCheckLockContainers->hide();
1648  menuCheckLockTransports->hide();
1649  menuCheckLockTranships->hide();
1650  menuCheckLockStops->hide();
1651 }
1652 
1653 
1654 void
1656  // first enable menu commands
1657  menuCheckLockEdgeDatas->enable();
1658  menuCheckLockEdgeRelDatas->enable();
1659  menuCheckLockEdgeTAZRels->enable();
1660  // set accels
1661  menuCheckLockEdgeDatas->addHotKey(parseHotKey('e'));
1662  menuCheckLockEdgeRelDatas->addHotKey(parseHotKey('d'));
1663  menuCheckLockEdgeTAZRels->addHotKey(parseHotKey('t'));
1664  // now show it
1665  menuCheckLockEdgeDatas->show();
1666  menuCheckLockEdgeRelDatas->show();
1667  menuCheckLockEdgeTAZRels->show();
1668 }
1669 
1670 
1671 void
1673  // first disable menu commands
1674  menuCheckLockEdgeDatas->disable();
1675  menuCheckLockEdgeRelDatas->disable();
1676  menuCheckLockEdgeTAZRels->disable();
1677  // now hide it
1678  menuCheckLockEdgeDatas->hide();
1679  menuCheckLockEdgeRelDatas->hide();
1680  menuCheckLockEdgeTAZRels->hide();
1681 }
1682 
1683 
1684 void
1686  menuCheckLockJunction->setCheck(TRUE);
1687  menuCheckLockEdges->setCheck(TRUE);
1688  menuCheckLockLanes->setCheck(TRUE);
1689  menuCheckLockConnections->setCheck(TRUE);
1690  menuCheckLockCrossings->setCheck(TRUE);
1691  menuCheckLockWalkingAreas->setCheck(TRUE);
1692  menuCheckLockAdditionals->setCheck(TRUE);
1693  menuCheckLockTAZs->setCheck(TRUE);
1694  menuCheckLockWires->setCheck(TRUE);
1695  menuCheckLockPolygons->setCheck(TRUE);
1696  menuCheckLockPOIs->setCheck(TRUE);
1697  menuCheckLockJpsWalkableAreas->setCheck(TRUE);
1698  menuCheckLockJpsObstacles->setCheck(TRUE);
1699  menuCheckLockRoutes->setCheck(TRUE);
1700  menuCheckLockVehicles->setCheck(TRUE);
1701  menuCheckLockPersons->setCheck(TRUE);
1702  menuCheckLockPersonTrip->setCheck(TRUE);
1703  menuCheckLockWalk->setCheck(TRUE);
1704  menuCheckLockRides->setCheck(TRUE);
1705  menuCheckLockContainers->setCheck(TRUE);
1706  menuCheckLockTransports->setCheck(TRUE);
1707  menuCheckLockTranships->setCheck(TRUE);
1708  menuCheckLockStops->setCheck(TRUE);
1709  menuCheckLockEdgeDatas->setCheck(TRUE);
1710  menuCheckLockEdgeRelDatas->setCheck(TRUE);
1711  menuCheckLockEdgeTAZRels->setCheck(TRUE);
1712 }
1713 
1714 
1715 void
1717  menuCheckLockJunction->setCheck(FALSE);
1718  menuCheckLockEdges->setCheck(FALSE);
1719  menuCheckLockLanes->setCheck(FALSE);
1720  menuCheckLockConnections->setCheck(FALSE);
1721  menuCheckLockCrossings->setCheck(FALSE);
1722  menuCheckLockWalkingAreas->setCheck(FALSE);
1723  menuCheckLockAdditionals->setCheck(FALSE);
1724  menuCheckLockTAZs->setCheck(FALSE);
1725  menuCheckLockWires->setCheck(FALSE);
1726  menuCheckLockPolygons->setCheck(FALSE);
1727  menuCheckLockPOIs->setCheck(FALSE);
1728  menuCheckLockJpsWalkableAreas->setCheck(FALSE);
1729  menuCheckLockJpsObstacles->setCheck(FALSE);
1730  menuCheckLockRoutes->setCheck(FALSE);
1731  menuCheckLockVehicles->setCheck(FALSE);
1732  menuCheckLockPersons->setCheck(FALSE);
1733  menuCheckLockPersonTrip->setCheck(FALSE);
1734  menuCheckLockWalk->setCheck(FALSE);
1735  menuCheckLockRides->setCheck(FALSE);
1736  menuCheckLockContainers->setCheck(FALSE);
1737  menuCheckLockTransports->setCheck(FALSE);
1738  menuCheckLockTranships->setCheck(FALSE);
1739  menuCheckLockStops->setCheck(FALSE);
1740  menuCheckLockEdgeDatas->setCheck(FALSE);
1741  menuCheckLockEdgeRelDatas->setCheck(FALSE);
1742  menuCheckLockEdgeTAZRels->setCheck(FALSE);
1743 }
1744 
1745 
1746 void
1748  // check elements
1749  if (AC->getTagProperty().getTag() == SUMO_TAG_JUNCTION) {
1750  menuCheckLockJunction->setCheck(value);
1751  } else if (AC->getTagProperty().getTag() == SUMO_TAG_EDGE) {
1752  menuCheckLockEdges->setCheck(value);
1753  } else if (AC->getTagProperty().getTag() == SUMO_TAG_LANE) {
1754  menuCheckLockLanes->setCheck(value);
1755  } else if (AC->getTagProperty().getTag() == SUMO_TAG_CONNECTION) {
1756  menuCheckLockConnections->setCheck(value);
1757  } else if (AC->getTagProperty().getTag() == SUMO_TAG_CROSSING) {
1758  menuCheckLockCrossings->setCheck(value);
1759  } else if (AC->getTagProperty().getTag() == SUMO_TAG_WALKINGAREA) {
1760  menuCheckLockWalkingAreas->setCheck(value);
1761  } else if (AC->getTagProperty().isAdditionalElement()) {
1762  menuCheckLockAdditionals->setCheck(value);
1763  } else if (AC->getTagProperty().isTAZElement()) {
1764  menuCheckLockTAZs->setCheck(value);
1765  } else if (AC->getTagProperty().isWireElement()) {
1766  menuCheckLockWires->setCheck(value);
1767  } else if (AC->getTagProperty().getTag() == SUMO_TAG_POLY) {
1768  menuCheckLockPolygons->setCheck(value);
1769  } else if (AC->getTagProperty().getTag() == GNE_TAG_JPS_WALKABLEAREA) {
1770  menuCheckLockJpsWalkableAreas->setCheck(value);
1771  } else if (AC->getTagProperty().getTag() == GNE_TAG_JPS_OBSTACLE) {
1772  menuCheckLockJpsObstacles->setCheck(value);
1773  } else if ((AC->getTagProperty().getTag() == SUMO_TAG_POI) ||
1774  (AC->getTagProperty().getTag() == GNE_TAG_POILANE) ||
1775  (AC->getTagProperty().getTag() == GNE_TAG_POIGEO)) {
1776  menuCheckLockPOIs->setCheck(value);
1777  } else if (AC->getTagProperty().isRoute()) {
1778  menuCheckLockRoutes->setCheck(value);
1779  } else if (AC->getTagProperty().isVehicle()) {
1780  menuCheckLockVehicles->setCheck(value);
1781  } else if (AC->getTagProperty().isPerson()) {
1782  menuCheckLockPersons->setCheck(value);
1783  } else if (AC->getTagProperty().isPersonTrip()) {
1784  menuCheckLockPersonTrip->setCheck(value);
1785  } else if (AC->getTagProperty().isPlanWalk()) {
1786  menuCheckLockWalk->setCheck(value);
1787  } else if (AC->getTagProperty().isPlanRide()) {
1788  menuCheckLockRides->setCheck(value);
1789  } else if (AC->getTagProperty().isContainer()) {
1790  menuCheckLockContainers->setCheck(value);
1791  } else if (AC->getTagProperty().isPlanTransport()) {
1792  menuCheckLockTransports->setCheck(value);
1793  } else if (AC->getTagProperty().isPlanTranship()) {
1794  menuCheckLockTranships->setCheck(value);
1795  } else if (AC->getTagProperty().isVehicleStop() ||
1796  AC->getTagProperty().isPlanStopPerson() ||
1798  menuCheckLockStops->setCheck(value);
1799  } else if (AC->getTagProperty().getTag() == GNE_TAG_EDGEREL_SINGLE) {
1800  menuCheckLockEdgeDatas->setCheck(value);
1801  } else if (AC->getTagProperty().getTag() == SUMO_TAG_EDGEREL) {
1802  menuCheckLockEdgeRelDatas->setCheck(value);
1803  } else if (AC->getTagProperty().getTag() == SUMO_TAG_TAZREL) {
1804  menuCheckLockEdgeTAZRels->setCheck(value);
1805  }
1806 }
1807 
1808 
1809 FXHotKey
1811  FXuint code = 0, mods = 0;
1812  if (Unicode::isAlphaNumeric(character)) {
1813  mods = ALTMASK;
1814  code = fxucs2keysym(Unicode::toLower(character));
1815  }
1816  return MKUINT(code, mods);
1817 }
1818 
1819 // ---------------------------------------------------------------------------
1820 // GNEApplicationWindowHelper::ProcessingMenuCommands - methods
1821 // ---------------------------------------------------------------------------
1822 
1824  myGNEApp(GNEApp) {
1825 }
1826 
1827 
1828 void
1830  // build network processing menu commands
1831  computeNetwork = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1832  TL("Compute Junctions"), "F5", TL("Compute junction shape and logic."),
1834  computeNetworkVolatile = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1835  TL("Compute Junctions with volatile options"), "Shift+F5", TL("Compute junction shape and logic using volatile junctions."),
1837  cleanJunctions = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1838  TL("Clean Junctions"), "F6", TL("Remove solitary junctions."),
1840  joinJunctions = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1841  TL("Join Selected Junctions"), "F7", TL("Join selected junctions into a single junction."),
1843  clearInvalidCrossings = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1844  TL("Clean invalid crossings"), "F8", TL("Clear invalid crossings."),
1846  // add separator for checkBox
1847  mySeparatorCheckBox = new FXMenuSeparator(processingMenu);
1848  // add checkBox for recomputing in data mode
1849  menuCheckRecomputeDataMode = GUIDesigns::buildFXMenuCheckboxIcon(processingMenu,
1850  TL("Recompute Network in Data Mode"), "", "",
1852  // set default value
1853  menuCheckRecomputeDataMode->setCheck(myGNEApp->getApp()->reg().readBoolEntry("netedit", "RecomputeData", true));
1854  // build demand processing menu commands
1855  computeDemand = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1856  TL("Compute demand"), "F5", TL("Computes demand elements."),
1858  cleanRoutes = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1859  TL("Clean routes"), "F6", TL("Removes routes without vehicles."),
1861  joinRoutes = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1862  TL("Join routes"), "F7", TL("Joins routes with the same edges."),
1864  adjustPersonPlans = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1865  TL("Adjust person plans"), "Shift+F7", TL("Adjust person plans (start/end positions, arrival positions, etc.)"),
1867  clearInvalidDemandElements = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1868  TL("Clean invalid route elements"), "F8", TL("Clear elements with an invalid path (routes, Trips, Flows...)."),
1870  // add separator
1871  myOptionsSeparator = new FXMenuSeparator(processingMenu);
1872  // create optionmenus
1873  optionMenus = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1874  TL("Sumo options"), "Shift+F10", TL("Configure sumo Options."),
1876  // add separator
1877  myOptionsSeparator = new FXMenuSeparator(processingMenu);
1878  // create optionmenus
1879  optionMenus = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1880  TL("Options"), "F10", TL("Configure netedit Options."),
1882 }
1883 
1884 
1885 void
1887  // first enable menu commands
1888  computeNetwork->enable();
1889  computeNetworkVolatile->enable();
1890  cleanJunctions->enable();
1891  joinJunctions->enable();
1892  clearInvalidCrossings->enable();
1893  mySeparatorCheckBox->enable();
1894  menuCheckRecomputeDataMode->enable();
1895  // now show it
1896  computeNetwork->show();
1897  computeNetworkVolatile->show();
1898  cleanJunctions->show();
1899  joinJunctions->show();
1900  clearInvalidCrossings->show();
1901  mySeparatorCheckBox->show();
1902  menuCheckRecomputeDataMode->show();
1903 }
1904 
1905 
1906 void
1908  // first disable menu commands
1909  computeNetwork->disable();
1910  computeNetworkVolatile->disable();
1911  cleanJunctions->disable();
1912  joinJunctions->disable();
1913  clearInvalidCrossings->disable();
1914  // now hide it
1915  computeNetwork->hide();
1916  computeNetworkVolatile->hide();
1917  cleanJunctions->hide();
1918  joinJunctions->hide();
1919  clearInvalidCrossings->hide();
1920 }
1921 
1922 
1923 void
1925  // first enable menu commands
1926  computeDemand->enable();
1927  cleanRoutes->enable();
1928  joinRoutes->enable();
1929  adjustPersonPlans->enable();
1930  clearInvalidDemandElements->enable();
1931  // now show it
1932  computeDemand->show();
1933  cleanRoutes->show();
1934  joinRoutes->show();
1935  adjustPersonPlans->show();
1936  clearInvalidDemandElements->show();
1937 }
1938 
1939 
1940 void
1942  // first disable menu commands
1943  computeDemand->disable();
1944  cleanRoutes->disable();
1945  joinRoutes->disable();
1946  adjustPersonPlans->disable();
1947  clearInvalidDemandElements->disable();
1948  // now hide it
1949  computeDemand->hide();
1950  cleanRoutes->hide();
1951  joinRoutes->hide();
1952  adjustPersonPlans->hide();
1953  clearInvalidDemandElements->hide();
1954 }
1955 
1956 
1957 void
1959  // currently nothing to show
1960 }
1961 
1962 
1963 void
1965  // currently nothing to hide
1966 }
1967 
1968 
1969 void
1971  myOptionsSeparator->show();
1972 }
1973 
1974 
1975 void
1977  myOptionsSeparator->hide();
1978 }
1979 
1980 // ---------------------------------------------------------------------------
1981 // GNEApplicationWindowHelper::LocateMenuCommands - methods
1982 // ---------------------------------------------------------------------------
1983 
1985  myGNEApp(GNEApp) {
1986 }
1987 
1988 
1989 void
1991  // build locate menu commands
1993  TL("&Junctions"), "Shift+J", TL("Open a dialog for locating a Junction."),
1996  TL("&Edges"), "Shift+E", TL("Open a dialog for locating an Edge."),
1999  TL("&WalkingAreas"), "Shift+W", TL("Open a dialog for locating a Walking Area."),
2002  TL("&Vehicles"), "Shift+V", TL("Open a dialog for locating a Vehicle."),
2005  TL("&Persons"), "Shift+P", TL("Open a dialog for locating a Person."),
2008  TL("&Containers"), "Shift+C", TL("Open a dialog for locating a Container."),
2011  TL("&Route"), "Shift+R", TL("Open a dialog for locating a Route."),
2014  TL("&Stops"), "Shift+S", TL("Open a dialog for locating a Stop."),
2017  TL("&TLS"), "Shift+T", TL("Open a dialog for locating a Traffic Light."),
2020  TL("&Additional"), "Shift+A", TL("Open a dialog for locating an Additional Structure."),
2023  TL("P&oI"), "Shift+O", TL("Open a dialog for locating a Point of Interest."),
2026  TL("Po&lygon"), "Shift+L", TL("Open a dialog for locating a Polygon."),
2028 }
2029 
2030 // ---------------------------------------------------------------------------
2031 // GNEApplicationWindowHelper::ToolsMenuCommands - methods
2032 // ---------------------------------------------------------------------------
2033 
2035  myGNEApp(GNEApp) {
2036 }
2037 
2038 
2040  // delete all tools
2041  for (const auto& tool : myPythonTools) {
2042  delete tool;
2043  }
2044  // delete dialogs
2045  delete myPythonToolDialog;
2046  delete myNetgenerateDialog;
2047  delete myRunPythonToolDialog;
2048  delete myRunNetgenerateDialog;
2049 }
2050 
2051 
2052 void
2054  const std::map<std::string, FXMenuPane*>& menuPaneToolMaps) {
2055  // build tools from template
2056  // the templateTools vector is imported from templates.h (which only exists in the cmake-build folder)
2057  for (const auto& templateTool : templateTools) {
2058  if (templateTool.name == "netdiff") {
2059  myPythonTools.push_back(new GNENetDiffTool(myGNEApp, templateTool.pythonPath,
2060  menuPaneToolMaps.at(templateTool.subfolder)));
2061  } else if (menuPaneToolMaps.count(templateTool.subfolder) > 0) {
2062  myPythonTools.push_back(new GNEPythonTool(myGNEApp, templateTool.pythonPath,
2063  templateTool.templateStr, menuPaneToolMaps.at(templateTool.subfolder)));
2064  } else {
2065  myPythonTools.push_back(new GNEPythonTool(myGNEApp, templateTool.pythonPath,
2066  templateTool.templateStr, toolsMenu));
2067  }
2068  }
2069  // build dialogs
2070  myPythonToolDialog = new GNEPythonToolDialog(myGNEApp);
2071  myNetgenerateDialog = new GNENetgenerateDialog(myGNEApp);
2072  myRunPythonToolDialog = new GNERunPythonToolDialog(myGNEApp);
2073  myRunNetgenerateDialog = new GNERunNetgenerateDialog(myGNEApp);
2074 }
2075 
2076 
2077 long
2079  // iterate over all tools and find menu command
2080  for (const auto& tool : myPythonTools) {
2081  if (tool->getMenuCommand() == menuCommand) {
2082  myPythonToolDialog->openDialog(tool);
2083  return 1;
2084  }
2085  }
2086  return 0;
2087 }
2088 
2089 
2090 long
2092  myNetgenerateDialog->openDialog();
2093  return 1;
2094 }
2095 
2096 
2097 long
2099  // iterate over all tools and find menu command
2100  for (const auto& tool : myPythonTools) {
2101  if (tool->getMenuCommand() == menuCommand) {
2102  myRunPythonToolDialog->runTool(tool);
2103  return 1;
2104  }
2105  }
2106  return 0;
2107 }
2108 
2109 
2110 long
2112  // iterate over all tools and find menu command
2113  for (const auto& tool : myPythonTools) {
2114  if (tool->getMenuCommand() == menuCommand) {
2115  // execute postProcessing
2116  tool->postProcessing();
2117  return 1;
2118  }
2119  }
2120  return 0;
2121 }
2122 
2123 
2124 long
2126  myRunNetgenerateDialog->run(netgenerateOptions);
2127  return 0;
2128 }
2129 
2130 // ---------------------------------------------------------------------------
2131 // GNEApplicationWindowHelper::WindowsMenuCommands - methods
2132 // ---------------------------------------------------------------------------
2133 
2135  myGNEApp(GNEApp) {
2136 }
2137 
2138 
2139 void
2141  FXStatusBar* statusbar, GUIMessageWindow* messageWindow) {
2142  // build windows menu commands
2143  GUIDesigns::buildFXMenuCheckbox(windowsMenu,
2144  TL("Show Status Line"), TL("Toggle this Status Bar on/off."),
2145  statusbar, FXWindow::ID_TOGGLESHOWN);
2146  GUIDesigns::buildFXMenuCheckbox(windowsMenu,
2147  TL("Show Message Window"), TL("Toggle the Message Window on/off."),
2148  messageWindow, FXWindow::ID_TOGGLESHOWN);
2149  new FXMenuSeparator(windowsMenu);
2151  TL("Clear Message Window"), "", TL("Clear the Message Window."),
2153 }
2154 
2155 // ---------------------------------------------------------------------------
2156 // GNEApplicationWindowHelper::WindowsMenuCommands - methods
2157 // ---------------------------------------------------------------------------
2158 
2160  myGNEApp(GNEApp) {
2161 }
2162 
2163 
2164 void
2166  // build windows menu commands
2167  GUIDesigns::buildFXMenuCommandShortcut(helpMenu, TL("Online Documentation"), "F1", TL("Open Online documentation."),
2168  nullptr, myGNEApp, MID_HOTKEY_F1_ONLINEDOCUMENTATION);
2169  new FXMenuSeparator(helpMenu);
2170  GUIDesigns::buildFXMenuCommandShortcut(helpMenu, TL("Changelog"), "", TL("Open Changelog."),
2171  nullptr, myGNEApp, MID_CHANGELOG);
2172  GUIDesigns::buildFXMenuCommandShortcut(helpMenu, TL("Hotkeys"), "", TL("Open Hotkeys."),
2173  nullptr, myGNEApp, MID_HOTKEYS);
2174  GUIDesigns::buildFXMenuCommandShortcut(helpMenu, TL("Tutorial"), "", TL("Open Tutorial."),
2175  nullptr, myGNEApp, MID_TUTORIAL);
2176  GUIDesigns::buildFXMenuCommandShortcut(helpMenu, TL("Feedback"), "", TL("Open feedback channels."),
2177  nullptr, myGNEApp, MID_FEEDBACK);
2178  new FXMenuSeparator(helpMenu);
2179  GUIDesigns::buildFXMenuCommandShortcut(helpMenu, TL("About"), "F12", TL("About netedit."),
2181 }
2182 
2183 // ---------------------------------------------------------------------------
2184 // GNEApplicationWindowHelper::NetworkCheckableButtons - methods
2185 // ---------------------------------------------------------------------------
2186 
2188  myGNEApp(GNEApp) {
2189 }
2190 
2191 
2192 void
2194  networkMode->show();
2195  demandMode->show();
2196  dataMode->show();
2197 }
2198 
2199 
2200 void
2202  showSupermodeCommands();
2203 }
2204 
2205 
2206 void
2208  dataMode->hide();
2209 }
2210 
2211 
2212 void
2214  // build supermode menu commands
2215  networkMode = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
2216  TL("&Network"), "F2", TL("Select network mode."),
2218  demandMode = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
2219  TL("&Demand"), "F3", TL("Select demand mode."),
2221  dataMode = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
2222  TL("&Data"), "F4", TL("Select data mode."),
2224 }
2225 
2226 // ---------------------------------------------------------------------------
2227 // GNESumoConfigHandler - methods
2228 // ---------------------------------------------------------------------------
2229 
2231  mySumoOptions(sumoOptions),
2232  myFile(file) {
2233 }
2234 
2235 
2236 bool
2238  // get options
2239  auto& neteditOptions = OptionsCont::getOptions();
2240  // reset options
2241  mySumoOptions.resetDefault();
2242  neteditOptions.resetDefault();
2243  // make all options writables
2244  mySumoOptions.resetWritable();
2245  neteditOptions.resetWritable();
2246  // build parser
2247  XERCES_CPP_NAMESPACE::SAXParser parser;
2248  parser.setValidationScheme(XERCES_CPP_NAMESPACE::SAXParser::Val_Never);
2249  parser.setDisableDefaultEntityResolution(true);
2250  // start the parsing
2251  OptionsLoader handler(mySumoOptions);
2252  try {
2253  parser.setDocumentHandler(&handler);
2254  parser.setErrorHandler(&handler);
2255  parser.parse(StringUtils::transcodeToLocal(myFile).c_str());
2256  if (handler.errorOccurred()) {
2257  WRITE_ERROR(TL("Could not load SUMO configuration '") + myFile + "'.");
2258  return false;
2259  }
2260  } catch (const XERCES_CPP_NAMESPACE::XMLException& e) {
2261  WRITE_ERROR(TL("Could not load SUMO configuration '") + myFile + "':\n " + StringUtils::transcode(e.getMessage()));
2262  return false;
2263  }
2264  // relocate files
2265  mySumoOptions.relocateFiles(myFile);
2266  // set loaded files in netedit options
2267  neteditOptions.set("sumocfg-file", myFile);
2268  neteditOptions.set("net-file", mySumoOptions.getString("net-file"));
2269  neteditOptions.set("additional-files", mySumoOptions.getString("additional-files"));
2270  neteditOptions.set("route-files", mySumoOptions.getString("route-files"));
2271  // check if we need to define the configuration file
2272  if (neteditOptions.getString("configuration-file").empty()) {
2273  const auto newConfiguration = StringUtils::replace(neteditOptions.getString("configuration-file"), ".sumocfg", ".netecfg");
2274  neteditOptions.resetWritable();
2275  neteditOptions.set("configuration-file", newConfiguration);
2276  }
2277  return true;
2278 }
2279 
2280 // ---------------------------------------------------------------------------
2281 // GNENeteditConfigHandler - methods
2282 // ---------------------------------------------------------------------------
2283 
2285  myFile(file) {
2286 }
2287 
2288 
2289 bool
2291  // get options
2292  auto& neteditOptions = OptionsCont::getOptions();
2293  // reset options
2294  neteditOptions.resetDefault();
2295  // make all options writables
2296  neteditOptions.resetWritable();
2297  // build parser
2298  XERCES_CPP_NAMESPACE::SAXParser parser;
2299  parser.setValidationScheme(XERCES_CPP_NAMESPACE::SAXParser::Val_Never);
2300  parser.setDisableDefaultEntityResolution(true);
2301  // start the parsing
2302  OptionsLoader handler(neteditOptions);
2303  try {
2304  parser.setDocumentHandler(&handler);
2305  parser.setErrorHandler(&handler);
2306  parser.parse(StringUtils::transcodeToLocal(myFile).c_str());
2307  if (handler.errorOccurred()) {
2308  WRITE_ERROR(TL("Could not load netedit configuration '") + myFile + "'.");
2309  return false;
2310  }
2311  } catch (const XERCES_CPP_NAMESPACE::XMLException& e) {
2312  WRITE_ERROR(TL("Could not load netedit configuration '") + myFile + "':\n " + StringUtils::transcode(e.getMessage()));
2313  return false;
2314  }
2315  // relocate files
2316  neteditOptions.relocateFiles(myFile);
2317  // check if we have loaded a netedit config or a netconvert config
2318  if (neteditOptions.getString("configuration-file").find(".netccfg") != std::string::npos) {
2319  const auto newConfiguration = StringUtils::replace(neteditOptions.getString("configuration-file"), ".netccfg", ".netecfg");
2320  neteditOptions.resetWritable();
2321  neteditOptions.set("configuration-file", newConfiguration);
2322  }
2323  return true;
2324 }
2325 
2326 // ---------------------------------------------------------------------------
2327 // GNEApplicationWindowHelper - methods
2328 // ---------------------------------------------------------------------------
2329 
2330 bool
2332  const int numericalKeyPressed, FXObject* obj, FXSelector sel) {
2333  // finally function correspond to visibleMenuCommands[numericalKeyPressed]
2334  if (menuCheck == viewNet->getNetworkViewOptions().menuCheckToggleGrid) {
2335  // Toggle menuCheckToggleGrid
2336  if (viewNet->getNetworkViewOptions().menuCheckToggleGrid->amChecked() == TRUE) {
2337  // show extra information for tests
2338  WRITE_DEBUG("Disabled toggle show grid through alt + " + toString(numericalKeyPressed + 1));
2339  } else {
2340  // show extra information for tests
2341  WRITE_DEBUG("Enabled toggle show grid through alt + " + toString(numericalKeyPressed + 1));
2342  }
2343  // Call manually onCmdToggleShowGrid
2344  viewNet->onCmdToggleShowGrid(obj, sel, nullptr);
2345  } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckToggleDrawJunctionShape) {
2346  // Toggle menuCheckToggleDrawJunctionShape
2348  // show extra information for tests
2349  WRITE_DEBUG("Disabled draw junction shape through alt + " + toString(numericalKeyPressed + 1));
2350  } else {
2351  // show extra information for tests
2352  WRITE_DEBUG("Enabled draw junction shape through alt + " + toString(numericalKeyPressed + 1));
2353  }
2354  // Call manually onCmdToggleDrawJunctionShape
2355  viewNet->onCmdToggleDrawJunctionShape(obj, sel, nullptr);
2356  } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckDrawSpreadVehicles) {
2357  // Toggle menuCheckDrawSpreadVehicles
2358  if (viewNet->getNetworkViewOptions().menuCheckDrawSpreadVehicles->amChecked() == TRUE) {
2359  // show extra information for tests
2360  WRITE_DEBUG("Disabled toggle draw spread vehicles through alt + " + toString(numericalKeyPressed + 1));
2361  } else {
2362  // show extra information for tests
2363  WRITE_DEBUG("Enabled toggle spread vehicles through alt + " + toString(numericalKeyPressed + 1));
2364  }
2365  // Call manually onCmdToggleDrawSpreadVehicles
2366  viewNet->onCmdToggleDrawSpreadVehicles(obj, sel, nullptr);
2367  } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckShowDemandElements) {
2368  // Toggle menuCheckShowDemandElements
2369  if (viewNet->getNetworkViewOptions().menuCheckShowDemandElements->amChecked() == TRUE) {
2370  // show extra information for tests
2371  WRITE_DEBUG("Disabled show demand elements through alt + " + toString(numericalKeyPressed + 1));
2372  } else {
2373  // show extra information for tests
2374  WRITE_DEBUG("Enabled show demand elements through alt + " + toString(numericalKeyPressed + 1));
2375  }
2376  // Call manually onCmdToggleShowDemandElementsNetwork
2377  viewNet->onCmdToggleShowDemandElementsNetwork(obj, sel, nullptr);
2378  } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckSelectEdges) {
2379  // Toggle menuCheckSelectEdges
2380  if (viewNet->getNetworkViewOptions().menuCheckSelectEdges->amChecked() == TRUE) {
2381  // show extra information for tests
2382  WRITE_DEBUG("Disabled select edges through alt + " + toString(numericalKeyPressed + 1));
2383  } else {
2384  // show extra information for tests
2385  WRITE_DEBUG("Enabled select edges through alt + " + toString(numericalKeyPressed + 1));
2386  }
2387  // Call manually onCmdToggleSelectEdges
2388  viewNet->onCmdToggleSelectEdges(obj, sel, nullptr);
2389  } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckShowConnections) {
2390  // Toggle menuCheckShowConnections
2391  if (viewNet->getNetworkViewOptions().menuCheckShowConnections->amChecked() == TRUE) {
2392  // show extra information for tests
2393  WRITE_DEBUG("Disabled show connections through alt + " + toString(numericalKeyPressed + 1));
2394  } else {
2395  // show extra information for tests
2396  WRITE_DEBUG("Enabled show connections through alt + " + toString(numericalKeyPressed + 1));
2397  }
2398  // Call manually onCmdToggleShowConnections
2399  viewNet->onCmdToggleShowConnections(obj, sel, nullptr);
2400  } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckHideConnections) {
2401  // Toggle menuCheckHideConnections
2402  if (viewNet->getNetworkViewOptions().menuCheckHideConnections->amChecked() == TRUE) {
2403  // show extra information for tests
2404  WRITE_DEBUG("Disabled hide connections through alt + " + toString(numericalKeyPressed + 1));
2405  } else {
2406  // show extra information for tests
2407  WRITE_DEBUG("Enabled hide connections through alt + " + toString(numericalKeyPressed + 1));
2408  }
2409  // Call manually onCmdToggleHideConnections
2410  viewNet->onCmdToggleHideConnections(obj, sel, nullptr);
2411  } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckShowAdditionalSubElements) {
2412  // Toggle menuCheckShowAdditionalSubElements
2414  // show extra information for tests
2415  WRITE_DEBUG("Disabled show additional sub-elements through alt + " + toString(numericalKeyPressed + 1));
2416  } else {
2417  // show extra information for tests
2418  WRITE_DEBUG("Enabled show additional sub-elements through alt + " + toString(numericalKeyPressed + 1));
2419  }
2420  // Call manually onCmdToggleShowAdditionalSubElements
2421  viewNet->onCmdToggleShowAdditionalSubElements(obj, sel, nullptr);
2422  } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckShowTAZElements) {
2423  // Toggle menuCheckShowTAZElements
2424  if (viewNet->getNetworkViewOptions().menuCheckShowTAZElements->amChecked() == TRUE) {
2425  // show extra information for tests
2426  WRITE_DEBUG("Disabled show TAZ elements through alt + " + toString(numericalKeyPressed + 1));
2427  } else {
2428  // show extra information for tests
2429  WRITE_DEBUG("Enabled show TAZ elements through alt + " + toString(numericalKeyPressed + 1));
2430  }
2431  // Call manually onCmdToggleShowTAZElements
2432  viewNet->onCmdToggleShowTAZElements(obj, sel, nullptr);
2433  } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckExtendSelection) {
2434  // Toggle menuCheckExtendSelection
2435  if (viewNet->getNetworkViewOptions().menuCheckExtendSelection->amChecked() == TRUE) {
2436  // show extra information for tests
2437  WRITE_DEBUG("Disabled extend selection through alt + " + toString(numericalKeyPressed + 1));
2438  } else {
2439  // show extra information for tests
2440  WRITE_DEBUG("Enabled extend selection through alt + " + toString(numericalKeyPressed + 1));
2441  }
2442  // Call manually onCmdToggleExtendSelection
2443  viewNet->onCmdToggleExtendSelection(obj, sel, nullptr);
2444  } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckChangeAllPhases) {
2445  // Toggle menuCheckChangeAllPhases
2446  if (viewNet->getNetworkViewOptions().menuCheckChangeAllPhases->amChecked() == TRUE) {
2447  // show extra information for tests
2448  WRITE_DEBUG("Disabled change all phases through alt + " + toString(numericalKeyPressed + 1));
2449  } else {
2450  // show extra information for tests
2451  WRITE_DEBUG("Enabled change all phases through alt + " + toString(numericalKeyPressed + 1));
2452  }
2453  // Call manually onCmdToggleChangeAllPhases
2454  viewNet->onCmdToggleChangeAllPhases(obj, sel, nullptr);
2455  } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckWarnAboutMerge) {
2456  // Toggle menuCheckWarnAboutMerge
2457  if (viewNet->getNetworkViewOptions().menuCheckWarnAboutMerge->amChecked() == TRUE) {
2458  // show extra information for tests
2459  WRITE_DEBUG("Disabled warn about merge through alt + " + toString(numericalKeyPressed + 1));
2460  } else {
2461  // show extra information for tests
2462  WRITE_DEBUG("Enabled warn about merge through alt + " + toString(numericalKeyPressed + 1));
2463  }
2464  // Call manually onCmdToggleWarnAboutMerge
2465  viewNet->onCmdToggleWarnAboutMerge(obj, sel, nullptr);
2466  } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckShowJunctionBubble) {
2467  // Toggle menuCheckShowJunctionBubble
2468  if (viewNet->getNetworkViewOptions().menuCheckShowJunctionBubble->amChecked() == TRUE) {
2469  // show extra information for tests
2470  WRITE_DEBUG("Disabled show junction as bubble through alt + " + toString(numericalKeyPressed + 1));
2471  } else {
2472  // show extra information for tests
2473  WRITE_DEBUG("Enabled show junction as bubble through alt + " + toString(numericalKeyPressed + 1));
2474  }
2475  // Call manually onCmdToggleShowJunctionBubble
2476  viewNet->onCmdToggleShowJunctionBubbles(obj, sel, nullptr);
2477  } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckMoveElevation) {
2478  // Toggle menuCheckMoveElevation
2479  if (viewNet->getNetworkViewOptions().menuCheckMoveElevation->amChecked() == TRUE) {
2480  // show extra information for tests
2481  WRITE_DEBUG("Disabled move elevation through alt + " + toString(numericalKeyPressed + 1));
2482  } else {
2483  // show extra information for tests
2484  WRITE_DEBUG("Enabled move elevation through alt + " + toString(numericalKeyPressed + 1));
2485  }
2486  // Call manually onCmdToggleMoveElevation
2487  viewNet->onCmdToggleMoveElevation(obj, sel, nullptr);
2488  } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckChainEdges) {
2489  // Toggle menuCheckChainEdges
2490  if (viewNet->getNetworkViewOptions().menuCheckChainEdges->amChecked() == TRUE) {
2491  // show extra information for tests
2492  WRITE_DEBUG("Disabled chain edges through alt + " + toString(numericalKeyPressed + 1));
2493  } else {
2494  // show extra information for tests
2495  WRITE_DEBUG("Enabled chain edges through alt + " + toString(numericalKeyPressed + 1));
2496  }
2497  // Call manually onCmdToggleChainEdges
2498  viewNet->onCmdToggleChainEdges(obj, sel, nullptr);
2499  } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckAutoOppositeEdge) {
2500  // Toggle menuCheckAutoOppositeEdge
2501  if (viewNet->getNetworkViewOptions().menuCheckAutoOppositeEdge->amChecked() == TRUE) {
2502  // show extra information for tests
2503  WRITE_DEBUG("Disabled auto opposite edge through alt + " + toString(numericalKeyPressed + 1));
2504  } else {
2505  // show extra information for tests
2506  WRITE_DEBUG("Enabled auto opposite edge through alt + " + toString(numericalKeyPressed + 1));
2507  }
2508  // Call manually onCmdToggleAutoOppositeEdge
2509  viewNet->onCmdToggleAutoOppositeEdge(obj, sel, nullptr);
2510  } else {
2511  return false;
2512  }
2513  return true;
2514 }
2515 
2516 
2517 bool
2518 GNEApplicationWindowHelper::toggleEditOptionsDemand(GNEViewNet* viewNet, const MFXCheckableButton* menuCheck, const int numericalKeyPressed, FXObject* obj, FXSelector sel) {
2519  if (menuCheck == viewNet->getDemandViewOptions().menuCheckToggleGrid) {
2520  // Toggle menuCheckToggleGrid
2521  if (viewNet->getDemandViewOptions().menuCheckToggleGrid->amChecked() == TRUE) {
2522  // show extra information for tests
2523  WRITE_DEBUG("Disabled toggle show grid through alt + " + toString(numericalKeyPressed + 1));
2524  } else {
2525  // show extra information for tests
2526  WRITE_DEBUG("Enabled toggle show grid through alt + " + toString(numericalKeyPressed + 1));
2527  }
2528  // Call manually onCmdToggleShowGrid
2529  viewNet->onCmdToggleShowGrid(obj, sel, nullptr);
2530  } else if (menuCheck == viewNet->getDemandViewOptions().menuCheckToggleDrawJunctionShape) {
2531  // Toggle menuCheckToggleDrawJunctionShape
2533  // show extra information for tests
2534  WRITE_DEBUG("Disabled draw junction shape through alt + " + toString(numericalKeyPressed + 1));
2535  } else {
2536  // show extra information for tests
2537  WRITE_DEBUG("Enabled draw junction shape through alt + " + toString(numericalKeyPressed + 1));
2538  }
2539  // Call manually onCmdToggleDrawJunctionShape
2540  viewNet->onCmdToggleDrawJunctionShape(obj, sel, nullptr);
2541  } else if (menuCheck == viewNet->getDemandViewOptions().menuCheckDrawSpreadVehicles) {
2542  // Toggle menuCheckDrawSpreadVehicles
2543  if (viewNet->getDemandViewOptions().menuCheckDrawSpreadVehicles->amChecked() == TRUE) {
2544  // show extra information for tests
2545  WRITE_DEBUG("Disabled toggle draw spread vehicles through alt + " + toString(numericalKeyPressed + 1));
2546  } else {
2547  // show extra information for tests
2548  WRITE_DEBUG("Enabled toggle spread vehicles through alt + " + toString(numericalKeyPressed + 1));
2549  }
2550  // Call manually onCmdToggleDrawSpreadVehicles
2551  viewNet->onCmdToggleDrawSpreadVehicles(obj, sel, nullptr);
2552  } else if (menuCheck == viewNet->getDemandViewOptions().menuCheckHideShapes) {
2553  // Toggle menuCheckHideShapes
2554  if (viewNet->getDemandViewOptions().menuCheckHideShapes->amChecked() == TRUE) {
2555  // show extra information for tests
2556  WRITE_DEBUG("Disabled hide shapes through alt + " + toString(numericalKeyPressed + 1));
2557  } else {
2558  // show extra information for tests
2559  WRITE_DEBUG("Enabled hide shapes through alt + " + toString(numericalKeyPressed + 1));
2560  }
2561  // Call manually onCmdToggleHideShapes
2562  viewNet->onCmdToggleHideShapes(obj, sel, nullptr);
2563  } else if (menuCheck == viewNet->getDemandViewOptions().menuCheckShowAllTrips) {
2564  // Toggle menuCheckShowAllTrips
2565  if (viewNet->getDemandViewOptions().menuCheckShowAllTrips->amChecked() == TRUE) {
2566  // show extra information for tests
2567  WRITE_DEBUG("Disabled show all trips through alt + " + toString(numericalKeyPressed + 1));
2568  } else {
2569  // show extra information for tests
2570  WRITE_DEBUG("Enabled show all trips through alt + " + toString(numericalKeyPressed + 1));
2571  }
2572  // Call manually onCmdToggleShowTrips
2573  viewNet->onCmdToggleShowTrips(obj, sel, nullptr);
2574  } else if (menuCheck == viewNet->getDemandViewOptions().menuCheckShowAllPersonPlans) {
2575  // Toggle menuCheckShowAllPersonPlans
2576  if (viewNet->getDemandViewOptions().menuCheckShowAllPersonPlans->amChecked() == TRUE) {
2577  // show extra information for tests
2578  WRITE_DEBUG("Disabled show all person plans through alt + " + toString(numericalKeyPressed + 1));
2579  } else {
2580  // show extra information for tests
2581  WRITE_DEBUG("Enabled show all person plans through alt + " + toString(numericalKeyPressed + 1));
2582  }
2583  // Call manually onCmdToggleShowAllPersonPlans
2584  viewNet->onCmdToggleShowAllPersonPlans(obj, sel, nullptr);
2585  } else if (menuCheck == viewNet->getDemandViewOptions().menuCheckLockPerson) {
2586  // Toggle menuCheckShowAllPersonPlans
2587  if (viewNet->getDemandViewOptions().menuCheckLockPerson->amChecked() == TRUE) {
2588  // show extra information for tests
2589  WRITE_DEBUG("Disabled lock person plan through alt + " + toString(numericalKeyPressed + 1));
2590  } else {
2591  // show extra information for tests
2592  WRITE_DEBUG("Enabled lock person plan through alt + " + toString(numericalKeyPressed + 1));
2593  }
2594  // Call manually onCmdToggleLockPerson
2595  viewNet->onCmdToggleLockPerson(obj, sel, nullptr);
2596  } else if (menuCheck == viewNet->getDemandViewOptions().menuCheckShowAllContainerPlans) {
2597  // Toggle menuCheckShowAllContainerPlans
2599  // show extra information for tests
2600  WRITE_DEBUG("Disabled show all container plans through alt + " + toString(numericalKeyPressed + 1));
2601  } else {
2602  // show extra information for tests
2603  WRITE_DEBUG("Enabled show all container plans through alt + " + toString(numericalKeyPressed + 1));
2604  }
2605  // Call manually onCmdToggleShowAllContainerPlans
2606  viewNet->onCmdToggleShowAllContainerPlans(obj, sel, nullptr);
2607  } else if (menuCheck == viewNet->getDemandViewOptions().menuCheckLockContainer) {
2608  // Toggle menuCheckShowAllContainerPlans
2609  if (viewNet->getDemandViewOptions().menuCheckLockContainer->amChecked() == TRUE) {
2610  // show extra information for tests
2611  WRITE_DEBUG("Disabled lock container plan through alt + " + toString(numericalKeyPressed + 1));
2612  } else {
2613  // show extra information for tests
2614  WRITE_DEBUG("Enabled lock container plan through alt + " + toString(numericalKeyPressed + 1));
2615  }
2616  // Call manually onCmdToggleLockContainer
2617  viewNet->onCmdToggleLockContainer(obj, sel, nullptr);
2618  } else if (menuCheck == viewNet->getDemandViewOptions().menuCheckHideNonInspectedDemandElements) {
2619  // Toggle menuCheckHideNonInspectedDemandElements
2621  // show extra information for tests
2622  WRITE_DEBUG("Disabled hide non inspected demand elements through alt + " + toString(numericalKeyPressed + 1));
2623  } else {
2624  // show extra information for tests
2625  WRITE_DEBUG("Enabled hide non inspected demand elements through alt + " + toString(numericalKeyPressed + 1));
2626  }
2627  // Call manually onCmdToggleHideNonInspecteDemandElements
2628  viewNet->onCmdToggleHideNonInspecteDemandElements(obj, sel, nullptr);
2629 
2630  } else if (menuCheck == viewNet->getDemandViewOptions().menuCheckShowOverlappedRoutes) {
2631  // Toggle menuCheckShowOverlappedRoutes
2632  if (viewNet->getDemandViewOptions().menuCheckShowOverlappedRoutes->amChecked() == TRUE) {
2633  // show extra information for tests
2634  WRITE_DEBUG("Disabled show overlapped routes through alt + " + toString(numericalKeyPressed + 1));
2635  } else {
2636  // show extra information for tests
2637  WRITE_DEBUG("Enabled show overlapped routes through alt + " + toString(numericalKeyPressed + 1));
2638  }
2639  // Call manually onCmdToggleHideNonInspecteDemandElements
2640  viewNet->onCmdToggleShowOverlappedRoutes(obj, sel, nullptr);
2641  } else {
2642  return false;
2643  }
2644  return true;
2645 }
2646 
2647 
2648 bool
2649 GNEApplicationWindowHelper::toggleEditOptionsData(GNEViewNet* viewNet, const MFXCheckableButton* menuCheck, const int numericalKeyPressed, FXObject* obj, FXSelector sel) {
2650  if (menuCheck == viewNet->getDataViewOptions().menuCheckToggleDrawJunctionShape) {
2651  // Toggle menuCheckToggleDrawJunctionShape
2653  // show extra information for tests
2654  WRITE_DEBUG("Disabled draw junction shape through alt + " + toString(numericalKeyPressed + 1));
2655  } else {
2656  // show extra information for tests
2657  WRITE_DEBUG("Enabled draw junction shape through alt + " + toString(numericalKeyPressed + 1));
2658  }
2659  // Call manually onCmdToggleDrawJunctionShape
2660  viewNet->onCmdToggleDrawJunctionShape(obj, sel, nullptr);
2661  } else if (menuCheck == viewNet->getDataViewOptions().menuCheckShowAdditionals) {
2662  // Toggle menuCheckHideShapes
2663  if (viewNet->getDataViewOptions().menuCheckShowAdditionals->amChecked() == TRUE) {
2664  // show extra information for tests
2665  WRITE_DEBUG("Disabled show additionals through alt + " + toString(numericalKeyPressed + 1));
2666  } else {
2667  // show extra information for tests
2668  WRITE_DEBUG("Enabled show shapes through alt + " + toString(numericalKeyPressed + 1));
2669  }
2670  // Call manually onCmdToggleShowAdditionals
2671  viewNet->onCmdToggleShowAdditionals(obj, sel, nullptr);
2672  } else if (menuCheck == viewNet->getDataViewOptions().menuCheckShowShapes) {
2673  // Toggle menuCheckHideShapes
2674  if (viewNet->getDataViewOptions().menuCheckShowShapes->amChecked() == TRUE) {
2675  // show extra information for tests
2676  WRITE_DEBUG("Disabled show shapes through alt + " + toString(numericalKeyPressed + 1));
2677  } else {
2678  // show extra information for tests
2679  WRITE_DEBUG("Enabled show shapes through alt + " + toString(numericalKeyPressed + 1));
2680  }
2681  // Call manually onCmdToggleShowShapes
2682  viewNet->onCmdToggleShowShapes(obj, sel, nullptr);
2683  } else if (menuCheck == viewNet->getDataViewOptions().menuCheckShowDemandElements) {
2684  // Toggle menuCheckShowDemandElements
2685  if (viewNet->getDataViewOptions().menuCheckShowDemandElements->amChecked() == TRUE) {
2686  // show extra information for tests
2687  WRITE_DEBUG("Disabled show demand elements through alt + " + toString(numericalKeyPressed + 1));
2688  } else {
2689  // show extra information for tests
2690  WRITE_DEBUG("Enabled show demand elements through alt + " + toString(numericalKeyPressed + 1));
2691  }
2692  // Call manually onCmdToggleShowDemandElementsData
2693  viewNet->onCmdToggleShowDemandElementsData(obj, sel, nullptr);
2694  } else if (menuCheck == viewNet->getDataViewOptions().menuCheckToggleTAZRelDrawing) {
2695  // Toggle menuCheckToggleTAZRelDrawing
2696  if (viewNet->getDataViewOptions().menuCheckToggleTAZRelDrawing->amChecked() == TRUE) {
2697  // show extra information for tests
2698  WRITE_DEBUG("Disabled toggle TAXRel drawing through alt + " + toString(numericalKeyPressed + 1));
2699  } else {
2700  // show extra information for tests
2701  WRITE_DEBUG("Enabled toggle TAXRel drawing through alt + " + toString(numericalKeyPressed + 1));
2702  }
2703  // Call manually onCmdToggleTAZRelDrawing
2704  viewNet->onCmdToggleTAZRelDrawing(obj, sel, nullptr);
2705  } else if (menuCheck == viewNet->getDataViewOptions().menuCheckToggleTAZDrawFill) {
2706  // Toggle menuCheckToggleTAZDrawFill
2707  if (viewNet->getDataViewOptions().menuCheckToggleTAZDrawFill->amChecked() == TRUE) {
2708  // show extra information for tests
2709  WRITE_DEBUG("Disabled toggle TAZ draw fill through alt + " + toString(numericalKeyPressed + 1));
2710  } else {
2711  // show extra information for tests
2712  WRITE_DEBUG("Enabled toggle TAZ draw fill through alt + " + toString(numericalKeyPressed + 1));
2713  }
2714  // Call manually onCmdToggleTAZDrawFill
2715  viewNet->onCmdToggleTAZDrawFill(obj, sel, nullptr);
2716  } else if (menuCheck == viewNet->getDataViewOptions().menuCheckToggleTAZRelOnlyFrom) {
2717  // Toggle menuCheckToggleTAZRelOnlyFrom
2718  if (viewNet->getDataViewOptions().menuCheckToggleTAZRelOnlyFrom->amChecked() == TRUE) {
2719  // show extra information for tests
2720  WRITE_DEBUG("Disabled toggle TAZRel only from through alt + " + toString(numericalKeyPressed + 1));
2721  } else {
2722  // show extra information for tests
2723  WRITE_DEBUG("Enabled toggle TAZRel only from through alt + " + toString(numericalKeyPressed + 1));
2724  }
2725  // Call manually onCmdToggleTAZRelOnlyFrom
2726  viewNet->onCmdToggleTAZRelOnlyFrom(obj, sel, nullptr);
2727  } else if (menuCheck == viewNet->getDataViewOptions().menuCheckToggleTAZRelOnlyTo) {
2728  // Toggle menuCheckToggleTAZRelOnlyTo
2729  if (viewNet->getDataViewOptions().menuCheckToggleTAZRelOnlyTo->amChecked() == TRUE) {
2730  // show extra information for tests
2731  WRITE_DEBUG("Disabled toggle TAZRel only to through alt + " + toString(numericalKeyPressed + 1));
2732  } else {
2733  // show extra information for tests
2734  WRITE_DEBUG("Enabled toggle TAZRel only to through alt + " + toString(numericalKeyPressed + 1));
2735  }
2736  // Call manually onCmdToggleTAZRelOnlyTo
2737  viewNet->onCmdToggleTAZRelOnlyTo(obj, sel, nullptr);
2738  } else {
2739  return false;
2740  }
2741  return true;
2742 }
2743 
2744 
2745 bool
2746 GNEApplicationWindowHelper::stringEndsWith(const std::string& str, const std::string& suffix) {
2747  if (str.length() < suffix.length()) {
2748  return false;
2749  } else {
2750  return str.compare(str.length() - suffix.length(), suffix.length(), suffix) == 0;
2751  }
2752 }
2753 
2754 
2755 std::string
2756 GNEApplicationWindowHelper::openFileDialog(FXWindow* window, bool save, bool multi) {
2757  if (save) {
2758  return openFileDialog(window, TL("Save file as"), GUIIcon::SAVE,
2759  TL("XML files (*.xml)") + std::string("\n") +
2760  TL("All files (*)"), save, multi);
2761  } else {
2762  return openFileDialog(window, TL("Open file"), GUIIcon::OPEN_SUMOCONFIG,
2763  TL("XML files (*.xml)") + std::string("\n") +
2764  TL("All files (*)"), save, multi);
2765  }
2766 }
2767 
2768 
2769 std::string
2770 GNEApplicationWindowHelper::openNetworkFileDialog(FXWindow* window, bool save, bool multi) {
2771  if (save) {
2772  return openFileDialog(window, TL("Save Network file as"), GUIIcon::SAVE_NETWORKELEMENTS,
2773  TL("SUMO Network files (*.net.xml)") + std::string("\n") +
2774  TL("SUMO Network files zipped (*.net.xml.gz)") + std::string("\n") +
2775  TL("XML files (*.xml)\nAll files (*)"), save, multi);
2776  } else {
2777  return openFileDialog(window, TL("Open Network file"), GUIIcon::OPEN_NET,
2778  TL("SUMO Network files (*.net.xml,*.net.xml.gz)") + std::string("\n") +
2779  TL("XML files (*.xml)") + std::string("\n") +
2780  TL("All files (*)"), save, multi);
2781  }
2782 }
2783 
2784 
2785 std::string
2787  return openFileDialog(window, TL("Open NetConvert file"), GUIIcon::OPEN_NET,
2788  TL("Netconvert files (*.netccfg)") + std::string("\n") +
2789  TL("XML files (*.xml)") + std::string("\n") +
2790  TL("All files (*)"), false);
2791 }
2792 
2793 
2794 std::string
2796  return openFileDialog(window, TL("Save plain XML as"), GUIIcon::SAVE,
2797  TL("XML files (*.xml)") + std::string("\n") +
2798  TL("All files (*)"), true);
2799 }
2800 
2801 
2802 std::string
2804  return openFileDialog(window, TL("Save joined Junctions as"), GUIIcon::SAVE,
2805  TL("Junction files (*.nod.xml)") + std::string("\n") +
2806  TL("XML files (*.xml)") + std::string("\n") +
2807  TL("All files (*)"), true);
2808 }
2809 
2810 
2811 std::string
2813  return openFileDialog(window, TL("Save tool log"), GUIIcon::SAVE,
2814  TL("Text file (*.txt)") + std::string("\n") +
2815  TL("All files (*)"), true);
2816 }
2817 
2818 
2819 std::string
2821  return openFileDialog(window, TL("Open OSM file"), GUIIcon::OPEN_NET,
2822  TL("OSM net (*.osm.xml,*.osm)"), false);
2823 }
2824 
2825 
2826 std::string
2828  if (save) {
2829  return openFileDialog(window, TL("Save netedit Config file as"), GUIIcon::SAVE_NETEDITCONFIG,
2830  TL("Netedit Config files (*.netecfg)") + std::string("\n") +
2831  TL("All files (*)"), save);
2832  } else {
2833  return openFileDialog(window, TL("Open netedit Config file"), GUIIcon::OPEN_NETEDITCONFIG,
2834  TL("Netedit Config files (*.netecfg)") + std::string("\n") +
2835  TL("Netedit Config files (*.neteditcfg)") + std::string("\n") + // neteditcfg deprecated
2836  TL("All files (*)"), save);
2837  }
2838 }
2839 
2840 
2841 std::string
2842 GNEApplicationWindowHelper::openSumoConfigFileDialog(FXWindow* window, bool save, bool multi) {
2843  if (save) {
2844  return openFileDialog(window, TL("Save SUMO Config file as"), GUIIcon::SAVE_SUMOCONFIG,
2845  TL("SUMO Config files (*.sumocfg)") + std::string("\n") +
2846  TL("All files (*)"), save, multi);
2847  } else {
2848  return openFileDialog(window, TL("Open SUMO Config file"), GUIIcon::OPEN_SUMOCONFIG,
2849  TL("SUMO Config files (*.sumocfg)") + std::string("\n") +
2850  TL("All files (*)"), save, multi);
2851  }
2852 }
2853 
2854 
2855 std::string
2857  if (save) {
2858  return openFileDialog(window, TL("Save TLS file as"), GUIIcon::SAVE_NETWORKELEMENTS,
2859  TL("TLS files (*.tll.xml)") + std::string("\n") +
2860  TL("XML files (*.xml)") + std::string("\n") +
2861  TL("All files (*)"), save);
2862  } else {
2863  return openFileDialog(window, TL("Open TLS file"), GUIIcon::OPEN_TLSPROGRAMS,
2864  TL("TLS files (*.tll.xml)") + std::string("\n") +
2865  TL("XML files (*.xml)") + std::string("\n") +
2866  TL("All files (*)"), save);
2867  }
2868 }
2869 
2870 
2871 std::string
2873  if (save) {
2874  return openFileDialog(window, TL("Save EdgeType file as"), GUIIcon::SAVE_NETWORKELEMENTS,
2875  TL("EdgeType files (*.typ.xml)") + std::string("\n") +
2876  TL("XML files (*.xml)") + std::string("\n") +
2877  TL("All files (*)"), save);
2878  } else {
2879  return openFileDialog(window, TL("Open EdgeType file"), GUIIcon::OPEN_NET,
2880  TL("EdgeType files (*.typ.xml)") + std::string("\n") +
2881  TL("XML files (*.xml)") + std::string("\n") +
2882  TL("All files (*)"), save);
2883  }
2884 }
2885 
2886 
2887 std::string
2888 GNEApplicationWindowHelper::openAdditionalFileDialog(FXWindow* window, bool save, bool multi) {
2889  if (save) {
2890  return openFileDialog(window, TL("Save Additionals file as"), GUIIcon::SAVE_ADDITIONALELEMENTS,
2891  TL("Additional files (*.add.xml)") + std::string("\n") +
2892  TL("XML files (*.xml)") + std::string("\n") +
2893  TL("All files (*)"), save, multi);
2894  } else {
2895  return openFileDialog(window, TL("Open Additionals file"), GUIIcon::MODEADDITIONAL,
2896  TL("Additional files (*.add.xml)") + std::string("\n") +
2897  TL("XML files (*.xml)") + std::string("\n") +
2898  TL("All files (*)"), save, multi);
2899  }
2900 }
2901 
2902 
2903 std::string
2904 GNEApplicationWindowHelper::openRouteFileDialog(FXWindow* window, bool save, bool multi) {
2905  if (save) {
2906  return openFileDialog(window, TL("Save Route file as"), GUIIcon::SAVE_DEMANDELEMENTS,
2907  TL("Route files (*.rou.xml)") + std::string("\n") +
2908  TL("XML files (*.xml)") + std::string("\n") +
2909  TL("All files (*)"), save, multi);
2910  } else {
2911  return openFileDialog(window, TL("Open Route file"), GUIIcon::SUPERMODEDEMAND,
2912  TL("Route files (*.rou.xml)") + std::string("\n") +
2913  TL("XML files (*.xml)") + std::string("\n") +
2914  TL("All files (*)"), save, multi);
2915  }
2916 }
2917 
2918 
2919 std::string
2920 GNEApplicationWindowHelper::openDataFileDialog(FXWindow* window, bool save, bool multi) {
2921  if (save) {
2922  return openFileDialog(window, TL("Save Data file as"), GUIIcon::SAVE_DATAELEMENTS,
2923  TL("Data files (*.dat.xml)") + std::string("\n") +
2924  TL("XML files (*.xml)") + std::string("\n") +
2925  TL("All files (*)"), save, multi);
2926  } else {
2927  return openFileDialog(window, TL("Open Data file"), GUIIcon::SUPERMODEDATA,
2928  TL("Data files (*.dat.xml)") + std::string("\n") +
2929  TL("XML files (*.xml)") + std::string("\n") +
2930  TL("All files (*)"), save, multi);
2931  }
2932 }
2933 
2934 
2935 std::string
2936 GNEApplicationWindowHelper::openMeanDataDialog(FXWindow* window, bool save, bool multi) {
2937  if (save) {
2938  return openFileDialog(window, TL("Save MeanData file as"), GUIIcon::SAVE_MEANDATAELEMENTS,
2939  TL("Meandata files (*.add.xml)") + std::string("\n") +
2940  TL("XML files (*.xml)") + std::string("\n") +
2941  TL("All files (*)"), save, multi);
2942  } else {
2943  return openFileDialog(window, TL("Open MeanData file"), GUIIcon::MODEMEANDATA,
2944  TL("Meandata files (*.add.xml)") + std::string("\n") +
2945  TL("XML files (*.xml)") + std::string("\n") +
2946  TL("All files (*)"), save, multi);
2947  }
2948 }
2949 
2950 
2951 std::string
2953  if (save) {
2954  return openFileDialog(window, TL("Save options file as"), GUIIcon::SAVE,
2955  TL("XML files (*.xml)") + std::string("\n") +
2956  TL("All files (*)"), save);
2957  } else {
2958  return openFileDialog(window, TL("Open options file"), GUIIcon::OPEN,
2959  TL("XML files (*.xml)") + std::string("\n") +
2960  TL("All files (*)"), save);
2961  }
2962 }
2963 
2964 
2965 std::string
2966 GNEApplicationWindowHelper::openFileDialog(FXWindow* window, const std::string title,
2967  GUIIcon icon, const std::string patternList, bool save, bool multi) {
2968  // write title information
2969  WRITE_DEBUG(title);
2970  // configure open dialog
2971  FXFileDialog opendialog(window, title.c_str());
2972  // check if allow to create a new file, or select only existent files
2973  if (save) {
2974  opendialog.setSelectMode(SELECTFILE_ANY);
2975  } else {
2976  if (multi) {
2977  opendialog.setSelectMode(SELECTFILE_MULTIPLE);
2978  } else {
2979  opendialog.setSelectMode(SELECTFILE_EXISTING);
2980  }
2981  }
2982  // set icon and pattern list
2983  opendialog.setIcon(GUIIconSubSys::getIcon(icon));
2984  opendialog.setPatternList(patternList.c_str());
2985  // set current folder
2986  if (gCurrentFolder.length() != 0) {
2987  opendialog.setDirectory(gCurrentFolder);
2988  }
2989  // open dialog
2990  if (opendialog.execute()) {
2991  // continue depending if we're loading or saving
2992  if (save) {
2993  // check if overwritte file
2994  if (MFXUtils::userPermitsOverwritingWhenFileExists(window, opendialog.getFilename())) {
2995  // close save dialog
2996  WRITE_DEBUG("Close save dialog sucesfully");
2997  // udpate current folder
2998  gCurrentFolder = opendialog.getDirectory();
2999  // assureExtension
3000  return MFXUtils::assureExtension(opendialog.getFilename(),
3001  opendialog.getPatternText(opendialog.getCurrentPattern()).after('.').before(')')).text();
3002  } else {
3003  // close additional dialog
3004  WRITE_DEBUG("Abort overwritte file");
3005  // return empty file
3006  return "";
3007  }
3008  } else {
3009  // close load dialog
3010  WRITE_DEBUG("Close load dialog sucesfully");
3011  // udpate current folder
3012  gCurrentFolder = opendialog.getDirectory();
3013  // return file
3014  if (multi) {
3015  FXString* files = opendialog.getFilenames();
3016  std::string result;
3017  bool first = true;
3018  if (files != nullptr) {
3019  for (int i = 0; !files[i].empty(); i++) {
3020  if (first) {
3021  first = false;
3022  } else {
3023  result += " ";
3024  }
3025  result += files[i].text();
3026  }
3027  delete [] files;
3028 
3029  }
3030  return result;
3031  } else {
3032  return opendialog.getFilename().text();
3033  }
3034  }
3035  } else {
3036  // close additional dialog
3037  WRITE_DEBUG("Abort dialog");
3038  // return empty file
3039  return "";
3040  }
3041 }
3042 
3043 /****************************************************************************/
Supermode
@brie enum for supermodes
@ NETWORK
Network mode (Edges, junctions, etc..)
@ DATA
Data mode (edgeData, LaneData etc..)
@ DEMAND
Demand mode (Routes, Vehicles etc..)
@ MID_GNE_NETWORKVIEWOPTIONS_AUTOOPPOSITEEDGES
automatically create opposite edge
Definition: GUIAppEnum.h:838
@ MID_GNE_NETGENERATE
netgenerate dialog
Definition: GUIAppEnum.h:756
@ MID_HOTKEY_SHIFT_F10_SUMOOPTIONSMENU
open SUMO options menu (used in netedit)
Definition: GUIAppEnum.h:272
@ MID_HOTKEY_SHIFT_F7_ADJUST_PERSON_PLANS
Adjust person plans (start und end positions, arrival positions, etc.)
Definition: GUIAppEnum.h:270
@ MID_HOTKEY_SHIFT_F5_COMPUTEJUNCTIONS_VOLATILE
compute junctions with volatile options
Definition: GUIAppEnum.h:268
@ MID_HOTKEY_CTRL_SHIFT_B_SAVEDATAELEMENTS
save Data Elements
Definition: GUIAppEnum.h:204
@ MID_HOTKEY_F3_SUPERMODE_DEMAND
select demand supermode in netedit
Definition: GUIAppEnum.h:234
@ MID_GNE_UNDOLISTDIALOG
open undo list dialog
Definition: GUIAppEnum.h:1573
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWALLPERSONPLANS
show all person plans
Definition: GUIAppEnum.h:870
@ MID_GNE_UNLOCK_ALLELEMENTS
unlock all element
Definition: GUIAppEnum.h:848
@ MID_HOTKEY_SHIFT_S_LOCATESTOP
Locate stop - button.
Definition: GUIAppEnum.h:188
@ MID_HOTKEY_CTRL_T_OPENNETEDIT_OPENSUMO
Open current SUMO simulation/network in netedit, or current netedit simulation/network in SUMO.
Definition: GUIAppEnum.h:123
@ MID_GNE_DATAVIEWOPTIONS_TAZRELDRAWING
toggle TAZRel drawing
Definition: GUIAppEnum.h:894
@ MID_GNE_TOGGLE_COMPUTE_NETWORK_DATA
enable/disable computing after switchin between supermodes
Definition: GUIAppEnum.h:790
@ MID_TOOLBAREDIT_LOADADDITIONALS
load additionals in sumo-gui/netedit after press ctrl+T
Definition: GUIAppEnum.h:676
@ MID_HOTKEY_U_MODE_DECAL_TYPEDISTRIBUTION
hotkey for mode decal AND type distribution
Definition: GUIAppEnum.h:69
@ MID_GNE_NETWORKVIEWOPTIONS_DRAWSPREADVEHICLES
Draw vehicles in begin position or spread in lane.
Definition: GUIAppEnum.h:812
@ MID_HOTKEY_CTRL_Y_REDO
Undo.
Definition: GUIAppEnum.h:133
@ MID_HOTKEY_CTRL_SHIFT_H_SAVEEDGETYPES
save Edge Types
Definition: GUIAppEnum.h:212
@ MID_GNE_NETWORKVIEWOPTIONS_MOVEELEVATION
move elevation instead of x,y
Definition: GUIAppEnum.h:834
@ MID_GNE_TOOLBARFILE_RELOAD_EDGETYPES
reload edge types
Definition: GUIAppEnum.h:728
@ MID_GNE_NETWORKVIEWOPTIONS_HIDECONNECTIONS
hide connections
Definition: GUIAppEnum.h:820
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWCONNECTIONS
show connections
Definition: GUIAppEnum.h:818
@ MID_GNE_DATAVIEWOPTIONS_TAZRELONLYTO
toggle draw TAZRel only to
Definition: GUIAppEnum.h:900
@ MID_HOTKEY_CTRL_W_CLOSESIMULATION
Close simulation - ID.
Definition: GUIAppEnum.h:129
@ MID_GNE_LOCK_ALLELEMENTS
lock all element
Definition: GUIAppEnum.h:846
@ MID_HOTKEY_F7_JOIN_SELECTEDJUNCTIONS_ROUTES
join selected junctions in network mode and normalice demand element ids in demand mode
Definition: GUIAppEnum.h:242
@ MID_HOTKEY_CTRL_D_SINGLESIMULATIONSTEP_OPENDEMANDELEMENTS
Perform a single simulation step in SUMO and open Demand Elements in netedit.
Definition: GUIAppEnum.h:89
@ MID_HOTKEY_F5_COMPUTE_NETWORK_DEMAND
compute Network in network mode and Demand elements in demand mode
Definition: GUIAppEnum.h:238
@ MID_HOTKEY_CTRL_O_OPENSIMULATION_OPENNETWORK
Open simulation in SUMO and open network in netedit.
Definition: GUIAppEnum.h:111
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWTAZELEMENTS
show TAZ elements
Definition: GUIAppEnum.h:824
@ MID_GNE_DEMANDVIEWOPTIONS_LOCKPERSON
lock person
Definition: GUIAppEnum.h:872
@ MID_HOTKEY_Z_MODE_TAZ_TAZREL
hotkey for mode editing TAZ and TAZRel
Definition: GUIAppEnum.h:75
@ MID_HOTKEY_F9_EDIT_VIEWSCHEME
open edit scheme menu
Definition: GUIAppEnum.h:246
@ MID_GNE_DEMANDVIEWOPTIONS_TOGGLEDRAWJUNCTIONSHAPE
toggle draw junction shape
Definition: GUIAppEnum.h:860
@ MID_GNE_LOCK_SELECTEDELEMENTS
lock selected element
Definition: GUIAppEnum.h:850
@ MID_GNE_TOOLBARFILE_SAVESUMOCONFIG_AS
save SUMOConfig as
Definition: GUIAppEnum.h:712
@ MID_GNE_TOOLBARFILE_RELOAD_TLSPROGRAMS
reload TLS Programs
Definition: GUIAppEnum.h:724
@ MID_HOTKEY_A_MODE_STARTSIMULATION_ADDITIONALS_STOPS
hotkey for start simulation in SUMO and set editing mode additionals AND stops in netedit
Definition: GUIAppEnum.h:43
@ MID_CHANGELOG
changelog button
Definition: GUIAppEnum.h:650
@ MID_GNE_NETWORKVIEWOPTIONS_ASKFORMERGE
ask before merging junctions
Definition: GUIAppEnum.h:830
@ MID_GNE_TOOLBARFILE_OPENFOREIGN
open foreign network
Definition: GUIAppEnum.h:702
@ MID_GNE_TOOLBARFILE_RELOAD_NETEDITCONFIG
reload neteditConfig
Definition: GUIAppEnum.h:706
@ MID_HOTKEY_CTRL_B_EDITBREAKPOINT_OPENDATAELEMENTS
Edit simulation breakpoints in SUMO and open Data Elements in netedit.
Definition: GUIAppEnum.h:85
@ MID_TOOLBAREDIT_LOADDEMAND
load demand in sumo-gui/netedit after press ctrl+T
Definition: GUIAppEnum.h:678
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWGRID
show grid
Definition: GUIAppEnum.h:858
@ MID_HOTKEY_F1_ONLINEDOCUMENTATION
open online documentation
Definition: GUIAppEnum.h:230
@ MID_HOTKEY_CTRL_SHIFT_D_SAVEDEMANDELEMENTS
Save Demand Elements.
Definition: GUIAppEnum.h:208
@ MID_HOTKEY_CTRL_R_RELOAD
Reload the previously loaded simulation.
Definition: GUIAppEnum.h:119
@ MID_HOTKEY_CTRL_S_STOPSIMULATION_SAVENETWORK
Stop the simulation in SUMO and save network in netedit.
Definition: GUIAppEnum.h:117
@ MID_GNE_TOOLBARFILE_RELOAD_MEANDATAS
reload meanDatas
Definition: GUIAppEnum.h:742
@ MID_HOTKEY_D_MODE_SINGLESIMULATIONSTEP_DELETE
hotkey for perform a single simulation step in SUMO and set delete mode in netedit
Definition: GUIAppEnum.h:49
@ MID_GNE_NETWORKVIEWOPTIONS_CHAINEDGES
create edges in chain mode
Definition: GUIAppEnum.h:836
@ MID_GNE_TOOLBARFILE_SAVEDATA_AS
save data elements as
Definition: GUIAppEnum.h:734
@ MID_HOTKEY_F10_OPTIONSMENU
open options menu
Definition: GUIAppEnum.h:248
@ MID_HOTKEY_F11_FRONTELEMENT
set/clear front element
Definition: GUIAppEnum.h:250
@ MID_HOTKEY_F8_CLEANINVALID_CROSSINGS_DEMANDELEMENTS
clean invalid crossings in network mode and demand elements in demand mode
Definition: GUIAppEnum.h:244
@ MID_GNE_DATAVIEWOPTIONS_SHOWDEMANDELEMENTS
show demand elements
Definition: GUIAppEnum.h:892
@ MID_HOTKEY_C_MODE_CONNECT_CONTAINER
hotkey for mode connecting lanes AND container
Definition: GUIAppEnum.h:45
@ MID_HOTKEY_H_MODE_PROHIBITION_CONTAINERPLAN
hotkey for mode prohibition AND container plan
Definition: GUIAppEnum.h:53
@ MID_HOTKEY_SHIFT_O_LOCATEPOI
Locate poi - button.
Definition: GUIAppEnum.h:182
@ MID_HOTKEY_W_MODE_WIRE_ROUTEDISTRIBUTION
hotkey for mode editing overhead wires AND route distributions
Definition: GUIAppEnum.h:73
@ MID_HOTKEY_T_MODE_TLS_TYPE
hotkey for mode editing TLS AND Vehicle Types
Definition: GUIAppEnum.h:67
@ MID_GNE_DEMANDVIEWOPTIONS_HIDESHAPES
hide shapes
Definition: GUIAppEnum.h:866
@ MID_HOTKEY_SHIFT_A_LOCATEADDITIONAL
Locate additional structure - button.
Definition: GUIAppEnum.h:172
@ MID_GNE_TOOLBARFILE_SAVETLSPROGRAMS_AS
save TLS Programs as
Definition: GUIAppEnum.h:722
@ MID_GNE_DATAVIEWOPTIONS_SHOWADDITIONALS
show additionals
Definition: GUIAppEnum.h:888
@ MID_HOTKEY_SHIFT_R_LOCATEROUTE
Locate route - button.
Definition: GUIAppEnum.h:186
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWBUBBLES
show junctions as bubbles
Definition: GUIAppEnum.h:832
@ MID_HOTKEY_SHIFT_W_LOCATEWALKINGAREA
Locate edge - button.
Definition: GUIAppEnum.h:194
@ MID_GNE_TOOLBARFILE_RELOAD_DEMANDELEMENTS
reload demand elements
Definition: GUIAppEnum.h:732
@ MID_GNE_NETWORKVIEWOPTIONS_EXTENDSELECTION
extend selection
Definition: GUIAppEnum.h:826
@ MID_HOTKEY_CTRL_I_EDITVIEWPORT
Open viewport editor.
Definition: GUIAppEnum.h:99
@ MID_RECENTFILE
Loads a file previously loaded.
Definition: GUIAppEnum.h:316
@ MID_HOTKEY_S_MODE_STOPSIMULATION_SELECT
hotkey for stop simulation in SUMO and set select mode in netedit
Definition: GUIAppEnum.h:63
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWSUBADDITIONALS
show sub-additionals
Definition: GUIAppEnum.h:822
@ MID_HOTKEY_SHIFT_C_LOCATECONTAINER
Locate container - button.
Definition: GUIAppEnum.h:174
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWALLCONTAINERPLANS
show all container plans
Definition: GUIAppEnum.h:874
@ MID_HOTKEY_CTRL_SHIFT_N_NEWWINDOW
open a new window (SUMO AND netedit)
Definition: GUIAppEnum.h:218
@ MID_HOTKEY_SHIFT_V_LOCATEVEHICLE
Locate vehicle - button.
Definition: GUIAppEnum.h:192
@ MID_HOTKEY_F4_SUPERMODE_DATA
select data supermode in netedit
Definition: GUIAppEnum.h:236
@ MID_HOTKEY_SHIFT_L_LOCATEPOLY
Locate polygons - button.
Definition: GUIAppEnum.h:180
@ MID_HOTKEY_F6_CLEAN_SOLITARYJUNCTIONS_UNUSEDROUTES
clean junctions without edges in network mode and unused routes in demand mode
Definition: GUIAppEnum.h:240
@ MID_HOTKEY_CTRL_K_OPENTLSPROGRAMS
Load file with TLS Programs.
Definition: GUIAppEnum.h:103
@ MID_GNE_LOCK_ELEMENT
lock element
Definition: GUIAppEnum.h:844
@ MID_GNE_TOOLBARFILE_SAVENETEDITCONFIG_AS
save neteditConfig as
Definition: GUIAppEnum.h:708
@ MID_HOTKEY_SHIFT_E_LOCATEEDGE
Locate edge - button.
Definition: GUIAppEnum.h:176
@ MID_CLEARMESSAGEWINDOW
Clear simulation output.
Definition: GUIAppEnum.h:365
@ MID_GNE_TOOLBARFILE_OPENMEANDATAS
open meanData file
Definition: GUIAppEnum.h:738
@ MID_HOTKEY_R_MODE_CROSSING_ROUTE_EDGERELDATA
hotkey for mode editing crossing, routes and edge rel datas
Definition: GUIAppEnum.h:65
@ MID_TUTORIAL
tutorial button
Definition: GUIAppEnum.h:654
@ MID_GNE_DATAVIEWOPTIONS_TAZDRAWFILL
toggle draw TAZ fill
Definition: GUIAppEnum.h:896
@ MID_HOTKEY_CTRL_SHIFT_M_SAVEMEANDATAS
save Mean Datas
Definition: GUIAppEnum.h:216
@ MID_HOTKEY_L_MODE_PERSONPLAN
hotkey for mode person plan
Definition: GUIAppEnum.h:57
@ MID_GNE_TOOLBARFILE_SAVEMEANDATAS_AS
save meanDatas as
Definition: GUIAppEnum.h:740
@ MID_GNE_TOOLBARFILE_RELOAD_ADDITIONALS
reload additionals
Definition: GUIAppEnum.h:720
@ MID_HOTKEY_V_MODE_VEHICLE
hotkey for mode create vehicles
Definition: GUIAppEnum.h:71
@ MID_HOTKEY_SHIFT_P_LOCATEPERSON
Locate person - button.
Definition: GUIAppEnum.h:184
@ MID_HOTKEY_I_MODE_INSPECT
hotkey for mode inspecting object attributes
Definition: GUIAppEnum.h:55
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWDEMANDELEMENTS
show demand elements
Definition: GUIAppEnum.h:814
@ MID_HOTKEY_SHIFT_J_LOCATEJUNCTION
Locate junction - button.
Definition: GUIAppEnum.h:178
@ MID_HOTKEY_CTRL_SHIFT_E_SAVENETEDITCONFIG
save netedit Config
Definition: GUIAppEnum.h:210
@ MID_GNE_TOOLBARFILE_SAVEADDITIONALS_AS
save additionals as
Definition: GUIAppEnum.h:716
@ MID_GNE_TOOLBARFILE_SAVEEDGETYPES_AS
save edgeTypes as
Definition: GUIAppEnum.h:726
@ MID_HOTKEYS
hotkeys button
Definition: GUIAppEnum.h:652
@ MID_GNE_DEMANDVIEWOPTIONS_HIDENONINSPECTED
hide non-inspected demand element
Definition: GUIAppEnum.h:864
@ MID_HOTKEY_CTRL_SHIFT_A_SAVEADDITIONALS
Save Additional Elements.
Definition: GUIAppEnum.h:202
@ MID_GNE_TOOLBARFILE_RELOADNETWORK
reload only network
Definition: GUIAppEnum.h:700
@ MID_GNE_NETWORKVIEWOPTIONS_CHANGEALLPHASES
change all phases
Definition: GUIAppEnum.h:828
@ MID_HOTKEY_CTRL_A_STARTSIMULATION_OPENADDITIONALS
Start the simulation in SUMO and open Additionals Elements in netedit.
Definition: GUIAppEnum.h:83
@ MID_GNE_DATAVIEWOPTIONS_SHOWSHAPES
show shapes
Definition: GUIAppEnum.h:890
@ MID_HOTKEY_E_MODE_EDGE_EDGEDATA
hotkey for mode adding edges AND edgeDatas
Definition: GUIAppEnum.h:51
@ MID_GNE_DATAVIEWOPTIONS_TAZRELONLYFROM
toggle draw TAZRel only from
Definition: GUIAppEnum.h:898
@ MID_GNE_TOOLBARFILE_RELOAD_SUMOCONFIG
reload SUMOConfig
Definition: GUIAppEnum.h:710
@ MID_GNE_NETWORKVIEWOPTIONS_TOGGLEDRAWJUNCTIONSHAPE
toggle draw junction shape
Definition: GUIAppEnum.h:810
@ MID_HOTKEY_CTRL_SHIFT_O_OPENNETCONVERTFILE
open Netconvert file
Definition: GUIAppEnum.h:220
@ MID_HOTKEY_CTRL_M_OPENSUMOCONFIG
open sumo config
Definition: GUIAppEnum.h:107
@ MID_GNE_TOOLBARFILE_SAVEDEMAND_AS
save demand elements as
Definition: GUIAppEnum.h:730
@ MID_GNE_TOOLBARFILE_SAVENETWORK_AS
save network as
Definition: GUIAppEnum.h:714
@ MID_GNE_DEMANDVIEWOPTIONS_DRAWSPREADVEHICLES
Draw vehicles in begin position or spread in lane.
Definition: GUIAppEnum.h:862
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWOVERLAPPEDROUTES
show overlapped routes
Definition: GUIAppEnum.h:878
@ MID_HOTKEY_CTRL_Z_UNDO
Redo.
Definition: GUIAppEnum.h:135
@ MID_FEEDBACK
feedback button
Definition: GUIAppEnum.h:656
@ MID_HOTKEY_CTRL_H_APPSETTINGS_OPENEDGETYPES
open app setting dialog in SUMO and open edge type files in netedit
Definition: GUIAppEnum.h:97
@ MID_HOTKEY_CTRL_SHIFT_S_SAVESUMOCONFIG
save SUMOConfig (SUMO AND netedit)
Definition: GUIAppEnum.h:222
@ MID_HOTKEY_F12_ABOUT
open about dialog
Definition: GUIAppEnum.h:254
@ MID_HOTKEY_CTRL_E_EDITSELECTION_LOADNETEDITCONFIG
Edit selection in SUMO and load neteditConfig in netedit.
Definition: GUIAppEnum.h:91
@ MID_GNE_TOOLBARFILE_RELOAD_DATAELEMENTS
reload data elements
Definition: GUIAppEnum.h:736
@ MID_HOTKEY_CTRL_SHIFT_K_SAVETLS
save TLS Programs
Definition: GUIAppEnum.h:214
@ MID_HOTKEY_SHIFT_T_LOCATETLS
Locate TLS - button.
Definition: GUIAppEnum.h:190
@ MID_HOTKEY_M_MODE_MOVE_MEANDATA
hotkey for mode moving element AND mean data
Definition: GUIAppEnum.h:59
@ MID_HOTKEY_F2_SUPERMODE_NETWORK
select network supermode in netedit
Definition: GUIAppEnum.h:232
@ MID_GNE_DEMANDVIEWOPTIONS_LOCKCONTAINER
lock container
Definition: GUIAppEnum.h:876
@ MID_HOTKEY_CTRL_N_OPENNETWORK_NEWNETWORK
open network in SUMO and create new empty network in netedit
Definition: GUIAppEnum.h:109
@ MID_GNE_NETWORKVIEWOPTIONS_SELECTEDGES
select edges
Definition: GUIAppEnum.h:816
@ MID_GNE_SAVEJOINEDJUNCTIONS
save joined junctions
Definition: GUIAppEnum.h:704
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWTRIPS
show all trips
Definition: GUIAppEnum.h:868
@ MID_GNE_NETWORKVIEWOPTIONS_TOGGLEGRID
show grid
Definition: GUIAppEnum.h:808
@ MID_GNE_TOOLBARFILE_SAVEJUPEDSIMELEMENTS_AS
save JuPedSim as
Definition: GUIAppEnum.h:718
@ MID_HOTKEY_P_MODE_POLYGON_PERSON
hotkey for mode creating polygons
Definition: GUIAppEnum.h:61
@ MID_HOTKEY_CTRL_L_SAVEASPLAINXML
save network as plain XML
Definition: GUIAppEnum.h:105
#define GUIDesignToolbarMenuBarNetedit
design for top toolbar (file, edit, processing...) used only in netedit (due supermodes buttons)
Definition: GUIDesigns.h:434
#define GUIDesignToolBarGrip
design for toolbar grip (used to change the position of toolbar with mouse)
Definition: GUIDesigns.h:452
#define GUIDesignToolBar
design for default toolbar
Definition: GUIDesigns.h:437
#define GUIDesignToolBarRaisedNext
design for first toolbar shell positioned in the next position of dock
Definition: GUIDesigns.h:446
#define GUIDesignToolBarRaisedSupermodes
design for toolbar supermodes (grip + buttons)
Definition: GUIDesigns.h:443
#define GUIDesignToolBarRaisedSame
design for toolbar
Definition: GUIDesigns.h:440
FXString gCurrentFolder
The folder used as last.
GUIIcon
An enumeration of icons used by the gui applications.
Definition: GUIIcons.h:33
@ CLEANJUNCTIONS
@ DATAMODE_CHECKBOX_SHOWADDITIONALS
@ SAVE_NETEDITCONFIG
@ SAVE_DATAELEMENTS
@ NETWORKMODE_CHECKBOX_BUBBLES
@ SAVE_NETWORKELEMENTS
@ DATAMODE_CHECKBOX_TAZRELONLYFROM
@ MODEPERSONPLAN
@ MODECROSSING
@ MODEMEANDATA
@ MODEADDITIONAL
@ MODEEDGERELDATA
@ EDITVIEWPORT
@ SUPERMODEDEMAND
@ CLEARMESSAGEWINDOW
@ MODEPROHIBITION
@ SAVE_ADDITIONALELEMENTS
@ DEMANDMODE_CHECKBOX_HIDENONINSPECTEDDEMANDELEMENTS
@ NETWORKMODE_CHECKBOX_HIDECONNECTIONS
@ DEMANDMODE_CHECKBOX_SHOWTRIPS
@ OPEN_ADDITIONALS
@ COMMONMODE_CHECKBOX_TOGGLEDRAWJUNCTIONSHAPE
@ NETEDIT_MINI
@ DATAMODE_CHECKBOX_SHOWSHAPES
@ NETWORKMODE_CHECKBOX_SELECTEDGES
@ COMMONMODE_CHECKBOX_SHOWDEMANDELEMENTS
@ COMPUTEJUNCTIONS
@ DEMANDMODE_CHECKBOX_LOCKPERSON
@ LOCATEVEHICLE
@ FRONTELEMENT
@ NETWORKMODE_CHECKBOX_APPLYTOALLPHASES
@ MODECREATEEDGE
@ LOCATEWALKINGAREA
@ DATAMODE_CHECKBOX_TAZRELONLYTO
@ NETWORKMODE_CHECKBOX_AUTOSELECTJUNCTIONS
@ OPEN_MEANDATAS
@ LOCATEPERSON
@ SAVE_MEANDATAELEMENTS
@ DATAMODE_CHECKBOX_TAZRELDRAWING
@ NETWORKMODE_CHECKBOX_SHOWCONNECTIONS
@ TRANSHIP_EDGE
@ LOCK_SELECTED
@ DEMANDMODE_CHECKBOX_SHOWPERSONPLANS
@ MODECONTAINER
@ DEMANDMODE_CHECKBOX_HIDESHAPES
@ JPS_WALKABLEAREA
@ DATAMODE_CHECKBOX_TAZDRAWFILL
@ MODEEDGEDATA
@ TRANSPORT_EDGE
@ NETWORKMODE_CHECKBOX_ELEVATION
@ SUPERMODENETWORK
@ JPS_OBSTACLE
@ COMMONMODE_CHECKBOX_SPREADVEHICLE
@ SAVE_DEMANDELEMENTS
@ OPEN
open icons
@ ADJUSTPERSONPLANS
@ DEMANDMODE_CHECKBOX_LOCKCONTAINER
@ NETWORKMODE_CHECKBOX_SHOWSUBADDITIONALS
@ SAVE_JUPEDSIMELEMENTS
@ LOCATECONTAINER
@ NETWORKMODE_CHECKBOX_SHOWTAZELEMENTS
@ SUPERMODEDATA
@ MODECONNECTION
@ LOCATEJUNCTION
@ MODECONTAINERPLAN
@ NETWORKMODE_CHECKBOX_CHAIN
@ COMPUTEDEMAND
@ OPEN_NETEDITCONFIG
@ DEMANDMODE_CHECKBOX_SHOWOVERLAPPEDROUTES
@ NETWORKMODE_CHECKBOX_ASKFORMERGE
@ SAVE_SUMOCONFIG
@ MODETYPEDISTRIBUTION
@ OVERHEADWIRE
@ COMMONMODE_CHECKBOX_TOGGLEGRID
@ OPEN_TLSPROGRAMS
@ JOINJUNCTIONS
@ MODEROUTEDISTRIBUTION
@ PERSONTRIP_EDGE
@ MODETAZRELDATA
@ OPEN_SUMOCONFIG
@ SAVE
save icons
@ DEMANDMODE_CHECKBOX_SHOWCONTAINERPLANS
@ NETWORKMODE_CHECKBOX_TWOWAY
#define WRITE_DEBUG(msg)
Definition: MsgHandler.h:306
#define WRITE_ERROR(msg)
Definition: MsgHandler.h:304
#define TL(string)
Definition: MsgHandler.h:315
@ SUMO_TAG_EDGEREL
a relation between two edges
@ GNE_TAG_EDGEREL_SINGLE
@ SUMO_TAG_POI
begin/end of the description of a Point of interest
@ GNE_TAG_POIGEO
Point of interest over view with GEO attributes.
@ SUMO_TAG_CONNECTION
connectioon between two lanes
@ SUMO_TAG_WALKINGAREA
walking area for pedestrians
@ SUMO_TAG_JUNCTION
begin/end of the description of a junction
@ SUMO_TAG_CROSSING
crossing between edges for pedestrians
@ SUMO_TAG_POLY
begin/end of the description of a polygon
@ SUMO_TAG_LANE
begin/end of the description of a single lane
@ GNE_TAG_POILANE
Point of interest over Lane.
@ GNE_TAG_JPS_OBSTACLE
polygon used for draw juPedSim obstacles
@ SUMO_TAG_TAZREL
a relation between two TAZs
@ GNE_TAG_JPS_WALKABLEAREA
polygon used for draw juPedSim walkable areas
@ SUMO_TAG_EDGE
begin/end of the description of an edge
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
Definition: ToString.h:46
GNESumoConfigHandler(OptionsCont &sumoOptions, const std::string &file)
Constructor.
The main window of Netedit.
const GNETagProperties & getTagProperty() const
get tagProperty associated with this Attribute Carrier
Dialog for netgenerate tool dialog.
Dialog for python tool dialog.
Abstract dialog for tools.
Abstract dialog for tools.
bool isPlanTransport() const
return true if tag correspond to a transport
bool isContainer() const
return true if tag correspond to a container element
bool isTAZElement() const
return true if tag correspond to a TAZ element
bool isRoute() const
return true if tag correspond to a route element
bool isVehicle() const
return true if tag correspond to a vehicle element
bool isPlanStopContainer() const
return true if tag correspond to a container stop plan
bool isPersonTrip() const
return true if tag correspond to a person trip
SumoXMLTag getTag() const
get Tag vinculated with this attribute Property
bool isWireElement() const
return true if tag correspond to a Wire element
bool isPlanRide() const
return true if tag correspond to a ride plan
bool isAdditionalElement() const
return true if tag correspond to an additional element (note: this include TAZ, shapes and wires)
bool isPlanStopPerson() const
return true if tag correspond to a person stop plan
bool isVehicleStop() const
return true if tag correspond to a vehicle stop element
bool isPerson() const
return true if tag correspond to a person element
bool isPlanWalk() const
return true if tag correspond to a walk plan
bool isPlanTranship() const
return true if tag correspond to a tranship
long onCmdToggleShowDemandElementsNetwork(FXObject *, FXSelector, void *)
toggle show demand elements (network)
const GNEViewNetHelper::DataViewOptions & getDataViewOptions() const
get data view options
Definition: GNEViewNet.cpp:727
long onCmdToggleShowDemandElementsData(FXObject *, FXSelector, void *)
toggle show demand elements (data)
long onCmdToggleTAZDrawFill(FXObject *, FXSelector, void *)
toggle TAZdrawFill
long onCmdToggleWarnAboutMerge(FXObject *, FXSelector, void *)
toggle warn for merge
long onCmdToggleDrawSpreadVehicles(FXObject *, FXSelector, void *)
toggle draw vehicles in begin position or spread in lane
long onCmdToggleShowConnections(FXObject *, FXSelector, void *)
toggle show connections
long onCmdToggleShowTAZElements(FXObject *, FXSelector, void *)
toggle show TAZ elements
long onCmdToggleMoveElevation(FXObject *, FXSelector, void *)
toggle move elevation
long onCmdToggleShowAllPersonPlans(FXObject *, FXSelector, void *)
toggle show all person plans in super mode demand
long onCmdToggleTAZRelOnlyTo(FXObject *, FXSelector, void *)
toggle TAZRez only to
const GNEViewNetHelper::NetworkViewOptions & getNetworkViewOptions() const
get network view options
Definition: GNEViewNet.cpp:715
long onCmdToggleChainEdges(FXObject *, FXSelector, void *)
toggle chain edges
long onCmdToggleLockContainer(FXObject *, FXSelector, void *)
toggle lock container in super mode demand
long onCmdToggleShowGrid(FXObject *, FXSelector, void *)
toggle show grid
long onCmdToggleHideNonInspecteDemandElements(FXObject *, FXSelector, void *)
toggle hide non inspected demand elements
long onCmdToggleDrawJunctionShape(FXObject *, FXSelector, void *)
toggle draw junction shape
long onCmdToggleShowShapes(FXObject *, FXSelector, void *)
toggle show shapes in super mode data
long onCmdToggleExtendSelection(FXObject *, FXSelector, void *)
toggle extend selection
long onCmdToggleShowOverlappedRoutes(FXObject *, FXSelector, void *)
toggle hide non inspected demand elements
long onCmdToggleAutoOppositeEdge(FXObject *, FXSelector, void *)
toggle autoOpposite edge
long onCmdToggleChangeAllPhases(FXObject *, FXSelector, void *)
toggle change all phases
long onCmdToggleTAZRelDrawing(FXObject *, FXSelector, void *)
toggle TAZRel drawing
long onCmdToggleShowJunctionBubbles(FXObject *, FXSelector, void *)
toggle show junction bubbles
long onCmdToggleShowAdditionalSubElements(FXObject *, FXSelector, void *)
toggle show additional sub-elements
long onCmdToggleShowAllContainerPlans(FXObject *, FXSelector, void *)
toggle show all container plans in super mode demand
long onCmdToggleTAZRelOnlyFrom(FXObject *, FXSelector, void *)
toggle TAZRez only from
long onCmdToggleShowAdditionals(FXObject *, FXSelector, void *)
toggle show additionals in super mode data
long onCmdToggleLockPerson(FXObject *, FXSelector, void *)
toggle lock person in super mode demand
long onCmdToggleSelectEdges(FXObject *, FXSelector, void *)
toggle select edges
long onCmdToggleShowTrips(FXObject *, FXSelector, void *)
toggle show all trips in super mode demand
long onCmdToggleHideShapes(FXObject *, FXSelector, void *)
toggle hide shapes in super mode demand
const GNEViewNetHelper::DemandViewOptions & getDemandViewOptions() const
get demand view options
Definition: GNEViewNet.cpp:721
long onCmdToggleHideConnections(FXObject *, FXSelector, void *)
toggle hide connections
static MFXMenuCheckIcon * buildFXMenuCheckboxIcon(FXComposite *p, const std::string &text, const std::string &shortcut, const std::string &info, FXIcon *icon, FXObject *tgt, FXSelector sel)
build menu checkbox with icon
Definition: GUIDesigns.cpp:96
static FXMenuCommand * buildFXMenuCommandRecentFile(FXComposite *p, const std::string &text, FXObject *tgt, FXSelector sel)
build menu command (for recent files)
Definition: GUIDesigns.cpp:107
static FXMenuCheck * buildFXMenuCheckbox(FXComposite *p, const std::string &text, const std::string &info, FXObject *tgt, FXSelector sel)
build menu checkbox
Definition: GUIDesigns.cpp:85
static FXMenuCommand * buildFXMenuCommand(FXComposite *p, const std::string &text, FXIcon *icon, FXObject *tgt, FXSelector sel, const bool disable=false)
build menu command
Definition: GUIDesigns.cpp:42
static FXMenuCommand * buildFXMenuCommandShortcut(FXComposite *p, const std::string &text, const std::string &shortcut, const std::string &info, FXIcon *icon, FXObject *tgt, FXSelector sel)
build menu command
Definition: GUIDesigns.cpp:74
static FXIcon * getIcon(const GUIIcon which)
returns a icon previously defined in the enum GUIIcon
A logging window for the gui.
bool amChecked() const
check if this MFXCheckableButton is checked
static FXbool userPermitsOverwritingWhenFileExists(FXWindow *const parent, const FXString &file)
Returns true if either the file given by its name does not exist or the user allows overwriting it.
Definition: MFXUtils.cpp:39
static FXString assureExtension(const FXString &filename, const FXString &defaultExtension)
Corrects missing extension.
Definition: MFXUtils.cpp:69
A storage for options typed value containers)
Definition: OptionsCont.h:89
static OptionsCont & getOptions()
Retrieves the options.
Definition: OptionsCont.cpp:60
A SAX-Handler for loading options.
Definition: OptionsLoader.h:44
bool errorOccurred() const
Returns the information whether an error occurred.
static std::string replace(std::string str, const std::string &what, const std::string &by)
Replaces all occurrences of the second string by the third string within the first string.
static std::string transcode(const XMLCh *const data)
converts a 0-terminated XMLCh* array (usually UTF-16, stemming from Xerces) into std::string in UTF-8
Definition: StringUtils.h:146
static std::string transcodeToLocal(const std::string &utf8String)
convert a string from UTF-8 to the local codepage
DataViewOptions(GNEApplicationWindow *GNEApp)
default constructor
void buildDataViewOptionsMenuChecks(FXMenuPane *editMenu)
build menu checks
void buildDemandViewOptionsMenuChecks(FXMenuPane *editMenu)
build menu checks
DemandViewOptions(GNEApplicationWindow *GNEApp)
default constructor
NetworkViewOptions(GNEApplicationWindow *GNEApp)
default constructor
void buildNetworkViewOptionsMenuChecks(FXMenuPane *editMenu)
build menu checks
EditMenuCommands(GNEApplicationWindow *GNEApp)
constructor
DemandViewOptions demandViewOptions
demand view options
NetworkViewOptions networkViewOptions
network view options
void buildUndoRedoMenuCommands(FXMenuPane *editMenu)
build undo-redo menu commands
void buildViewMenuCommands(FXMenuPane *editMenu)
build view menu commands
GNEApplicationWindow * myGNEApp
pointer to current GNEApplicationWindow
void buildOpenSUMOMenuCommands(FXMenuPane *editMenu)
build open sumo menu commands
void buildFrontElementMenuCommand(FXMenuPane *editMenu)
build front element commands
void buildEdgeTypeSection(FXMenuPane *menuPane)
build edge type section
FileMenuCommands(GNEApplicationWindow *GNEApp)
constructor
void buildDemandSection(FXMenuPane *menuPane)
build demand section
void buildFileMenuCommands(FXMenuPane *fileMenu, FXMenuPane *fileMenuNEEDITConfig, FXMenuPane *fileMenuSumoConfig, FXMenuPane *fileMenuTLS, FXMenuPane *fileMenuEdgeTypes, FXMenuPane *fileMenuAdditionals, FXMenuPane *fileMenuDemandElements, FXMenuPane *fileMenuDataElements, FXMenuPane *fileMenuMeanDataElements)
build menu commands
void buildDataSection(FXMenuPane *menuPane)
build data section
void buildTrafficLightSection(FXMenuPane *menuPane)
build traffic light section
void buildAdditionalSection(FXMenuPane *menuPane)
build additional section
void buildMeanDataSection(FXMenuPane *menuPane)
build meanData section
void buildNeteditConfigSection(FXMenuPane *menuPane)
build netedit config section
void buildSumoConfigSection(FXMenuPane *menuPane)
build SUMO Config section
void buildHelpMenuCommands(FXMenuPane *helpMenu)
build menu commands
HelpMenuCommands(GNEApplicationWindow *GNEApp)
constructor
void buildLocateMenuCommands(FXMenuPane *locateMenu)
build menu commands
LocateMenuCommands(GNEApplicationWindow *GNEApp)
constructor
void buildLockMenuCommands(FXMenuPane *editMenu)
build menu commands
void hideNetworkLockMenuCommands()
show network processing menu commands
void hideDemandLockMenuCommands()
show demand processing menu commands
void hideDataLockMenuCommands()
show data processing menu commands
void showDataLockMenuCommands()
show data processing menu commands
LockMenuCommands(GNEApplicationWindow *GNEApp)
constructor
void showNetworkLockMenuCommands()
show network processing menu commands
FXHotKey parseHotKey(const FXwchar character)
Parse hot key from string.
void showDemandLockMenuCommands()
show demand processing menu commands
void editLocking(const GNEAttributeCarrier *AC, const FXbool value)
lock or unlock object based in a tag property
void buildRecentConfigFiles(FXMenuPane *fileMenu, FXMenuPane *fileMenuRecentConfigFiles)
build recent config
MenuBarFile(GNEApplicationWindow *GNEApp)
constructor
void buildRecentNetworkFiles(FXMenuPane *fileMenu, FXMenuPane *fileMenuRecentNetworkFiles)
build recent network
CommonMenuCommands(const ModesMenuCommands *modesMenuCommandsParent)
constructor
void buildDataMenuCommands(FXMenuPane *modesMenu)
build menu commands
DataMenuCommands(const ModesMenuCommands *modesMenuCommandsParent)
constructor
DemandMenuCommands(const ModesMenuCommands *modesMenuCommandsParent)
constructor
NetworkMenuCommands(const ModesMenuCommands *modesMenuCommandsParent)
constructor
CommonMenuCommands commonMenuCommands
Common Menu Commands.
GNEApplicationWindow * myGNEApp
pointer to current GNEApplicationWindow
void buildModesMenuCommands(FXMenuPane *modesMenu)
build modes menu commands
ModesMenuCommands(GNEApplicationWindow *GNEApp)
constructor
DemandMenuCommands demandMenuCommands
Demand Menu Commands.
void setDefaultView(Supermode supermode)
set default view
void setJuPedSimView(Supermode supermode)
set JuPedSim view
DataMenuCommands dataMenuCommands
Data Menu Commands.
NetworkMenuCommands networkMenuCommands
Network Menu Commands.
void showDataProcessingMenuCommands()
show data processing menu commands
void showDemandProcessingMenuCommands()
show demand processing menu commands
void hideDemandProcessingMenuCommands()
show demand processing menu commands
void hideDataProcessingMenuCommands()
show data processing menu commands
void buildProcessingMenuCommands(FXMenuPane *processingMenu)
build menu commands
void showNetworkProcessingMenuCommands()
show network processing menu commands
ProcessingMenuCommands(GNEApplicationWindow *GNEApp)
constructor
void hideNetworkProcessingMenuCommands()
show network processing menu commands
void buildSupermodeCommands(FXMenuPane *editMenu)
build menu commands
SupermodeCommands(GNEApplicationWindow *GNEApp)
constructor
void buildMenuToolbarsGrip()
build menu toolbar grips
ToolbarsGrip(GNEApplicationWindow *GNEApp)
constructor
long postProcessing(FXObject *menuCommand) const
run postprocessing
void buildTools(FXMenuPane *toolsMenu, const std::map< std::string, FXMenuPane * > &menuPaneToolMaps)
build tools (and menu commands)
ToolsMenuCommands(GNEApplicationWindow *GNEApp)
constructor
long showNetgenerateDialog() const
show netgenerate dialog
long showTool(FXObject *menuCommand) const
show tool
long runNetgenerateDialog(const OptionsCont *netgenerateOptions) const
run netgenerate dialog
long runToolDialog(FXObject *menuCommand) const
run tool dialog
WindowsMenuCommands(GNEApplicationWindow *GNEApp)
constructor
void buildWindowsMenuCommands(FXMenuPane *windowsMenu, FXStatusBar *statusbar, GUIMessageWindow *messageWindow)
build menu commands
static bool toggleEditOptionsData(GNEViewNet *viewNet, const MFXCheckableButton *menuCheck, const int numericalKeyPressed, FXObject *obj, FXSelector sel)
toggle edit options Data menu commands (called in GNEApplicationWindow::onCmdToggleEditOptions)
static std::string openRouteFileDialog(FXWindow *window, bool save, bool multi=false)
open route file dialog
static bool stringEndsWith(const std::string &str, const std::string &suffix)
check if a string ends with another string
static std::string openMeanDataDialog(FXWindow *window, bool save, bool multi=false)
open meandata filename dialog
static std::string openAdditionalFileDialog(FXWindow *window, bool save, bool multi=false)
open additional dialog
static std::string saveToolLog(FXWindow *window)
open tool file dialog
static std::string openOptionFileDialog(FXWindow *window, bool save)
open option dialog
static std::string openOSMFileDialog(FXWindow *window)
open OSM file dialog
static bool toggleEditOptionsDemand(GNEViewNet *viewNet, const MFXCheckableButton *menuCheck, const int numericalKeyPressed, FXObject *obj, FXSelector sel)
toggle edit options Demand menu commands (called in GNEApplicationWindow::onCmdToggleEditOptions)
static std::string saveJoinedJunctionsFileDialog(FXWindow *window)
open joined junctions file dialog
static bool toggleEditOptionsNetwork(GNEViewNet *viewNet, const MFXCheckableButton *menuCheck, const int numericalKeyPressed, FXObject *obj, FXSelector sel)
toggle edit options Network menu commands (called in GNEApplicationWindow::onCmdToggleEditOptions)
static std::string openTLSFileDialog(FXWindow *window, bool save)
open TLS file dialog
static std::string openDataFileDialog(FXWindow *window, bool save, bool multi=false)
open data file dialog
static std::string openNeteditConfigFileDialog(FXWindow *window, bool save)
open netedit config file dialog
static std::string savePlainXMLFileDialog(FXWindow *window)
open plain xml file dialog
static std::string openSumoConfigFileDialog(FXWindow *window, bool save, bool multi=false)
open SUMO config file dialog
static std::string openFileDialog(FXWindow *window, bool save, bool multi)
open general file dialog
static std::string openEdgeTypeFileDialog(FXWindow *window, bool save)
open edgeType file dialog
static std::string openNetworkFileDialog(FXWindow *window, bool save, bool multi=false)
open netconvert file dialog
static std::string openNetconvertFileDialog(FXWindow *window)
open netconvert file dialog
MFXCheckableButton * menuCheckToggleTAZDrawFill
menu check to toggle TAZ draw fill
MFXCheckableButton * menuCheckShowAdditionals
menu check to show Additionals
MFXCheckableButton * menuCheckShowShapes
menu check to show Shapes
MFXCheckableButton * menuCheckToggleTAZRelOnlyFrom
menu check to toggle TAZRel only from
MFXCheckableButton * menuCheckToggleDrawJunctionShape
checkable button to show junction shapes
MFXCheckableButton * menuCheckToggleTAZRelDrawing
menu check to toggle TAZ Rel drawing
MFXCheckableButton * menuCheckShowDemandElements
menu check to show Demand Elements
MFXCheckableButton * menuCheckToggleTAZRelOnlyTo
menu check to toggle TAZRel only to
MFXCheckableButton * menuCheckShowAllTrips
show all trips
MFXCheckableButton * menuCheckToggleGrid
menu check to show grid button
MFXCheckableButton * menuCheckToggleDrawJunctionShape
checkable button to show junction shapes
MFXCheckableButton * menuCheckDrawSpreadVehicles
menu check to draw vehicles in begin position or spread in lane
MFXCheckableButton * menuCheckShowOverlappedRoutes
show overlapped routes
MFXCheckableButton * menuCheckShowAllPersonPlans
show all person plans
MFXCheckableButton * menuCheckShowAllContainerPlans
show all container plans
MFXCheckableButton * menuCheckHideNonInspectedDemandElements
Hide non inspected demand elements.
MFXCheckableButton * menuCheckHideShapes
Hide shapes (Polygons and POIs)
MFXCheckableButton * menuCheckLockPerson
Lock Person.
MFXCheckableButton * menuCheckLockContainer
Lock Container.
MFXCheckableButton * menuCheckSelectEdges
checkable button to select only edges
MFXCheckableButton * menuCheckChainEdges
checkable button to the endpoint for a created edge should be set as the new source
MFXCheckableButton * menuCheckShowDemandElements
checkable button to show Demand Elements
MFXCheckableButton * menuCheckMoveElevation
checkable button to apply movement to elevation
MFXCheckableButton * menuCheckShowTAZElements
checkable button to show TAZ elements
MFXCheckableButton * menuCheckAutoOppositeEdge
check checkable to create auto create opposite edge
MFXCheckableButton * menuCheckDrawSpreadVehicles
checkable button to draw vehicles in begin position or spread in lane
MFXCheckableButton * menuCheckShowConnections
checkable button to show connections
MFXCheckableButton * menuCheckHideConnections
checkable button to hide connections in connect mode
MFXCheckableButton * menuCheckToggleDrawJunctionShape
checkable button to show junction shapes
MFXCheckableButton * menuCheckToggleGrid
checkable button to show grid button
MFXCheckableButton * menuCheckShowJunctionBubble
checkable button to show connection as bubble in "Move" mode.
MFXCheckableButton * menuCheckWarnAboutMerge
checkable button to we should warn about merging junctions
MFXCheckableButton * menuCheckShowAdditionalSubElements
checkable button to show additional sub-elements
MFXCheckableButton * menuCheckChangeAllPhases
checkable button to set change all phases
MFXCheckableButton * menuCheckExtendSelection
checkable button to extend to edge nodes