Eclipse SUMO - Simulation of Urban MObility
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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-2025 German Aerospace Center (DLR) and others.
4// This program and the accompanying materials are made available under the
5// terms of the Eclipse Public License 2.0 which is available at
6// https://www.eclipse.org/legal/epl-2.0/
7// This Source Code may also be made available under the following Secondary
8// Licenses when the conditions for such availability set forth in the Eclipse
9// Public License 2.0 are satisfied: GNU General Public License, version 2
10// or later which is available at
11// https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
12// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
13/****************************************************************************/
18// The main window of Netedit (adapted from GUIApplicationWindow)
19/****************************************************************************/
20#include <config.h>
21
22#include <regex>
29#include <netedit/templates.h>
36#include <xercesc/parsers/SAXParser.hpp>
37#include <xercesc/sax/AttributeList.hpp>
38#include <xercesc/sax/HandlerBase.hpp>
39#include <xercesc/sax/SAXException.hpp>
40#include <xercesc/sax/SAXParseException.hpp>
41
43#include "GNEViewNet.h"
44#include "GNENet.h"
45
46// ===========================================================================
47// GNEApplicationWindowHelper::ToolbarsGrip method definitions
48// ===========================================================================
49
53
54
55void
57 // build menu bar (for File, edit, processing...) using specify design
58 myPythonToolBarShellMenu = new FXToolBarShell(myGNEApp, GUIDesignToolBar);
59 menu = new FXMenuBar(myGNEApp->getTopDock(), myPythonToolBarShellMenu, GUIDesignToolbarMenuBarNetedit);
60 // declare toolbar grip for menu bar
61 new FXToolBarGrip(menu, menu, FXMenuBar::ID_TOOLBARGRIP, GUIDesignToolBarGrip);
62}
63
64
65void
67 // build toolbar shells
68 myPythonToolBarShellSuperModes = new FXToolBarShell(myGNEApp, GUIDesignToolBar);
69 myPythonToolBarShellSaveElements = new FXToolBarShell(myGNEApp, GUIDesignToolBar);
70 myPythonToolBarShellTimeFormat = new FXToolBarShell(myGNEApp, GUIDesignToolBar);
71 myPythonToolBarShellNavigation = new FXToolBarShell(myGNEApp, GUIDesignToolBar);
72 myPythonToolBarShellModes = new FXToolBarShell(myGNEApp, GUIDesignToolBar);
73 myPythonToolBarShellIntervalBar = new FXToolBarShell(myGNEApp, GUIDesignToolBar);
74 // build menu bars
75 superModes = new FXMenuBar(myGNEApp->getTopDock(), myPythonToolBarShellSuperModes, GUIDesignToolBarRaisedSupermodes);
76 saveElements = new FXMenuBar(myGNEApp->getTopDock(), myPythonToolBarShellSaveElements, GUIDesignToolBarRaisedNext);
77 timeSwitch = new FXMenuBar(myGNEApp->getTopDock(), myPythonToolBarShellTimeFormat, GUIDesignToolBarRaisedSame);
78 navigation = new FXMenuBar(myGNEApp->getTopDock(), myPythonToolBarShellNavigation, GUIDesignToolBarRaisedSame);
79 if (OptionsCont::getOptions().getBool("gui-testing")) {
80 modes = new FXMenuBar(myGNEApp->getTopDock(), myPythonToolBarShellModes, GUIDesignToolBarRaisedNext);
81 } else {
82 modes = new FXMenuBar(myGNEApp->getTopDock(), myPythonToolBarShellModes, GUIDesignToolBarRaisedSame);
83 }
84 intervalBar = new FXMenuBar(myGNEApp->getTopDock(), myPythonToolBarShellIntervalBar, GUIDesignToolBarRaisedNext);
85 // build FXToolBarGrip
86 new FXToolBarGrip(superModes, superModes, FXMenuBar::ID_TOOLBARGRIP, GUIDesignToolBarGrip);
87 new FXToolBarGrip(saveElements, saveElements, FXMenuBar::ID_TOOLBARGRIP, GUIDesignToolBarGrip);
88 new FXToolBarGrip(timeSwitch, timeSwitch, FXMenuBar::ID_TOOLBARGRIP, GUIDesignToolBarGrip);
89 new FXToolBarGrip(navigation, navigation, FXMenuBar::ID_TOOLBARGRIP, GUIDesignToolBarGrip);
90 new FXToolBarGrip(modes, modes, FXMenuBar::ID_TOOLBARGRIP, GUIDesignToolBarGrip);
91 new FXToolBarGrip(intervalBar, intervalBar, FXMenuBar::ID_TOOLBARGRIP, GUIDesignToolBarGrip);
92 // create menu bars
93 superModes->create();
94 saveElements->create();
95 timeSwitch->create();
96 navigation->create();
97 modes->create();
98 intervalBar->create();
99 // create toolbar shells
100 myPythonToolBarShellSuperModes->create();
101 myPythonToolBarShellSaveElements->create();
102 myPythonToolBarShellTimeFormat->create();
103 myPythonToolBarShellNavigation->create();
104 myPythonToolBarShellModes->create();
105 myPythonToolBarShellIntervalBar->create();
106 // recalc top dop after creating elements
107 myGNEApp->getTopDock()->recalc();
108}
109
110
111void
113 // delete Menu bars
114 delete superModes;
115 delete saveElements;
116 delete timeSwitch;
117 delete navigation;
118 delete modes;
119 delete intervalBar;
120 // also delete toolbar shells to avoid floating windows
121 delete myPythonToolBarShellSuperModes;
122 delete myPythonToolBarShellSaveElements;
123 delete myPythonToolBarShellTimeFormat;
124 delete myPythonToolBarShellNavigation;
125 delete myPythonToolBarShellModes;
126 delete myPythonToolBarShellIntervalBar;
127 // recalc top dop after deleting elements
128 myGNEApp->getTopDock()->recalc();
129}
130
131// ===========================================================================
132// GNEApplicationWindowHelper::MenuBarFile method definitions
133// ===========================================================================
134
136 myRecentNetworks(GNEApp->getApp(), TL("nets")),
137 myRecentConfigs(GNEApp->getApp(), TL("configs")),
138 myGNEApp(GNEApp) {
139}
140
141
142void
143GNEApplicationWindowHelper::MenuBarFile::buildRecentNetworkFiles(FXMenuPane* fileMenu, FXMenuPane* fileMenuRecentNetworkFiles) {
144 // for whatever reason, sonar complains in the next line that sep1 may leak, but fox does the cleanup
145 GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentNetworkFiles, "", &myRecentNetworks, FXRecentFiles::ID_FILE_1);
146 GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentNetworkFiles, "", &myRecentNetworks, FXRecentFiles::ID_FILE_2);
147 GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentNetworkFiles, "", &myRecentNetworks, FXRecentFiles::ID_FILE_3);
148 GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentNetworkFiles, "", &myRecentNetworks, FXRecentFiles::ID_FILE_4);
149 GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentNetworkFiles, "", &myRecentNetworks, FXRecentFiles::ID_FILE_5);
150 GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentNetworkFiles, "", &myRecentNetworks, FXRecentFiles::ID_FILE_6);
151 GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentNetworkFiles, "", &myRecentNetworks, FXRecentFiles::ID_FILE_7);
152 GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentNetworkFiles, "", &myRecentNetworks, FXRecentFiles::ID_FILE_8);
153 GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentNetworkFiles, "", &myRecentNetworks, FXRecentFiles::ID_FILE_9);
154 GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentNetworkFiles, "", &myRecentNetworks, FXRecentFiles::ID_FILE_10);
155 new FXMenuSeparator(fileMenuRecentNetworkFiles); // NOSONAR, Fox does the cleanup
156 GUIDesigns::buildFXMenuCommand(fileMenuRecentNetworkFiles, TL("Cl&ear Recent Networks"), nullptr, &myRecentNetworks, FXRecentFiles::ID_CLEAR);
157 GUIDesigns::buildFXMenuCommand(fileMenuRecentNetworkFiles, TL("No Recent Networks"), nullptr, &myRecentNetworks, MFXRecentNetworks::ID_NOFILES);
158 // set target
159 myRecentNetworks.setTarget(myGNEApp);
160 myRecentNetworks.setSelector(MID_RECENTFILE);
161 new FXMenuCascade(fileMenu, TL("Recent Networks"), nullptr, fileMenuRecentNetworkFiles);
162}
163
164
165void
166GNEApplicationWindowHelper::MenuBarFile::buildRecentConfigFiles(FXMenuPane* fileMenu, FXMenuPane* fileMenuRecentConfigFiles) {
167 // for whatever reason, sonar complains in the next line that sep1 may leak, but fox does the cleanup
168 GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentConfigFiles, "", &myRecentConfigs, FXRecentFiles::ID_FILE_1);
169 GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentConfigFiles, "", &myRecentConfigs, FXRecentFiles::ID_FILE_2);
170 GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentConfigFiles, "", &myRecentConfigs, FXRecentFiles::ID_FILE_3);
171 GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentConfigFiles, "", &myRecentConfigs, FXRecentFiles::ID_FILE_4);
172 GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentConfigFiles, "", &myRecentConfigs, FXRecentFiles::ID_FILE_5);
173 GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentConfigFiles, "", &myRecentConfigs, FXRecentFiles::ID_FILE_6);
174 GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentConfigFiles, "", &myRecentConfigs, FXRecentFiles::ID_FILE_7);
175 GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentConfigFiles, "", &myRecentConfigs, FXRecentFiles::ID_FILE_8);
176 GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentConfigFiles, "", &myRecentConfigs, FXRecentFiles::ID_FILE_9);
177 GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentConfigFiles, "", &myRecentConfigs, FXRecentFiles::ID_FILE_10);
178 new FXMenuSeparator(fileMenuRecentConfigFiles); // NOSONAR, Fox does the cleanup
179 GUIDesigns::buildFXMenuCommand(fileMenuRecentConfigFiles, TL("Cl&ear Recent Configs"), nullptr, &myRecentConfigs, FXRecentFiles::ID_CLEAR);
180 GUIDesigns::buildFXMenuCommand(fileMenuRecentConfigFiles, TL("No Recent Configs"), nullptr, &myRecentConfigs, MFXRecentNetworks::ID_NOFILES);
181 // set target
182 myRecentConfigs.setTarget(myGNEApp);
183 myRecentConfigs.setSelector(MID_RECENTFILE);
184 new FXMenuCascade(fileMenu, TL("Recent Configs"), nullptr, fileMenuRecentConfigFiles);
185}
186
187// ---------------------------------------------------------------------------
188// GNEApplicationWindowHelper::FileMenuCommands - methods
189// ---------------------------------------------------------------------------
190
194
195
196void
197GNEApplicationWindowHelper::FileMenuCommands::buildFileMenuCommands(FXMenuPane* fileMenu, FXMenuPane* fileMenuNeteditConfig,
198 FXMenuPane* fileMenuSumoConfig, FXMenuPane* fileMenuTLS, FXMenuPane* fileMenuEdgeTypes, FXMenuPane* fileMenuAdditionals,
199 FXMenuPane* fileMenuDemandElements, FXMenuPane* fileMenuDataElements, FXMenuPane* fileMenuMeanDataElements) {
200
202 TL("New Network"), "Ctrl+N", TL("Create a new network."),
204
206 TL("New Window"), "Ctrl+Shift+N", TL("Open a new netedit window."),
207 nullptr, myGNEApp, MID_HOTKEY_CTRL_SHIFT_N_NEWWINDOW);
208
210 TL("Generate Network"), "", TL("Create network using netgenerate."),
212
213 // load sumo/netedit configs
214 new FXMenuSeparator(fileMenu);
215
217 TL("Load Netedit config..."), "Ctrl+E", TL("Load a netedit configuration file."),
219
221 TL("Load Sumo config..."), "Ctrl+M", TL("Load a SUMO configuration file."),
223
224 // load networks
225 new FXMenuSeparator(fileMenu);
226
228 TL("Open Network..."), "Ctrl+O", TL("Open a SUMO network."),
230
232 TL("Open Netconvert Configuration..."), "Ctrl+Shift+O", TL("Open a configuration file with NETCONVERT options."),
234
236 TL("Import Foreign Network..."), "", TL("Import a foreign network such as OSM."),
238
239 // save networks
240 new FXMenuSeparator(fileMenu);
241
243 TL("Save Network"), "Ctrl+S", TL("Save the network."),
245
247 TL("Save Network As..."), "", TL("Save the network to another file."),
249
251 TL("Save Plain XML..."), "Ctrl+L", TL("Save a plain XML representation of the network."),
253
255 TL("Save Joined Junctions..."), "", TL("Save log of joined junctions (allows reproduction of joins)."),
257
258 // reload
259 new FXMenuSeparator(fileMenu);
260
262 TL("Reload"), "Ctrl+R", TL("Reload the network."),
264
266 TL("Reload Network"), "", TL("Reload the network."),
268
269 new FXMenuSeparator(fileMenu);
270
271 // create netedit config menu options
272 buildNeteditConfigSection(fileMenuNeteditConfig);
273 myNeteditConfigMenuCascade = new FXMenuCascade(fileMenu, TL("Netedit Config"), GUIIconSubSys::getIcon(GUIIcon::NETEDIT_MINI), fileMenuNeteditConfig);
274
275 // create SumoConfig menu options
276 buildSumoConfigSection(fileMenuSumoConfig);
277 mySumoConfigMenuCascade = new FXMenuCascade(fileMenu, TL("Sumo Config"), GUIIconSubSys::getIcon(GUIIcon::SUMO_MINI), fileMenuSumoConfig);
278
279 // create TLS menu options
280 buildTrafficLightSection(fileMenuTLS);
281 myTLSMenuCascade = new FXMenuCascade(fileMenu, TL("Traffic Lights"), GUIIconSubSys::getIcon(GUIIcon::MODETLS), fileMenuTLS);
282
283 // create edgeTypes menu options
284 buildEdgeTypeSection(fileMenuEdgeTypes);
285 myEdgeTypesMenuCascade = new FXMenuCascade(fileMenu, TL("Edge Types"), GUIIconSubSys::getIcon(GUIIcon::MODECREATEEDGE), fileMenuEdgeTypes);
286
287 // create Additionals menu options
288 buildAdditionalSection(fileMenuAdditionals);
289 myAdditionalMenuCascade = new FXMenuCascade(fileMenu, TL("Additionals and Shapes"), GUIIconSubSys::getIcon(GUIIcon::MODEADDITIONAL), fileMenuAdditionals);
290
291 // create DemandElements menu options
292 buildDemandSection(fileMenuDemandElements);
293 myDemandMenuCascade = new FXMenuCascade(fileMenu, TL("Demand Elements"), GUIIconSubSys::getIcon(GUIIcon::SUPERMODEDEMAND), fileMenuDemandElements);
294
295 // create DataElements menu options
296 buildDataSection(fileMenuDataElements);
297 myDataMenuCascade = new FXMenuCascade(fileMenu, TL("Data Elements"), GUIIconSubSys::getIcon(GUIIcon::SUPERMODEDATA), fileMenuDataElements);
298
299 // create MeanDatas menu options
300 buildMeanDataSection(fileMenuMeanDataElements);
301 myMeanDataMenuCascade = new FXMenuCascade(fileMenu, TL("MeanData Elements"), GUIIconSubSys::getIcon(GUIIcon::MODEMEANDATA), fileMenuMeanDataElements);
302
303 // add checkBox for quick load
304 new FXMenuSeparator(fileMenu);
305 menuCheckAllowUndoRedoLoading = GUIDesigns::buildFXMenuCheckbox(fileMenu,
306 TL("Allow undoing element loading"), TL("Allow to undo loading of elements (Slow if a lot of elements are loaded)"),
308 // set default value
309 menuCheckAllowUndoRedoLoading->setCheck(myGNEApp->getApp()->reg().readBoolEntry("NETEDIT", "AllowUndoRedoLoading", true));
310
311 // close network
312 new FXMenuSeparator(fileMenu);
314 TL("Close"), "Ctrl+W", TL("Close the network."),
316}
317
318
319void
321 mySumoConfigMenuCascade->enable();
322 myNeteditConfigMenuCascade->enable();
323 myTLSMenuCascade->enable();
324 myEdgeTypesMenuCascade->enable();
325 myAdditionalMenuCascade->enable();
326 myDemandMenuCascade->enable();
327 myDataMenuCascade->enable();
328 myMeanDataMenuCascade->enable();
329}
330
331
332void
334 mySumoConfigMenuCascade->disable();
335 myNeteditConfigMenuCascade->disable();
336 myTLSMenuCascade->disable();
337 myEdgeTypesMenuCascade->disable();
338 myAdditionalMenuCascade->disable();
339 myDemandMenuCascade->disable();
340 myDataMenuCascade->disable();
341 myMeanDataMenuCascade->disable();
342}
343
344
345void
347 myTLSMenuCascade->show();
348 myDataMenuCascade->show();
349 myMeanDataMenuCascade->show();
350}
351
352
353void
355 myTLSMenuCascade->hide();
356 myDataMenuCascade->hide();
357 myMeanDataMenuCascade->hide();
358}
359
360
361void
364 TL("Save Netedit Config"), "Ctrl+Shift+E", TL("Save netedit configuration file."),
366
368 TL("Save Netedit Config As..."), "", TL("Save netedit configuration in a new file."),
370
371 new FXMenuSeparator(menuPane);
372
374 TL("Reload Netedit Config"), "", TL("Reload netedit configuration."),
376}
377
378
379void
382 TL("Save Sumo Config"), "Ctrl+Shift+S", TL("Save sumo configuration file."),
384
386 TL("Save Sumo Config As..."), "", TL("Save sumo configuration in a new file."),
388
389 new FXMenuSeparator(menuPane);
390
392 TL("Reload Sumo Config"), "", TL("Reload sumo configuration."),
394}
395
396
397void
400 TL("Load TLS Programs..."), "Ctrl+K", TL("Load programs for traffic lights in the current net."),
402
403 new FXMenuSeparator(menuPane);
404
406 TL("Save TLS Programs"), "Ctrl+Shift+K", TL("Save all traffic light programs of the current network."),
408
410 TL("Save TLS Programs As..."), "", TL("Save all traffic light programs of the current network to another file."),
412
413 new FXMenuSeparator(menuPane);
414
416 TL("Reload TLS Programs"), "", TL("Reload TLS Programs."),
418}
419
420
421void
424 TL("Load Edge Types..."), "Ctrl+H", TL("Load edge types in the current net."),
426
427 new FXMenuSeparator(menuPane);
428
430 TL("Save Edge Types"), "Ctrl+Shift+H", TL("Save edge types of the current net."),
432
434 TL("Save Edge Types As..."), "", TL("Save edge types of the current net to another file."),
436
437 new FXMenuSeparator(menuPane);
438
440 TL("Reload edge types"), "", TL("Reload edge types."),
442}
443
444
445void
448 TL("Load Additionals..."), "Ctrl+A", TL("Load additionals and shapes."),
450
451 new FXMenuSeparator(menuPane);
452
454 TL("Save Additionals"), "Ctrl+Shift+A", TL("Save additionals and shapes."),
456
458 TL("Save Additionals unified as..."), "", TL("Save all additional elements to the chosen file."),
460
462 TL("Save JuPedSim Elements as..."), "", TL("Save JuPedSim elements in a separated file."),
464
465 new FXMenuSeparator(menuPane);
466
468 TL("Reload Additionals"), "", TL("Reload additionals."),
470}
471
472
473void
476 TL("Load Demand Elements..."), "Ctrl+D", TL("Load demand elements."),
478
479 new FXMenuSeparator(menuPane);
480
482 TL("Save Demand Elements"), "Ctrl+Shift+D", TL("Save demand elements."),
484
486 TL("Save Demand Elements unified as..."), "", TL("Save all demand elements to the chosen file"),
488
489 new FXMenuSeparator(menuPane);
490
492 TL("Reload Demand Elements"), "", TL("Reload demand elements."),
494}
495
496
497void
500 TL("Load Data Elements..."), "Ctrl+B", TL("Load data elements."),
502
503 new FXMenuSeparator(menuPane);
504
506 TL("Save Data Elements"), "Ctrl+Shift+B", TL("Save data elements."),
508
510 TL("Save Data Elements unified as..."), "", TL("Save all data elements to the chosen file."),
512
513 new FXMenuSeparator(menuPane);
514
516 TL("Reload Data Elements"), "", TL("Reload data elements."),
518}
519
520
521void
524 TL("Load MeanDatas..."), "", TL("Load meanDatas and shapes."),
526
527 new FXMenuSeparator(menuPane);
528
530 TL("Save MeanDatas"), "", TL("Save meanDatas and shapes."),
532
534 TL("Save MeanDatas unified as..."), "Ctrl+Shift+M", TL("Save all meanData elements to the chosen file."),
536
537 new FXMenuSeparator(menuPane);
538
540 TL("Reload MeanDatas"), "", TL("Reload meanDatas."),
542}
543
544// ---------------------------------------------------------------------------
545// GNEApplicationWindowHelper::ModesMenuCommands::CommonMenuCommands - methods
546// ---------------------------------------------------------------------------
547
549 myModesMenuCommandsParent(modesMenuCommandsParent) {
550}
551
552
553void
555 // build every FXMenuCommand giving it a shortcut
556 inspectMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
557 TL("&Inspect"), "I", TL("Inspect elements and change their attributes."),
558 GUIIconSubSys::getIcon(GUIIcon::MODEINSPECT), myModesMenuCommandsParent->myGNEApp, MID_HOTKEY_I_MODE_INSPECT);
559 deleteMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
560 TL("&Delete"), "D", TL("Delete elements."),
562 selectMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
563 TL("&Select"), "S", TL("Select elements."),
565}
566
567// ---------------------------------------------------------------------------
568// GNEApplicationWindowHelper::ModesMenuCommands::NetworkMenuCommands - methods
569// ---------------------------------------------------------------------------
570
572 myModesMenuCommandsParent(modesMenuCommandsParent) {
573}
574
575
576void
578 createEdgeMode->show();
579 moveMode->show();
580 connectMode->show();
581 prohibitionMode->show();
582 TLSMode->show();
583 additionalMode->show();
584 crossingMode->show();
585 TAZMode->show();
586 shapeMode->show();
587 wireMode->show();
588 decalMode->show();
589}
590
591
592void
594 createEdgeMode->hide();
595 moveMode->hide();
596 connectMode->hide();
597 prohibitionMode->hide();
598 TLSMode->hide();
599 additionalMode->hide();
600 crossingMode->hide();
601 TAZMode->hide();
602 shapeMode->hide();
603 wireMode->hide();
604 decalMode->hide();
605}
606
607
608void
610 // build every FXMenuCommand giving it a shortcut
611 moveMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
612 TL("&Move"), "M", TL("Move elements."),
613 GUIIconSubSys::getIcon(GUIIcon::MODEMOVE), myModesMenuCommandsParent->myGNEApp,
615 createEdgeMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
616 TL("&Edge"), "E", TL("Create junction and edges."),
617 GUIIconSubSys::getIcon(GUIIcon::MODECREATEEDGE), myModesMenuCommandsParent->myGNEApp,
619 TLSMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
620 TL("&Traffic light"), "T", TL("Modes traffic lights over junctions."),
621 GUIIconSubSys::getIcon(GUIIcon::MODETLS), myModesMenuCommandsParent->myGNEApp,
623 connectMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
624 TL("&Connection"), "C", TL("Modes connections between lanes."),
625 GUIIconSubSys::getIcon(GUIIcon::MODECONNECTION), myModesMenuCommandsParent->myGNEApp,
627 prohibitionMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
628 TL("Pro&hibition"), "H", TL("Modes connection prohibitions."),
629 GUIIconSubSys::getIcon(GUIIcon::MODEPROHIBITION), myModesMenuCommandsParent->myGNEApp,
631 crossingMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
632 TL("C&rossing"), "R", TL("Create crossings between edges."),
633 GUIIconSubSys::getIcon(GUIIcon::MODECROSSING), myModesMenuCommandsParent->myGNEApp,
635 additionalMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
636 TL("&Additional"), "A", TL("Create additional elements."),
637 GUIIconSubSys::getIcon(GUIIcon::MODEADDITIONAL), myModesMenuCommandsParent->myGNEApp,
639 wireMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
640 TL("&Wire"), "W", TL("Create wires."),
641 GUIIconSubSys::getIcon(GUIIcon::MODEWIRE), myModesMenuCommandsParent->myGNEApp,
643 TAZMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
644 TL("TA&Z"), "Z", TL("Create Traffic Assignment Zones."),
645 GUIIconSubSys::getIcon(GUIIcon::MODETAZ), myModesMenuCommandsParent->myGNEApp,
647 shapeMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
648 TL("&POI-Poly"), "P", TL("Create Points-Of-Interest and polygons."),
649 GUIIconSubSys::getIcon(GUIIcon::MODESHAPE), myModesMenuCommandsParent->myGNEApp,
651 decalMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
652 TL("Deca&ls"), "U", TL("Create decals."),
653 GUIIconSubSys::getIcon(GUIIcon::MODEDECAL), myModesMenuCommandsParent->myGNEApp,
655}
656
657// ---------------------------------------------------------------------------
658// GNEApplicationWindowHelper::ModesMenuCommands::DemandMenuCommands - methods
659// ---------------------------------------------------------------------------
660
662 myModesMenuCommandsParent(modesMenuCommandsParent) {
663}
664
665
666void
668 moveMode->show();
669 routeMode->show();
670 routeDistributionMode->show();
671 vehicleMode->show();
672 typeMode->show();
673 typeDistributionMode->show();
674 stopMode->show();
675 personMode->show();
676 personPlanMode->show();
677 containerMode->show();
678 containerPlanMode->show();
679}
680
681
682void
684 moveMode->hide();
685 routeMode->hide();
686 routeDistributionMode->hide();
687 vehicleMode->hide();
688 typeMode->hide();
689 typeDistributionMode->hide();
690 stopMode->hide();
691 personMode->hide();
692 personPlanMode->hide();
693 containerMode->hide();
694 containerPlanMode->hide();
695}
696
697
698void
700 // build every FXMenuCommand giving it a shortcut
701 moveMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
702 TL("&Move"), "M", TL("Move elements."),
703 GUIIconSubSys::getIcon(GUIIcon::MODEMOVE), myModesMenuCommandsParent->myGNEApp, MID_HOTKEY_M_MODE_MOVE_MEANDATA);
704 routeMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
705 TL("Route"), "R", TL("Create Routes."),
707 routeDistributionMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
708 TL("Route distribution"), "W", TL("Create and edit route distributions."),
709 GUIIconSubSys::getIcon(GUIIcon::MODEROUTEDISTRIBUTION), myModesMenuCommandsParent->myGNEApp,
711 vehicleMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
712 TL("Vehicle"), "V", TL("Create vehicles."),
713 GUIIconSubSys::getIcon(GUIIcon::MODEVEHICLE), myModesMenuCommandsParent->myGNEApp, MID_HOTKEY_V_MODE_VEHICLE);
714 typeMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
715 TL("Type"), "T", TL("Create types (vehicles, person and containers)."),
716 GUIIconSubSys::getIcon(GUIIcon::MODETYPE), myModesMenuCommandsParent->myGNEApp, MID_HOTKEY_T_MODE_TLS_TYPE);
717 typeDistributionMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
718 TL("TypeDistribution"), "U", TL("Create and edit type distributions."),
720 stopMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
721 TL("Stop"), "A", TL("Create stops."),
723 personMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
724 TL("Person"), "P", TL("Create persons."),
726 personPlanMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
727 TL("Person plan"), "L", TL("Create person plans."),
729 containerMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
730 TL("Container"), "C", TL("Create containers."),
732 containerPlanMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
733 TL("Container plan"), "H", TL("Create container plans."),
735}
736
737// ---------------------------------------------------------------------------
738// GNEApplicationWindowHelper::ModesMenuCommands::DataMenuCommands - methods
739// ---------------------------------------------------------------------------
740
742 myModesMenuCommandsParent(modesMenuCommandsParent) {
743}
744
745
746void
748 edgeData->show();
749 edgeRelData->show();
750 TAZRelData->show();
751 meanData->show();
752}
753
754
755void
757 edgeData->hide();
758 edgeRelData->hide();
759 TAZRelData->hide();
760 meanData->hide();
761}
762
763
764void
766 // build every FXMenuCommand giving it a shortcut
767 edgeData = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
768 TL("&EdgeData"), "E", TL("Create edgeData elements."),
770 edgeRelData = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
771 TL("Edge&Relation"), "R", TL("Create edgeRelation elements."),
773 TAZRelData = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
774 TL("TA&ZRelation"), "Z", TL("Create TAZRelation elements."),
776 meanData = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
777 TL("&MeanData"), "M", TL("Create MeanData edge/lanes."),
779}
780
781
782// ---------------------------------------------------------------------------
783// GNEApplicationWindowHelper::ModesMenuCommands - methods
784// ---------------------------------------------------------------------------
785#ifdef _MSC_VER
786#pragma warning(push)
787#pragma warning(disable: 4355) // mask warning about "this" in initializers
788#endif
796#ifdef _MSC_VER
797#pragma warning(pop)
798#endif
799
800
801void
803 commonMenuCommands.buildCommonMenuCommands(modesMenu);
804 // build Network modes commands and hide it
805 networkMenuCommands.buildNetworkMenuCommands(modesMenu);
806 networkMenuCommands.hideNetworkMenuCommands();
807 // build Demand Modes commands
808 demandMenuCommands.buildDemandMenuCommands(modesMenu);
809 demandMenuCommands.hideDemandMenuCommands();
810 // build Data Modes commands
811 dataMenuCommands.buildDataMenuCommands(modesMenu);
812 dataMenuCommands.hideDataMenuCommands();
813}
814
815
816void
818 if (supermode == Supermode::NETWORK) {
819 networkMenuCommands.showNetworkMenuCommands();
820 } else if (supermode == Supermode::DEMAND) {
821 demandMenuCommands.showDemandMenuCommands();
822 } else if (supermode == Supermode::DATA) {
823 dataMenuCommands.showDataMenuCommands();
824 }
825}
826
827
828void
830 if (supermode == Supermode::NETWORK) {
831 networkMenuCommands.connectMode->hide();
832 networkMenuCommands.TLSMode->hide();
833 networkMenuCommands.prohibitionMode->hide();
834 networkMenuCommands.wireMode->hide();
835 networkMenuCommands.decalMode->hide();
836 } else if (supermode == Supermode::DEMAND) {
837 demandMenuCommands.moveMode->hide();
838 demandMenuCommands.vehicleMode->hide();
839 demandMenuCommands.stopMode->hide();
840 demandMenuCommands.containerMode->hide();
841 demandMenuCommands.containerPlanMode->hide();
842 } else if (supermode == Supermode::DATA) {
843 dataMenuCommands.hideDataMenuCommands();
844 }
845}
846
847// ---------------------------------------------------------------------------
848// GNEApplicationWindowHelper::EditMenuCommands::NetworkViewOptions - methods
849// ---------------------------------------------------------------------------
850
854
855
856void
858 // create menu checks
859 menuCheckToggleGrid = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
860 TL("Show grid"), "Ctrl+G or Alt+1", "",
863
864 menuCheckToggleDrawJunctionShape = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
865 TL("Hide junction shape"), "Ctrl+J or Alt+2", "",
868
869 menuCheckDrawSpreadVehicles = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
870 TL("Draw vehicles spread in lane or in depart position"), "Alt+3", "",
873
874 menuCheckShowDemandElements = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
875 TL("Show demand elements"), "Alt+4", "",
878
879 menuCheckSelectEdges = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
880 TL("Clicking should target lanes"), "Alt+5", "",
883
884 menuCheckShowConnections = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
885 TL("Show connections over junctions"), "Alt+6", "",
888
889 menuCheckHideConnections = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
890 TL("Hide connections"), "Alt+7", "",
893
894 menuCheckShowAdditionalSubElements = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
895 TL("Show sub-additional elements"), "Alt+8", "",
898
899 menuCheckShowTAZElements = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
900 TL("Show TAZ elements"), "Alt+9", "",
903
904 menuCheckExtendSelection = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
905 TL("Selecting multiple edges automatically select their junctions"), "Alt+10", "",
908
909 menuCheckChangeAllPhases = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
910 TL("Clicking should apply state changes to all phases of TLS plan"), "Alt+5", "",
913
914 menuCheckMergeAutomatically = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
915 TL("Don't ask for confirmation before merging junction"), "Alt+5", "",
918
919 menuCheckChainEdges = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
920 TL("Create consecutive edges"), "Alt+5", "",
923
924 menuCheckAutoOppositeEdge = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
925 TL("Create an edge in the opposite direction"), "Alt+6", "",
928
929 menuCheckMoveElevation = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
930 TL("Apply mouse movement to elevation"), "Alt+7", "",
933
934 menuCheckShowJunctionBubble = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
935 TL("Show bubbles over junctions shapes"), "Alt+8", "",
938
939 // build separator
940 separator = new FXMenuSeparator(editMenu);
941}
942
943
944void
946 menuCheckToggleGrid->hide();
947 menuCheckToggleDrawJunctionShape->hide();
948 menuCheckDrawSpreadVehicles->hide();
949 menuCheckShowDemandElements->hide();
950 menuCheckSelectEdges->hide();
951 menuCheckShowConnections->hide();
952 menuCheckHideConnections->hide();
953 menuCheckShowAdditionalSubElements->hide();
954 menuCheckShowTAZElements->hide();
955 menuCheckExtendSelection->hide();
956 menuCheckChangeAllPhases->hide();
957 menuCheckMergeAutomatically->hide();
958 menuCheckShowJunctionBubble->hide();
959 menuCheckMoveElevation->hide();
960 menuCheckChainEdges->hide();
961 menuCheckAutoOppositeEdge->hide();
962 separator->hide();
963}
964
965
966void
968 int index = 2;
969 // update all accel text
970 if (menuCheckDrawSpreadVehicles->shown()) {
971 menuCheckDrawSpreadVehicles->setAccelText(("Alt+" + toString(index)).c_str());
972 index++;
973 }
974 if (menuCheckDrawSpreadVehicles->shown()) {
975 menuCheckDrawSpreadVehicles->setAccelText(("Alt+" + toString(index)).c_str());
976 index++;
977 }
978 if (menuCheckShowDemandElements->shown()) {
979 menuCheckShowDemandElements->setAccelText(("Alt+" + toString(index)).c_str());
980 index++;
981 }
982 if (menuCheckSelectEdges->shown()) {
983 menuCheckSelectEdges->setAccelText(("Alt+" + toString(index)).c_str());
984 index++;
985 }
986 if (menuCheckShowConnections->shown()) {
987 menuCheckShowConnections->setAccelText(("Alt+" + toString(index)).c_str());
988 index++;
989 }
990 if (menuCheckHideConnections->shown()) {
991 menuCheckHideConnections->setAccelText(("Alt+" + toString(index)).c_str());
992 index++;
993 }
994 if (menuCheckShowAdditionalSubElements->shown()) {
995 menuCheckShowAdditionalSubElements->setAccelText(("Alt+" + toString(index)).c_str());
996 index++;
997 }
998 if (menuCheckShowTAZElements->shown()) {
999 menuCheckShowTAZElements->setAccelText(("Alt+" + toString(index)).c_str());
1000 index++;
1001 }
1002 if (menuCheckExtendSelection->shown()) {
1003 menuCheckExtendSelection->setAccelText(("Alt+" + toString(index)).c_str());
1004 index++;
1005 }
1006 if (menuCheckChangeAllPhases->shown()) {
1007 menuCheckChangeAllPhases->setAccelText(("Alt+" + toString(index)).c_str());
1008 index++;
1009 }
1010 if (menuCheckMergeAutomatically->shown()) {
1011 menuCheckMergeAutomatically->setAccelText(("Alt+" + toString(index)).c_str());
1012 index++;
1013 }
1014 if (menuCheckChainEdges->shown()) {
1015 menuCheckChainEdges->setAccelText(("Alt+" + toString(index)).c_str());
1016 index++;
1017 }
1018 if (menuCheckAutoOppositeEdge->shown()) {
1019 menuCheckAutoOppositeEdge->setAccelText(("Alt+" + toString(index)).c_str());
1020 index++;
1021 }
1022 if (menuCheckMoveElevation->shown()) {
1023 menuCheckMoveElevation->setAccelText(("Alt+" + toString(index)).c_str());
1024 index++;
1025 }
1026 if (menuCheckShowJunctionBubble->shown()) {
1027 menuCheckShowJunctionBubble->setAccelText(("Alt+" + toString(index)).c_str());
1028 index++;
1029 }
1030}
1031
1032// ---------------------------------------------------------------------------
1033// GNEApplicationWindowHelper::DemandViewOptions - methods
1034// ---------------------------------------------------------------------------
1035
1039
1040
1041void
1043 // create menu checks
1044 menuCheckToggleGrid = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1045 TL("Show grid"), "Ctrl+G or Alt+1", "",
1048
1049 menuCheckToggleDrawJunctionShape = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1050 TL("Hide junction shape"), "Ctrl+J or Alt+2", "",
1053
1054 menuCheckDrawSpreadVehicles = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1055 TL("Draw vehicles spread/depart position"), "Alt+3", "",
1058
1059 menuCheckHideShapes = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1060 TL("Show shapes"), "Alt+4", "",
1063
1064 menuCheckShowAllTrips = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1065 TL("Show all trips"), "Alt+5", "",
1068
1069 menuCheckShowAllPersonPlans = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1070 TL("Show all person plans"), "Alt+6", "",
1073
1074 menuCheckLockPerson = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1075 TL("Lock selected person"), "Alt+7", "",
1078
1079 menuCheckShowAllContainerPlans = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1080 TL("Show all container plans"), "Alt+6", "",
1083
1084 menuCheckLockContainer = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1085 TL("Lock selected container"), "Alt+7", "",
1088
1089 menuCheckHideNonInspectedDemandElements = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1090 TL("Show non-inspected demand elements"), "Alt+8", "",
1093
1094 menuCheckShowOverlappedRoutes = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1095 TL("Show number of overlapped routes"), "Alt+9", "",
1098
1099 // build separator
1100 separator = new FXMenuSeparator(editMenu);
1101}
1102
1103
1104void
1106 menuCheckToggleGrid->hide();
1107 menuCheckToggleDrawJunctionShape->hide();
1108 menuCheckDrawSpreadVehicles->hide();
1109 menuCheckHideShapes->hide();
1110 menuCheckShowAllTrips->hide();
1111 menuCheckHideNonInspectedDemandElements->hide();
1112 menuCheckShowOverlappedRoutes->hide();
1113 menuCheckShowAllPersonPlans->hide();
1114 menuCheckLockPerson->hide();
1115 menuCheckShowAllContainerPlans->hide();
1116 menuCheckLockContainer->hide();
1117 separator->hide();
1118}
1119
1120
1121void
1123 int index = 2;
1124 // update all accel text
1125 if (menuCheckDrawSpreadVehicles->shown()) {
1126 menuCheckDrawSpreadVehicles->setAccelText(("Alt+" + toString(index)).c_str());
1127 index++;
1128 }
1129 if (menuCheckHideShapes->shown()) {
1130 menuCheckHideShapes->setAccelText(("Alt+" + toString(index)).c_str());
1131 index++;
1132 }
1133 if (menuCheckShowAllTrips->shown()) {
1134 menuCheckShowAllTrips->setAccelText(("Alt+" + toString(index)).c_str());
1135 index++;
1136 }
1137 if (menuCheckHideNonInspectedDemandElements->shown()) {
1138 menuCheckHideNonInspectedDemandElements->setAccelText(("Alt+" + toString(index)).c_str());
1139 index++;
1140 }
1141 if (menuCheckShowOverlappedRoutes->shown()) {
1142 menuCheckShowOverlappedRoutes->setAccelText(("Alt+" + toString(index)).c_str());
1143 index++;
1144 }
1145 if (menuCheckShowAllPersonPlans->shown()) {
1146 menuCheckShowAllPersonPlans->setAccelText(("Alt+" + toString(index)).c_str());
1147 index++;
1148 }
1149 if (menuCheckLockPerson->shown()) {
1150 menuCheckLockPerson->setAccelText(("Alt+" + toString(index)).c_str());
1151 index++;
1152 }
1153 if (menuCheckShowAllContainerPlans->shown()) {
1154 menuCheckShowAllContainerPlans->setAccelText(("Alt+" + toString(index)).c_str());
1155 index++;
1156 }
1157 if (menuCheckLockContainer->shown()) {
1158 menuCheckLockContainer->setAccelText(("Alt+" + toString(index)).c_str());
1159 index++;
1160 }
1161}
1162
1163// ---------------------------------------------------------------------------
1164// GNEApplicationWindowHelper::EditMenuCommands::DataViewOptions - methods
1165// ---------------------------------------------------------------------------
1166
1170
1171
1172void
1174 // create menu checks
1175 menuCheckToggleDrawJunctionShape = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1176 TL("Hide junction shape"), "Ctrl+J or Alt+1", "",
1179
1180 menuCheckShowAdditionals = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1181 TL("Show additionals"), "Alt+2", "",
1184
1185 menuCheckShowShapes = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1186 TL("Show shapes"), "Alt+3", "",
1189
1190 menuCheckShowDemandElements = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1191 TL("Show demand elements"), "Alt+4", "",
1194
1195 menuCheckToggleTAZRelDrawing = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1196 TL("Draw TAZRel from center"), "Alt+5", "",
1199
1200 menuCheckToggleTAZDrawFill = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1201 TL("Draw TAZ fill"), "Alt+6", "",
1204
1205 menuCheckToggleTAZRelOnlyFrom = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1206 TL("Only draw TAZRel from"), "Alt+6", "",
1209
1210 menuCheckToggleTAZRelOnlyTo = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1211 TL("Only draw TAZRel to"), "Alt+7", "",
1214 // build separator
1215 separator = new FXMenuSeparator(editMenu);
1216}
1217
1218
1219void
1221 menuCheckToggleDrawJunctionShape->hide();
1222 menuCheckShowAdditionals->hide();
1223 menuCheckShowShapes->hide();
1224 menuCheckShowDemandElements->hide();
1225 menuCheckToggleTAZRelDrawing->hide();
1226 menuCheckToggleTAZDrawFill->hide();
1227 menuCheckToggleTAZRelOnlyFrom->hide();
1228 menuCheckToggleTAZRelOnlyTo->hide();
1229 separator->hide();
1230}
1231
1232
1233void
1235 int index = 2;
1236 // update all accel text
1237 if (menuCheckShowAdditionals->shown()) {
1238 menuCheckShowAdditionals->setAccelText(("Alt+" + toString(index)).c_str());
1239 index++;
1240 }
1241 if (menuCheckShowShapes->shown()) {
1242 menuCheckShowShapes->setAccelText(("Alt+" + toString(index)).c_str());
1243 index++;
1244 }
1245 if (menuCheckShowDemandElements->shown()) {
1246 menuCheckShowDemandElements->setAccelText(("Alt+" + toString(index)).c_str());
1247 index++;
1248 }
1249 if (menuCheckToggleTAZRelDrawing->shown()) {
1250 menuCheckToggleTAZRelDrawing->setAccelText(("Alt+" + toString(index)).c_str());
1251 index++;
1252 }
1253 if (menuCheckToggleTAZDrawFill->shown()) {
1254 menuCheckToggleTAZDrawFill->setAccelText(("Alt+" + toString(index)).c_str());
1255 index++;
1256 }
1257 if (menuCheckToggleTAZRelOnlyFrom->shown()) {
1258 menuCheckToggleTAZRelOnlyFrom->setAccelText(("Alt+" + toString(index)).c_str());
1259 index++;
1260 }
1261 if (menuCheckToggleTAZRelOnlyTo->shown()) {
1262 menuCheckToggleTAZRelOnlyTo->setAccelText(("Alt+" + toString(index)).c_str());
1263 index++;
1264 }
1265}
1266
1267// ---------------------------------------------------------------------------
1268// GNEApplicationWindowHelper::EditMenuCommands - methods
1269// ---------------------------------------------------------------------------
1270
1277
1278
1279void
1281 // build undo/redo command
1282 undoLastChange = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
1283 TL("Undo"), "Ctrl+Z", TL("Undo the last change."),
1285 redoLastChange = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
1286 TL("Redo"), "Ctrl+Y", TL("Redo the last change."),
1288 openUndolistDialog = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
1289 TL("Show undo/redo history"), "", TL("Open undo/redo history dialog."),
1291 // add checkBox for recomputing in data mode
1292 menuCheckAllowUndoRedo = GUIDesigns::buildFXMenuCheckbox(editMenu,
1293 TL("Allow undo-redo"), "",
1294 myGNEApp, MID_GNE_TOGGLE_UNDOREDO);
1295 menuCheckAllowUndoRedo->setCheck(myGNEApp->getApp()->reg().readBoolEntry("NETEDIT", "AllowUndoRedo", true));
1296}
1297
1298
1299void
1301 // build rest of menu commands
1302 editViewScheme = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
1303 TL("Edit Visualisation"), "F9", TL("Opens a dialog for editing visualization settings."),
1305 editViewPort = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
1306 TL("Edit Viewport"), "Ctrl+I", TL("Opens a dialog for editing viewing area, zoom and rotation."),
1308}
1309
1310
1311void
1313 // add clear front element
1314 clearFrontElement = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
1315 TL("Clear front element"), "F11", TL("Clear current front element"),
1317}
1318
1319
1320void
1322 // add open in sumo options
1323 loadAdditionalsInSUMOGUI = GUIDesigns::buildFXMenuCheckbox(editMenu,
1324 TL("Load additionals in sumo-gui"), TL("Load additionals in sumo-gui."),
1326 loadAdditionalsInSUMOGUI->setCheck(TRUE);
1327 loadDemandInSUMOGUI = GUIDesigns::buildFXMenuCheckbox(editMenu,
1328 TL("Load demand in sumo-gui"), TL("Load demand in sumo-gui."),
1329 myGNEApp, MID_TOOLBAREDIT_LOADDEMAND);
1330 loadDemandInSUMOGUI->setCheck(TRUE);
1331 openInSUMOGUI = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
1332 TL("Open in sumo-gui"), "Ctrl+T", TL("Opens the sumo-gui application with the current network."),
1334}
1335
1336// ---------------------------------------------------------------------------
1337// GNEApplicationWindowHelper::LockMenuCommands - methods
1338// ---------------------------------------------------------------------------
1339
1343
1344
1345void
1347 // network
1348 menuCheckLockJunction = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1349 TL("&Junctions"), "", "",
1351 myGNEApp, MID_GNE_LOCK_ELEMENT);
1352
1353 menuCheckLockEdges = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1354 TL("&Edges"), "", "",
1356 myGNEApp, MID_GNE_LOCK_ELEMENT);
1357
1358 menuCheckLockLanes = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1359 TL("&Lanes"), "", "",
1361 myGNEApp, MID_GNE_LOCK_ELEMENT);
1362
1363 menuCheckLockConnections = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1364 TL("&Connections"), "", "",
1366 myGNEApp, MID_GNE_LOCK_ELEMENT);
1367
1368 menuCheckLockCrossings = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1369 TL("C&rossings"), "", "",
1371 myGNEApp, MID_GNE_LOCK_ELEMENT);
1372
1373 menuCheckLockWalkingAreas = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1374 TL("Walkin&gAreas"), "", "",
1376 myGNEApp, MID_GNE_LOCK_ELEMENT);
1377
1378 menuCheckLockAdditionals = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1379 TL("&Additionals"), "", "",
1381 myGNEApp, MID_GNE_LOCK_ELEMENT);
1382
1383 menuCheckLockTAZs = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1384 TL("&TAZs"), "", "",
1386 myGNEApp, MID_GNE_LOCK_ELEMENT);
1387
1388 menuCheckLockWires = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1389 TL("&Wires"), "", "",
1391 myGNEApp, MID_GNE_LOCK_ELEMENT);
1392
1393 menuCheckLockPolygons = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1394 TL("&Polygons"), "", "",
1396 myGNEApp, MID_GNE_LOCK_ELEMENT);
1397
1398 menuCheckLockPOIs = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1399 TL("P&OIs"), "", "",
1401 myGNEApp, MID_GNE_LOCK_ELEMENT);
1402
1403 menuCheckLockJpsWalkableAreas = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1404 TL("WalkableAreas"), "", "",
1406 myGNEApp, MID_GNE_LOCK_ELEMENT);
1407
1408 menuCheckLockJpsObstacles = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1409 TL("Obstacles"), "", "",
1411 myGNEApp, MID_GNE_LOCK_ELEMENT);
1412 // demand
1413 menuCheckLockRoutes = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1414 TL("&Routes"), "", "",
1416 myGNEApp, MID_GNE_LOCK_ELEMENT);
1417
1418 menuCheckLockVehicles = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1419 TL("&Vehicles"), "", "",
1421 myGNEApp, MID_GNE_LOCK_ELEMENT);
1422
1423 menuCheckLockPersons = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1424 TL("&Persons"), "", "",
1426 myGNEApp, MID_GNE_LOCK_ELEMENT);
1427
1428 menuCheckLockPersonTrip = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1429 TL("Person&Trips"), "", "",
1431 myGNEApp, MID_GNE_LOCK_ELEMENT);
1432
1433 menuCheckLockWalk = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1434 TL("&Walks"), "", "",
1436 myGNEApp, MID_GNE_LOCK_ELEMENT);
1437
1438 menuCheckLockRides = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1439 TL("Ri&des"), "", "",
1441 myGNEApp, MID_GNE_LOCK_ELEMENT);
1442
1443 menuCheckLockContainers = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1444 TL("&Containers"), "", "",
1446 myGNEApp, MID_GNE_LOCK_ELEMENT);
1447
1448 menuCheckLockTransports = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1449 TL("Tra&nsports"), "", "",
1451 myGNEApp, MID_GNE_LOCK_ELEMENT);
1452
1453 menuCheckLockTranships = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1454 TL("Trans&hips"), "", "",
1456 myGNEApp, MID_GNE_LOCK_ELEMENT);
1457
1458 menuCheckLockStops = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1459 TL("Stop&s"), "", "",
1461 myGNEApp, MID_GNE_LOCK_ELEMENT);
1462 // data
1463 menuCheckLockEdgeDatas = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1464 TL("&EdgeDatas"), "", "",
1466 myGNEApp, MID_GNE_LOCK_ELEMENT);
1467
1468 menuCheckLockEdgeRelDatas = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1469 TL("E&dgeRelDatas"), "", "",
1471 myGNEApp, MID_GNE_LOCK_ELEMENT);
1472
1473 menuCheckLockEdgeTAZRels = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1474 TL("Edge&TAZRel"), "", "",
1476 myGNEApp, MID_GNE_LOCK_ELEMENT);
1477
1478 // separator
1479 new FXMenuSeparator(fileMenu);
1480
1481 menuCheckLockSelectedElements = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1482 TL("Lock selected elements"), "", TL("selected elements"),
1484
1485 // separator
1486 new FXMenuSeparator(fileMenu);
1487
1489 TL("Lock all elements"), "", TL("all elements"),
1491
1493 TL("Unlock all elements"), "", TL("Unlock all elements"),
1495}
1496
1497
1498void
1500 // network
1501 menuCheckLockJunction->remHotKey(parseHotKey('j'));
1502 menuCheckLockEdges->remHotKey(parseHotKey('e'));
1503 menuCheckLockLanes->remHotKey(parseHotKey('l'));
1504 menuCheckLockConnections->remHotKey(parseHotKey('c'));
1505 menuCheckLockCrossings->remHotKey(parseHotKey('r'));
1506 menuCheckLockWalkingAreas->remHotKey(parseHotKey('g'));
1507 menuCheckLockAdditionals->remHotKey(parseHotKey('a'));
1508 menuCheckLockTAZs->remHotKey(parseHotKey('t'));
1509 menuCheckLockWires->remHotKey(parseHotKey('w'));
1510 menuCheckLockPolygons->remHotKey(parseHotKey('p'));
1511 menuCheckLockPOIs->remHotKey(parseHotKey('o'));
1512 menuCheckLockJpsWalkableAreas->remHotKey(parseHotKey('n'));
1513 menuCheckLockJpsObstacles->remHotKey(parseHotKey('b'));
1514 // demand
1515 menuCheckLockRoutes->remHotKey(parseHotKey('r'));
1516 menuCheckLockVehicles->remHotKey(parseHotKey('v'));
1517 menuCheckLockPersons->remHotKey(parseHotKey('p'));
1518 menuCheckLockPersonTrip->remHotKey(parseHotKey('t'));
1519 menuCheckLockWalk->remHotKey(parseHotKey('w'));
1520 menuCheckLockRides->remHotKey(parseHotKey('d'));
1521 menuCheckLockContainers->remHotKey(parseHotKey('c'));
1522 menuCheckLockTransports->remHotKey(parseHotKey('n'));
1523 menuCheckLockTranships->remHotKey(parseHotKey('h'));
1524 menuCheckLockStops->remHotKey(parseHotKey('s'));
1525 // data
1526 menuCheckLockEdgeDatas->remHotKey(parseHotKey('e'));
1527 menuCheckLockEdgeRelDatas->remHotKey(parseHotKey('d'));
1528 menuCheckLockEdgeTAZRels->remHotKey(parseHotKey('t'));
1529}
1530
1531void
1533 // first enable menu commands
1534 menuCheckLockJunction->enable();
1535 menuCheckLockEdges->enable();
1536 menuCheckLockLanes->enable();
1537 menuCheckLockConnections->enable();
1538 menuCheckLockCrossings->enable();
1539 menuCheckLockWalkingAreas->enable();
1540 menuCheckLockAdditionals->enable();
1541 menuCheckLockTAZs->enable();
1542 menuCheckLockWires->enable();
1543 menuCheckLockPolygons->enable();
1544 menuCheckLockPOIs->enable();
1545 menuCheckLockJpsWalkableAreas->enable();
1546 menuCheckLockJpsObstacles->enable();
1547 // set accels
1548 menuCheckLockJunction->addHotKey(parseHotKey('j'));
1549 menuCheckLockEdges->addHotKey(parseHotKey('e'));
1550 menuCheckLockLanes->addHotKey(parseHotKey('l'));
1551 menuCheckLockConnections->addHotKey(parseHotKey('c'));
1552 menuCheckLockCrossings->addHotKey(parseHotKey('r'));
1553 menuCheckLockWalkingAreas->addHotKey(parseHotKey('g'));
1554 menuCheckLockAdditionals->addHotKey(parseHotKey('a'));
1555 menuCheckLockTAZs->addHotKey(parseHotKey('t'));
1556 menuCheckLockWires->addHotKey(parseHotKey('w'));
1557 menuCheckLockPolygons->addHotKey(parseHotKey('p'));
1558 menuCheckLockPOIs->addHotKey(parseHotKey('o'));
1559 menuCheckLockJpsWalkableAreas->addHotKey(parseHotKey('n'));
1560 menuCheckLockJpsObstacles->addHotKey(parseHotKey('b'));
1561 // now show it
1562 menuCheckLockJunction->show();
1563 menuCheckLockEdges->show();
1564 menuCheckLockLanes->show();
1565 menuCheckLockConnections->show();
1566 menuCheckLockCrossings->show();
1567 menuCheckLockWalkingAreas->show();
1568 menuCheckLockAdditionals->show();
1569 menuCheckLockTAZs->show();
1570 menuCheckLockWires->show();
1571 menuCheckLockPolygons->show();
1572 menuCheckLockPOIs->show();
1573 menuCheckLockJpsWalkableAreas->show();
1574 menuCheckLockJpsObstacles->show();
1575}
1576
1577
1578void
1580 // first disable menu commands
1581 menuCheckLockJunction->disable();
1582 menuCheckLockEdges->disable();
1583 menuCheckLockLanes->disable();
1584 menuCheckLockConnections->disable();
1585 menuCheckLockCrossings->disable();
1586 menuCheckLockWalkingAreas->disable();
1587 menuCheckLockAdditionals->disable();
1588 menuCheckLockTAZs->disable();
1589 menuCheckLockPolygons->disable();
1590 menuCheckLockPOIs->disable();
1591 menuCheckLockJpsWalkableAreas->disable();
1592 menuCheckLockJpsObstacles->disable();
1593 // now hide it
1594 menuCheckLockJunction->hide();
1595 menuCheckLockEdges->hide();
1596 menuCheckLockLanes->hide();
1597 menuCheckLockConnections->hide();
1598 menuCheckLockCrossings->hide();
1599 menuCheckLockWalkingAreas->hide();
1600 menuCheckLockAdditionals->hide();
1601 menuCheckLockTAZs->hide();
1602 menuCheckLockWires->hide();
1603 menuCheckLockPolygons->hide();
1604 menuCheckLockPOIs->hide();
1605 menuCheckLockJpsWalkableAreas->hide();
1606 menuCheckLockJpsObstacles->hide();
1607}
1608
1609
1610void
1612 // first enable menu commands
1613 menuCheckLockRoutes->enable();
1614 menuCheckLockVehicles->enable();
1615 menuCheckLockPersons->enable();
1616 menuCheckLockPersonTrip->enable();
1617 menuCheckLockWalk->enable();
1618 menuCheckLockRides->enable();
1619 menuCheckLockContainers->enable();
1620 menuCheckLockTransports->enable();
1621 menuCheckLockTranships->enable();
1622 menuCheckLockStops->enable();
1623 // set accels
1624 menuCheckLockRoutes->addHotKey(parseHotKey('r'));
1625 menuCheckLockVehicles->addHotKey(parseHotKey('v'));
1626 menuCheckLockPersons->addHotKey(parseHotKey('p'));
1627 menuCheckLockPersonTrip->addHotKey(parseHotKey('t'));
1628 menuCheckLockWalk->addHotKey(parseHotKey('w'));
1629 menuCheckLockRides->addHotKey(parseHotKey('d'));
1630 menuCheckLockContainers->addHotKey(parseHotKey('c'));
1631 menuCheckLockTransports->addHotKey(parseHotKey('n'));
1632 menuCheckLockTranships->addHotKey(parseHotKey('h'));
1633 menuCheckLockStops->addHotKey(parseHotKey('s'));
1634 // now show it
1635 menuCheckLockRoutes->show();
1636 menuCheckLockVehicles->show();
1637 menuCheckLockPersons->show();
1638 menuCheckLockPersonTrip->show();
1639 menuCheckLockWalk->show();
1640 menuCheckLockRides->show();
1641 menuCheckLockContainers->show();
1642 menuCheckLockTransports->show();
1643 menuCheckLockTranships->show();
1644 menuCheckLockStops->show();
1645}
1646
1647
1648void
1650 // first disable menu commands
1651 menuCheckLockRoutes->disable();
1652 menuCheckLockVehicles->disable();
1653 menuCheckLockPersons->disable();
1654 menuCheckLockPersonTrip->disable();
1655 menuCheckLockWalk->disable();
1656 menuCheckLockRides->disable();
1657 menuCheckLockContainers->disable();
1658 menuCheckLockTransports->disable();
1659 menuCheckLockTranships->disable();
1660 menuCheckLockStops->disable();
1661 // now hide it
1662 menuCheckLockRoutes->hide();
1663 menuCheckLockVehicles->hide();
1664 menuCheckLockPersons->hide();
1665 menuCheckLockPersonTrip->hide();
1666 menuCheckLockWalk->hide();
1667 menuCheckLockRides->hide();
1668 menuCheckLockContainers->hide();
1669 menuCheckLockTransports->hide();
1670 menuCheckLockTranships->hide();
1671 menuCheckLockStops->hide();
1672}
1673
1674
1675void
1677 // first enable menu commands
1678 menuCheckLockEdgeDatas->enable();
1679 menuCheckLockEdgeRelDatas->enable();
1680 menuCheckLockEdgeTAZRels->enable();
1681 // set accels
1682 menuCheckLockEdgeDatas->addHotKey(parseHotKey('e'));
1683 menuCheckLockEdgeRelDatas->addHotKey(parseHotKey('d'));
1684 menuCheckLockEdgeTAZRels->addHotKey(parseHotKey('t'));
1685 // now show it
1686 menuCheckLockEdgeDatas->show();
1687 menuCheckLockEdgeRelDatas->show();
1688 menuCheckLockEdgeTAZRels->show();
1689}
1690
1691
1692void
1694 // first disable menu commands
1695 menuCheckLockEdgeDatas->disable();
1696 menuCheckLockEdgeRelDatas->disable();
1697 menuCheckLockEdgeTAZRels->disable();
1698 // now hide it
1699 menuCheckLockEdgeDatas->hide();
1700 menuCheckLockEdgeRelDatas->hide();
1701 menuCheckLockEdgeTAZRels->hide();
1702}
1703
1704
1705void
1707 menuCheckLockJunction->setCheck(TRUE);
1708 menuCheckLockEdges->setCheck(TRUE);
1709 menuCheckLockLanes->setCheck(TRUE);
1710 menuCheckLockConnections->setCheck(TRUE);
1711 menuCheckLockCrossings->setCheck(TRUE);
1712 menuCheckLockWalkingAreas->setCheck(TRUE);
1713 menuCheckLockAdditionals->setCheck(TRUE);
1714 menuCheckLockTAZs->setCheck(TRUE);
1715 menuCheckLockWires->setCheck(TRUE);
1716 menuCheckLockPolygons->setCheck(TRUE);
1717 menuCheckLockPOIs->setCheck(TRUE);
1718 menuCheckLockJpsWalkableAreas->setCheck(TRUE);
1719 menuCheckLockJpsObstacles->setCheck(TRUE);
1720 menuCheckLockRoutes->setCheck(TRUE);
1721 menuCheckLockVehicles->setCheck(TRUE);
1722 menuCheckLockPersons->setCheck(TRUE);
1723 menuCheckLockPersonTrip->setCheck(TRUE);
1724 menuCheckLockWalk->setCheck(TRUE);
1725 menuCheckLockRides->setCheck(TRUE);
1726 menuCheckLockContainers->setCheck(TRUE);
1727 menuCheckLockTransports->setCheck(TRUE);
1728 menuCheckLockTranships->setCheck(TRUE);
1729 menuCheckLockStops->setCheck(TRUE);
1730 menuCheckLockEdgeDatas->setCheck(TRUE);
1731 menuCheckLockEdgeRelDatas->setCheck(TRUE);
1732 menuCheckLockEdgeTAZRels->setCheck(TRUE);
1733}
1734
1735
1736void
1738 menuCheckLockJunction->setCheck(FALSE);
1739 menuCheckLockEdges->setCheck(FALSE);
1740 menuCheckLockLanes->setCheck(FALSE);
1741 menuCheckLockConnections->setCheck(FALSE);
1742 menuCheckLockCrossings->setCheck(FALSE);
1743 menuCheckLockWalkingAreas->setCheck(FALSE);
1744 menuCheckLockAdditionals->setCheck(FALSE);
1745 menuCheckLockTAZs->setCheck(FALSE);
1746 menuCheckLockWires->setCheck(FALSE);
1747 menuCheckLockPolygons->setCheck(FALSE);
1748 menuCheckLockPOIs->setCheck(FALSE);
1749 menuCheckLockJpsWalkableAreas->setCheck(FALSE);
1750 menuCheckLockJpsObstacles->setCheck(FALSE);
1751 menuCheckLockRoutes->setCheck(FALSE);
1752 menuCheckLockVehicles->setCheck(FALSE);
1753 menuCheckLockPersons->setCheck(FALSE);
1754 menuCheckLockPersonTrip->setCheck(FALSE);
1755 menuCheckLockWalk->setCheck(FALSE);
1756 menuCheckLockRides->setCheck(FALSE);
1757 menuCheckLockContainers->setCheck(FALSE);
1758 menuCheckLockTransports->setCheck(FALSE);
1759 menuCheckLockTranships->setCheck(FALSE);
1760 menuCheckLockStops->setCheck(FALSE);
1761 menuCheckLockEdgeDatas->setCheck(FALSE);
1762 menuCheckLockEdgeRelDatas->setCheck(FALSE);
1763 menuCheckLockEdgeTAZRels->setCheck(FALSE);
1764}
1765
1766
1767void
1769 // check elements
1770 if (AC->getTagProperty()->getTag() == SUMO_TAG_JUNCTION) {
1771 menuCheckLockJunction->setCheck(value);
1772 } else if (AC->getTagProperty()->getTag() == SUMO_TAG_EDGE) {
1773 menuCheckLockEdges->setCheck(value);
1774 } else if (AC->getTagProperty()->getTag() == SUMO_TAG_LANE) {
1775 menuCheckLockLanes->setCheck(value);
1776 } else if (AC->getTagProperty()->getTag() == SUMO_TAG_CONNECTION) {
1777 menuCheckLockConnections->setCheck(value);
1778 } else if (AC->getTagProperty()->getTag() == SUMO_TAG_CROSSING) {
1779 menuCheckLockCrossings->setCheck(value);
1780 } else if (AC->getTagProperty()->getTag() == SUMO_TAG_WALKINGAREA) {
1781 menuCheckLockWalkingAreas->setCheck(value);
1782 } else if (AC->getTagProperty()->isAdditionalElement()) {
1783 menuCheckLockAdditionals->setCheck(value);
1784 } else if (AC->getTagProperty()->isTAZElement()) {
1785 menuCheckLockTAZs->setCheck(value);
1786 } else if (AC->getTagProperty()->isWireElement()) {
1787 menuCheckLockWires->setCheck(value);
1788 } else if (AC->getTagProperty()->getTag() == SUMO_TAG_POLY) {
1789 menuCheckLockPolygons->setCheck(value);
1790 } else if (AC->getTagProperty()->getTag() == GNE_TAG_JPS_WALKABLEAREA) {
1791 menuCheckLockJpsWalkableAreas->setCheck(value);
1792 } else if (AC->getTagProperty()->getTag() == GNE_TAG_JPS_OBSTACLE) {
1793 menuCheckLockJpsObstacles->setCheck(value);
1794 } else if ((AC->getTagProperty()->getTag() == SUMO_TAG_POI) ||
1795 (AC->getTagProperty()->getTag() == GNE_TAG_POILANE) ||
1796 (AC->getTagProperty()->getTag() == GNE_TAG_POIGEO)) {
1797 menuCheckLockPOIs->setCheck(value);
1798 } else if (AC->getTagProperty()->isRoute()) {
1799 menuCheckLockRoutes->setCheck(value);
1800 } else if (AC->getTagProperty()->isVehicle()) {
1801 menuCheckLockVehicles->setCheck(value);
1802 } else if (AC->getTagProperty()->isPerson()) {
1803 menuCheckLockPersons->setCheck(value);
1804 } else if (AC->getTagProperty()->isPlanPersonTrip()) {
1805 menuCheckLockPersonTrip->setCheck(value);
1806 } else if (AC->getTagProperty()->isPlanWalk()) {
1807 menuCheckLockWalk->setCheck(value);
1808 } else if (AC->getTagProperty()->isPlanRide()) {
1809 menuCheckLockRides->setCheck(value);
1810 } else if (AC->getTagProperty()->isContainer()) {
1811 menuCheckLockContainers->setCheck(value);
1812 } else if (AC->getTagProperty()->isPlanTransport()) {
1813 menuCheckLockTransports->setCheck(value);
1814 } else if (AC->getTagProperty()->isPlanTranship()) {
1815 menuCheckLockTranships->setCheck(value);
1816 } else if (AC->getTagProperty()->isVehicleStop() ||
1819 menuCheckLockStops->setCheck(value);
1820 } else if (AC->getTagProperty()->getTag() == GNE_TAG_EDGEREL_SINGLE) {
1821 menuCheckLockEdgeDatas->setCheck(value);
1822 } else if (AC->getTagProperty()->getTag() == SUMO_TAG_EDGEREL) {
1823 menuCheckLockEdgeRelDatas->setCheck(value);
1824 } else if (AC->getTagProperty()->getTag() == SUMO_TAG_TAZREL) {
1825 menuCheckLockEdgeTAZRels->setCheck(value);
1826 }
1827}
1828
1829
1830FXHotKey
1832 FXuint code = 0, mods = 0;
1833 if (Unicode::isAlphaNumeric(character)) {
1834 mods = ALTMASK;
1835 code = fxucs2keysym(Unicode::toLower(character));
1836 }
1837 return MKUINT(code, mods);
1838}
1839
1840// ---------------------------------------------------------------------------
1841// GNEApplicationWindowHelper::ProcessingMenuCommands - methods
1842// ---------------------------------------------------------------------------
1843
1847
1848
1849void
1851 // build network processing menu commands
1852 computeNetwork = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1853 TL("Compute Junctions"), "F5", TL("Compute junction shape and logic."),
1855 computeNetworkVolatile = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1856 TL("Compute Junctions with volatile options"), "Shift+F5", TL("Compute junction shape and logic using volatile junctions."),
1858 cleanJunctions = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1859 TL("Clean Junctions"), "F6", TL("Remove solitary junctions."),
1861 joinJunctions = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1862 TL("Join Selected Junctions"), "F7", TL("Join selected junctions into a single junction."),
1864 clearInvalidCrossings = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1865 TL("Clean invalid crossings"), "F8", TL("Clear invalid crossings."),
1867 // add separator for checkBox
1868 mySeparatorCheckBox = new FXMenuSeparator(processingMenu);
1869 // add checkBox for recomputing in data mode
1870 menuCheckRecomputeDataMode = GUIDesigns::buildFXMenuCheckboxIcon(processingMenu,
1871 TL("Recompute Network in Data Mode"), "", "",
1873 // set default value
1874 menuCheckRecomputeDataMode->setCheck(myGNEApp->getApp()->reg().readBoolEntry("NETEDIT", "RecomputeData", true));
1875 // build demand processing menu commands
1876 computeDemand = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1877 TL("Compute demand"), "F5", TL("Computes demand elements."),
1879 cleanRoutes = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1880 TL("Clean routes"), "F6", TL("Removes routes without vehicles."),
1882 joinRoutes = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1883 TL("Join routes"), "F7", TL("Joins routes with the same edges."),
1885 adjustPersonPlans = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1886 TL("Adjust person plans"), "Shift+F7", TL("Adjust person plans (start/end positions, arrival positions, etc.)"),
1888 clearInvalidDemandElements = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1889 TL("Clean invalid route elements"), "F8", TL("Clear elements with an invalid path (routes, Trips, Flows...)."),
1891 // add separator
1892 myOptionsSeparator = new FXMenuSeparator(processingMenu);
1893 // create optionmenus
1894 optionMenus = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1895 TL("Sumo options"), "Shift+F10", TL("Configure sumo Options."),
1897 // add separator
1898 myOptionsSeparator = new FXMenuSeparator(processingMenu);
1899 // create optionmenus
1900 optionMenus = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1901 TL("Options"), "F10", TL("Configure netedit Options."),
1903}
1904
1905
1906void
1908 // first enable menu commands
1909 computeNetwork->enable();
1910 computeNetworkVolatile->enable();
1911 cleanJunctions->enable();
1912 joinJunctions->enable();
1913 clearInvalidCrossings->enable();
1914 mySeparatorCheckBox->enable();
1915 menuCheckRecomputeDataMode->enable();
1916 // now show it
1917 computeNetwork->show();
1918 computeNetworkVolatile->show();
1919 cleanJunctions->show();
1920 joinJunctions->show();
1921 clearInvalidCrossings->show();
1922 mySeparatorCheckBox->show();
1923 menuCheckRecomputeDataMode->show();
1924}
1925
1926
1927void
1929 // first disable menu commands
1930 computeNetwork->disable();
1931 computeNetworkVolatile->disable();
1932 cleanJunctions->disable();
1933 joinJunctions->disable();
1934 clearInvalidCrossings->disable();
1935 // now hide it
1936 computeNetwork->hide();
1937 computeNetworkVolatile->hide();
1938 cleanJunctions->hide();
1939 joinJunctions->hide();
1940 clearInvalidCrossings->hide();
1941}
1942
1943
1944void
1946 // first enable menu commands
1947 computeDemand->enable();
1948 cleanRoutes->enable();
1949 joinRoutes->enable();
1950 adjustPersonPlans->enable();
1951 clearInvalidDemandElements->enable();
1952 // now show it
1953 computeDemand->show();
1954 cleanRoutes->show();
1955 joinRoutes->show();
1956 adjustPersonPlans->show();
1957 clearInvalidDemandElements->show();
1958}
1959
1960
1961void
1963 // first disable menu commands
1964 computeDemand->disable();
1965 cleanRoutes->disable();
1966 joinRoutes->disable();
1967 adjustPersonPlans->disable();
1968 clearInvalidDemandElements->disable();
1969 // now hide it
1970 computeDemand->hide();
1971 cleanRoutes->hide();
1972 joinRoutes->hide();
1973 adjustPersonPlans->hide();
1974 clearInvalidDemandElements->hide();
1975}
1976
1977
1978void
1982
1983
1984void
1988
1989
1990void
1994
1995
1996void
2000
2001// ---------------------------------------------------------------------------
2002// GNEApplicationWindowHelper::LocateMenuCommands - methods
2003// ---------------------------------------------------------------------------
2004
2008
2009
2010void
2012 // build locate menu commands
2014 TL("&Junctions"), "Shift+J", TL("Open a dialog for locating a Junction."),
2017 TL("&Edges"), "Shift+E", TL("Open a dialog for locating an Edge."),
2020 TL("&WalkingAreas"), "Shift+W", TL("Open a dialog for locating a Walking Area."),
2023 TL("&Vehicles"), "Shift+V", TL("Open a dialog for locating a Vehicle."),
2026 TL("&Persons"), "Shift+P", TL("Open a dialog for locating a Person."),
2029 TL("&Containers"), "Shift+C", TL("Open a dialog for locating a Container."),
2032 TL("&Route"), "Shift+R", TL("Open a dialog for locating a Route."),
2035 TL("&Stops"), "Shift+S", TL("Open a dialog for locating a Stop."),
2038 TL("&TLS"), "Shift+T", TL("Open a dialog for locating a Traffic Light."),
2041 TL("&Additional"), "Shift+A", TL("Open a dialog for locating an Additional Structure."),
2044 TL("P&oI"), "Shift+O", TL("Open a dialog for locating a Point of Interest."),
2047 TL("Po&lygon"), "Shift+L", TL("Open a dialog for locating a Polygon."),
2049}
2050
2051// ---------------------------------------------------------------------------
2052// GNEApplicationWindowHelper::ToolsMenuCommands - methods
2053// ---------------------------------------------------------------------------
2054
2058
2059
2061 // delete all tools
2062 for (const auto& tool : myPythonTools) {
2063 delete tool;
2064 }
2065 // delete dialogs
2066 delete myPythonToolDialog;
2067 delete myNetgenerateDialog;
2068 delete myRunPythonToolDialog;
2069 delete myRunNetgenerateDialog;
2070}
2071
2072
2073void
2075 const std::map<std::string, FXMenuPane*>& menuPaneToolMaps) {
2076 // build tools from template
2077 // the templateTools vector is imported from templates.h (which only exists in the cmake-build folder)
2078 for (const auto& templateTool : templateTools) {
2079 if (templateTool.name == "netdiff") {
2080 myPythonTools.push_back(new GNENetDiffTool(myGNEApp, templateTool.pythonPath,
2081 menuPaneToolMaps.at(templateTool.subfolder)));
2082 } else if (menuPaneToolMaps.count(templateTool.subfolder) > 0) {
2083 myPythonTools.push_back(new GNEPythonTool(myGNEApp, templateTool.pythonPath,
2084 templateTool.templateStr, menuPaneToolMaps.at(templateTool.subfolder)));
2085 } else {
2086 myPythonTools.push_back(new GNEPythonTool(myGNEApp, templateTool.pythonPath,
2087 templateTool.templateStr, toolsMenu));
2088 }
2089 }
2090 // build dialogs
2091 myPythonToolDialog = new GNEPythonToolDialog(myGNEApp);
2092 myNetgenerateDialog = new GNENetgenerateDialog(myGNEApp);
2093 myRunPythonToolDialog = new GNERunPythonToolDialog(myGNEApp);
2094 myRunNetgenerateDialog = new GNERunNetgenerateDialog(myGNEApp);
2095}
2096
2097
2098long
2100 // iterate over all tools and find menu command
2101 for (const auto& tool : myPythonTools) {
2102 if (tool->getMenuCommand() == menuCommand) {
2103 myPythonToolDialog->openDialog(tool);
2104 return 1;
2105 }
2106 }
2107 return 0;
2108}
2109
2110
2111long
2113 myNetgenerateDialog->openDialog();
2114 return 1;
2115}
2116
2117
2118long
2120 // iterate over all tools and find menu command
2121 for (const auto& tool : myPythonTools) {
2122 if (tool->getMenuCommand() == menuCommand) {
2123 myRunPythonToolDialog->runTool(tool);
2124 return 1;
2125 }
2126 }
2127 return 0;
2128}
2129
2130
2131long
2133 // iterate over all tools and find menu command
2134 for (const auto& tool : myPythonTools) {
2135 if (tool->getMenuCommand() == menuCommand) {
2136 // execute postProcessing
2137 tool->postProcessing();
2138 return 1;
2139 }
2140 }
2141 return 0;
2142}
2143
2144
2145long
2147 myRunNetgenerateDialog->run(netgenerateOptions);
2148 return 0;
2149}
2150
2151// ---------------------------------------------------------------------------
2152// GNEApplicationWindowHelper::WindowsMenuCommands - methods
2153// ---------------------------------------------------------------------------
2154
2158
2159
2160void
2162 FXStatusBar* statusbar, GUIMessageWindow* messageWindow) {
2163 // build windows menu commands
2165 TL("Show Status Line"), TL("Toggle this Status Bar on/off."),
2166 statusbar, FXWindow::ID_TOGGLESHOWN);
2168 TL("Show Message Window"), TL("Toggle the Message Window on/off."),
2169 messageWindow, FXWindow::ID_TOGGLESHOWN);
2170 new FXMenuSeparator(windowsMenu);
2172 TL("Clear Message Window"), "", TL("Clear the Message Window."),
2174}
2175
2176// ---------------------------------------------------------------------------
2177// GNEApplicationWindowHelper::WindowsMenuCommands - methods
2178// ---------------------------------------------------------------------------
2179
2183
2184
2185void
2187 // build windows menu commands
2188 GUIDesigns::buildFXMenuCommandShortcut(helpMenu, TL("Online Documentation"), "F1", TL("Open Online documentation."),
2189 nullptr, myGNEApp, MID_HOTKEY_F1_ONLINEDOCUMENTATION);
2190 new FXMenuSeparator(helpMenu);
2191 GUIDesigns::buildFXMenuCommandShortcut(helpMenu, TL("Changelog"), "", TL("Open Changelog."),
2192 nullptr, myGNEApp, MID_CHANGELOG);
2193 GUIDesigns::buildFXMenuCommandShortcut(helpMenu, TL("Hotkeys"), "", TL("Open Hotkeys."),
2194 nullptr, myGNEApp, MID_HOTKEYS);
2195 GUIDesigns::buildFXMenuCommandShortcut(helpMenu, TL("Tutorial"), "", TL("Open Tutorial."),
2196 nullptr, myGNEApp, MID_TUTORIAL);
2197 GUIDesigns::buildFXMenuCommandShortcut(helpMenu, TL("Feedback"), "", TL("Open feedback channels."),
2198 nullptr, myGNEApp, MID_FEEDBACK);
2199 new FXMenuSeparator(helpMenu);
2200 GUIDesigns::buildFXMenuCommandShortcut(helpMenu, TL("About"), "F12", TL("About netedit."),
2202}
2203
2204// ---------------------------------------------------------------------------
2205// GNEApplicationWindowHelper::NetworkCheckableButtons - methods
2206// ---------------------------------------------------------------------------
2207
2211
2212
2213void
2215 networkMode->show();
2216 demandMode->show();
2217 dataMode->show();
2218}
2219
2220
2221void
2225
2226
2227void
2231
2232
2233void
2235 // build supermode menu commands
2236 networkMode = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
2237 TL("&Network"), "F2", TL("Select network mode."),
2239 demandMode = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
2240 TL("&Demand"), "F3", TL("Select demand mode."),
2242 dataMode = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
2243 TL("&Data"), "F4", TL("Select data mode."),
2245}
2246
2247// ---------------------------------------------------------------------------
2248// GNESumoConfigHandler - methods
2249// ---------------------------------------------------------------------------
2250
2252 mySumoOptions(sumoOptions),
2253 myFile(file) {
2254}
2255
2256
2257bool
2259 // get options
2260 auto& neteditOptions = OptionsCont::getOptions();
2261 // reset options
2262 mySumoOptions.resetDefault();
2263 neteditOptions.resetDefault();
2264 // make all options writables
2265 mySumoOptions.resetWritable();
2266 neteditOptions.resetWritable();
2267 // build parser
2268 XERCES_CPP_NAMESPACE::SAXParser parser;
2269 parser.setValidationScheme(XERCES_CPP_NAMESPACE::SAXParser::Val_Never);
2270 parser.setDisableDefaultEntityResolution(true);
2271 // start the parsing
2272 OptionsLoader handler(mySumoOptions);
2273 try {
2274 parser.setDocumentHandler(&handler);
2275 parser.setErrorHandler(&handler);
2276 parser.parse(StringUtils::transcodeToLocal(myFile).c_str());
2277 if (handler.errorOccurred()) {
2278 WRITE_ERROR(TL("Could not load SUMO configuration '") + myFile + "'.");
2279 return false;
2280 }
2281 } catch (const XERCES_CPP_NAMESPACE::XMLException& e) {
2282 WRITE_ERROR(TL("Could not load SUMO configuration '") + myFile + "':\n " + StringUtils::transcode(e.getMessage()));
2283 return false;
2284 }
2285 // relocate files
2286 mySumoOptions.relocateFiles(myFile);
2287 // set loaded files in netedit options
2288 neteditOptions.set("sumocfg-file", myFile);
2289 neteditOptions.set("net-file", mySumoOptions.getString("net-file"));
2290 // check if we need to define the configuration file
2291 if (neteditOptions.getString("configuration-file").empty()) {
2292 const auto newConfiguration = StringUtils::replace(neteditOptions.getString("configuration-file"), ".sumocfg", ".netecfg");
2293 neteditOptions.resetWritable();
2294 neteditOptions.set("configuration-file", newConfiguration);
2295 }
2296 return true;
2297}
2298
2299// ---------------------------------------------------------------------------
2300// GNENeteditConfigHandler - methods
2301// ---------------------------------------------------------------------------
2302
2304 myFile(file) {
2305}
2306
2307
2308bool
2310 // get options
2311 auto& neteditOptions = OptionsCont::getOptions();
2312 // reset options
2313 neteditOptions.resetDefault();
2314 // make all options writables
2315 neteditOptions.resetWritable();
2316 // build parser
2317 XERCES_CPP_NAMESPACE::SAXParser parser;
2318 parser.setValidationScheme(XERCES_CPP_NAMESPACE::SAXParser::Val_Never);
2319 parser.setDisableDefaultEntityResolution(true);
2320 // start the parsing
2321 OptionsLoader handler(neteditOptions);
2322 try {
2323 parser.setDocumentHandler(&handler);
2324 parser.setErrorHandler(&handler);
2325 parser.parse(StringUtils::transcodeToLocal(myFile).c_str());
2326 if (handler.errorOccurred()) {
2327 WRITE_ERROR(TL("Could not load netedit configuration '") + myFile + "'.");
2328 return false;
2329 }
2330 } catch (const XERCES_CPP_NAMESPACE::XMLException& e) {
2331 WRITE_ERROR(TL("Could not load netedit configuration '") + myFile + "':\n " + StringUtils::transcode(e.getMessage()));
2332 return false;
2333 }
2334 // relocate files
2335 neteditOptions.relocateFiles(myFile);
2336 // check if we have loaded a netedit config or a netconvert config
2337 if (neteditOptions.getString("configuration-file").find(".netccfg") != std::string::npos) {
2338 const auto newConfiguration = StringUtils::replace(neteditOptions.getString("configuration-file"), ".netccfg", ".netecfg");
2339 neteditOptions.resetWritable();
2340 neteditOptions.set("configuration-file", newConfiguration);
2341 }
2342 return true;
2343}
2344
2345// ---------------------------------------------------------------------------
2346// GNEApplicationWindowHelper - methods
2347// ---------------------------------------------------------------------------
2348
2349bool
2350GNEApplicationWindowHelper::toggleEditOptionsNetwork(GNEViewNet* viewNet, const MFXCheckableButton* menuCheck, FXObject* obj, FXSelector sel) {
2351 // finally function correspond to visibleMenuCommands[numericalKeyPressed]
2352 if (menuCheck == viewNet->getNetworkViewOptions().menuCheckToggleGrid) {
2353 // Call manually onCmdToggleShowGrid
2354 viewNet->onCmdToggleShowGrid(obj, sel, nullptr);
2355 } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckToggleDrawJunctionShape) {
2356 // Call manually onCmdToggleDrawJunctionShape
2357 viewNet->onCmdToggleDrawJunctionShape(obj, sel, nullptr);
2358 } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckDrawSpreadVehicles) {
2359 // Call manually onCmdToggleDrawSpreadVehicles
2360 viewNet->onCmdToggleDrawSpreadVehicles(obj, sel, nullptr);
2361 } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckShowDemandElements) {
2362 // Call manually onCmdToggleShowDemandElementsNetwork
2363 viewNet->onCmdToggleShowDemandElementsNetwork(obj, sel, nullptr);
2364 } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckSelectEdges) {
2365 // Call manually onCmdToggleSelectEdges
2366 viewNet->onCmdToggleSelectEdges(obj, sel, nullptr);
2367 } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckShowConnections) {
2368 // Call manually onCmdToggleShowConnections
2369 viewNet->onCmdToggleShowConnections(obj, sel, nullptr);
2370 } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckHideConnections) {
2371 // Call manually onCmdToggleHideConnections
2372 viewNet->onCmdToggleHideConnections(obj, sel, nullptr);
2373 } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckShowAdditionalSubElements) {
2374 // Call manually onCmdToggleShowAdditionalSubElements
2375 viewNet->onCmdToggleShowAdditionalSubElements(obj, sel, nullptr);
2376 } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckShowTAZElements) {
2377 // Call manually onCmdToggleShowTAZElements
2378 viewNet->onCmdToggleShowTAZElements(obj, sel, nullptr);
2379 } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckExtendSelection) {
2380 // Call manually onCmdToggleExtendSelection
2381 viewNet->onCmdToggleExtendSelection(obj, sel, nullptr);
2382 } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckChangeAllPhases) {
2383 // Call manually onCmdToggleChangeAllPhases
2384 viewNet->onCmdToggleChangeAllPhases(obj, sel, nullptr);
2385 } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckMergeAutomatically) {
2386 // Call manually onCmdToggleMergeAutomatically
2387 viewNet->onCmdToggleMergeAutomatically(obj, sel, nullptr);
2388 } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckMoveElevation) {
2389 // Call manually onCmdToggleMoveElevation
2390 viewNet->onCmdToggleMoveElevation(obj, sel, nullptr);
2391 } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckChainEdges) {
2392 // Call manually onCmdToggleChainEdges
2393 viewNet->onCmdToggleChainEdges(obj, sel, nullptr);
2394 } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckAutoOppositeEdge) {
2395 // Call manually onCmdToggleAutoOppositeEdge
2396 viewNet->onCmdToggleAutoOppositeEdge(obj, sel, nullptr);
2397 } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckShowJunctionBubble) {
2398 // Call manually onCmdToggleShowJunctionBubble
2399 viewNet->onCmdToggleShowJunctionBubbles(obj, sel, nullptr);
2400 } else {
2401 return false;
2402 }
2403 return true;
2404}
2405
2406
2407bool
2408GNEApplicationWindowHelper::toggleEditOptionsDemand(GNEViewNet* viewNet, const MFXCheckableButton* menuCheck, FXObject* obj, FXSelector sel) {
2409 if (menuCheck == viewNet->getDemandViewOptions().menuCheckToggleGrid) {
2410 // Call manually onCmdToggleShowGrid
2411 viewNet->onCmdToggleShowGrid(obj, sel, nullptr);
2412 } else if (menuCheck == viewNet->getDemandViewOptions().menuCheckToggleDrawJunctionShape) {
2413 // Call manually onCmdToggleDrawJunctionShape
2414 viewNet->onCmdToggleDrawJunctionShape(obj, sel, nullptr);
2415 } else if (menuCheck == viewNet->getDemandViewOptions().menuCheckDrawSpreadVehicles) {
2416 // Call manually onCmdToggleDrawSpreadVehicles
2417 viewNet->onCmdToggleDrawSpreadVehicles(obj, sel, nullptr);
2418 } else if (menuCheck == viewNet->getDemandViewOptions().menuCheckHideShapes) {
2419 // Call manually onCmdToggleHideShapes
2420 viewNet->onCmdToggleHideShapes(obj, sel, nullptr);
2421 } else if (menuCheck == viewNet->getDemandViewOptions().menuCheckShowAllTrips) {
2422 // Call manually onCmdToggleShowTrips
2423 viewNet->onCmdToggleShowTrips(obj, sel, nullptr);
2424 } else if (menuCheck == viewNet->getDemandViewOptions().menuCheckShowAllPersonPlans) {
2425 // Call manually onCmdToggleShowAllPersonPlans
2426 viewNet->onCmdToggleShowAllPersonPlans(obj, sel, nullptr);
2427 } else if (menuCheck == viewNet->getDemandViewOptions().menuCheckLockPerson) {
2428 // Call manually onCmdToggleLockPerson
2429 viewNet->onCmdToggleLockPerson(obj, sel, nullptr);
2430 } else if (menuCheck == viewNet->getDemandViewOptions().menuCheckShowAllContainerPlans) {
2431 // Call manually onCmdToggleShowAllContainerPlans
2432 viewNet->onCmdToggleShowAllContainerPlans(obj, sel, nullptr);
2433 } else if (menuCheck == viewNet->getDemandViewOptions().menuCheckLockContainer) {
2434 // Call manually onCmdToggleLockContainer
2435 viewNet->onCmdToggleLockContainer(obj, sel, nullptr);
2436 } else if (menuCheck == viewNet->getDemandViewOptions().menuCheckHideNonInspectedDemandElements) {
2437 // Call manually onCmdToggleHideNonInspecteDemandElements
2438 viewNet->onCmdToggleHideNonInspecteDemandElements(obj, sel, nullptr);
2439 } else if (menuCheck == viewNet->getDemandViewOptions().menuCheckShowOverlappedRoutes) {
2440 // Call manually onCmdToggleHideNonInspecteDemandElements
2441 viewNet->onCmdToggleShowOverlappedRoutes(obj, sel, nullptr);
2442 } else {
2443 return false;
2444 }
2445 return true;
2446}
2447
2448
2449bool
2450GNEApplicationWindowHelper::toggleEditOptionsData(GNEViewNet* viewNet, const MFXCheckableButton* menuCheck, FXObject* obj, FXSelector sel) {
2451 if (menuCheck == viewNet->getDataViewOptions().menuCheckToggleDrawJunctionShape) {
2452 // Call manually onCmdToggleDrawJunctionShape
2453 viewNet->onCmdToggleDrawJunctionShape(obj, sel, nullptr);
2454 } else if (menuCheck == viewNet->getDataViewOptions().menuCheckShowAdditionals) {
2455 // Call manually onCmdToggleShowAdditionals
2456 viewNet->onCmdToggleShowAdditionals(obj, sel, nullptr);
2457 } else if (menuCheck == viewNet->getDataViewOptions().menuCheckShowShapes) {
2458 // Call manually onCmdToggleShowShapes
2459 viewNet->onCmdToggleShowShapes(obj, sel, nullptr);
2460 } else if (menuCheck == viewNet->getDataViewOptions().menuCheckShowDemandElements) {
2461 // Call manually onCmdToggleShowDemandElementsData
2462 viewNet->onCmdToggleShowDemandElementsData(obj, sel, nullptr);
2463 } else if (menuCheck == viewNet->getDataViewOptions().menuCheckToggleTAZRelDrawing) {
2464 // Call manually onCmdToggleTAZRelDrawing
2465 viewNet->onCmdToggleTAZRelDrawing(obj, sel, nullptr);
2466 } else if (menuCheck == viewNet->getDataViewOptions().menuCheckToggleTAZDrawFill) {
2467 // Call manually onCmdToggleTAZDrawFill
2468 viewNet->onCmdToggleTAZDrawFill(obj, sel, nullptr);
2469 } else if (menuCheck == viewNet->getDataViewOptions().menuCheckToggleTAZRelOnlyFrom) {
2470 // Call manually onCmdToggleTAZRelOnlyFrom
2471 viewNet->onCmdToggleTAZRelOnlyFrom(obj, sel, nullptr);
2472 } else if (menuCheck == viewNet->getDataViewOptions().menuCheckToggleTAZRelOnlyTo) {
2473 // Call manually onCmdToggleTAZRelOnlyTo
2474 viewNet->onCmdToggleTAZRelOnlyTo(obj, sel, nullptr);
2475 } else {
2476 return false;
2477 }
2478 return true;
2479}
2480
2481
2482bool
2483GNEApplicationWindowHelper::stringEndsWith(const std::string& str, const std::string& suffix) {
2484 if (str.length() < suffix.length()) {
2485 return false;
2486 } else {
2487 return str.compare(str.length() - suffix.length(), suffix.length(), suffix) == 0;
2488 }
2489}
2490
2491
2492std::string
2493GNEApplicationWindowHelper::openXMLFileDialog(FXWindow* window, bool save, bool multi) {
2494 if (save) {
2495 return openFileDialog(window, TL("Save file as"), GUIIcon::SAVE,
2496 SUMOXMLDefinitions::XMLFileExtensions.getMultilineString(), save, multi);
2497 } else {
2498 return openFileDialog(window, TL("Open file"), GUIIcon::OPEN_SUMOCONFIG,
2499 SUMOXMLDefinitions::XMLFileExtensions.getMultilineString(), save, multi);
2500 }
2501}
2502
2503
2504std::string
2505GNEApplicationWindowHelper::openNetworkFileDialog(FXWindow* window, bool save, bool multi) {
2506 if (save) {
2507 return openFileDialog(window, TL("Save Network file as"), GUIIcon::SAVE_NETWORKELEMENTS,
2508 SUMOXMLDefinitions::NetFileExtensions.getMultilineString(), save, multi);
2509 } else {
2510 return openFileDialog(window, TL("Open Network file"), GUIIcon::OPEN_NET,
2511 SUMOXMLDefinitions::NetFileExtensions.getMultilineString(), save, multi);
2512 }
2513}
2514
2515
2516std::string
2518 return openFileDialog(window, TL("Open NetConvert file"), GUIIcon::OPEN_NET,
2519 SUMOXMLDefinitions::NetconvertConfigFileExtensions.getMultilineString(), false);
2520}
2521
2522
2523std::string
2525 return openFileDialog(window, TL("Save plain XML as"), GUIIcon::SAVE,
2526 SUMOXMLDefinitions::XMLFileExtensions.getMultilineString(), true);
2527}
2528
2529
2530std::string
2532 return openFileDialog(window, TL("Save joined Junctions as"), GUIIcon::SAVE,
2533 SUMOXMLDefinitions::JunctionFileExtensions.getMultilineString(), true);
2534}
2535
2536
2537std::string
2539 return openFileDialog(window, TL("Save tool log"), GUIIcon::SAVE,
2540 SUMOXMLDefinitions::TXTFileExtensions.getMultilineString(), true);
2541}
2542
2543
2544std::string
2546 return openFileDialog(window, TL("Open OSM file"), GUIIcon::OPEN_NET,
2547 SUMOXMLDefinitions::OSMFileExtensions.getMultilineString(), false);
2548}
2549
2550
2551std::string
2553 if (save) {
2554 return openFileDialog(window, TL("Save netedit Config file as"), GUIIcon::SAVE_NETEDITCONFIG,
2555 SUMOXMLDefinitions::NeteditConfigFileExtensions.getMultilineString(), save);
2556 } else {
2557 return openFileDialog(window, TL("Open netedit Config file"), GUIIcon::OPEN_NETEDITCONFIG,
2558 SUMOXMLDefinitions::NeteditConfigFileExtensions.getMultilineString(), save);
2559 }
2560}
2561
2562
2563std::string
2564GNEApplicationWindowHelper::openSumoConfigFileDialog(FXWindow* window, bool save, bool multi) {
2565 if (save) {
2566 return openFileDialog(window, TL("Save SUMO Config file as"), GUIIcon::SAVE_SUMOCONFIG,
2567 SUMOXMLDefinitions::SumoConfigFileExtensions.getMultilineString(), save, multi);
2568 } else {
2569 return openFileDialog(window, TL("Open SUMO Config file"), GUIIcon::OPEN_SUMOCONFIG,
2570 SUMOXMLDefinitions::SumoConfigFileExtensions.getMultilineString(), save, multi);
2571 }
2572}
2573
2574
2575std::string
2577 if (save) {
2578 return openFileDialog(window, TL("Save TLS file as"), GUIIcon::SAVE_NETWORKELEMENTS,
2579 SUMOXMLDefinitions::TLSFileExtensions.getMultilineString(), save);
2580 } else {
2581 return openFileDialog(window, TL("Open TLS file"), GUIIcon::OPEN_TLSPROGRAMS,
2582 SUMOXMLDefinitions::TLSFileExtensions.getMultilineString(), save);
2583 }
2584}
2585
2586
2587std::string
2589 if (save) {
2590 return openFileDialog(window, TL("Save EdgeType file as"), GUIIcon::SAVE_NETWORKELEMENTS,
2591 SUMOXMLDefinitions::EdgeTypeFileExtensions.getMultilineString(), save);
2592 } else {
2593 return openFileDialog(window, TL("Open EdgeType file"), GUIIcon::OPEN_NET,
2594 SUMOXMLDefinitions::EdgeTypeFileExtensions.getMultilineString(), save);
2595 }
2596}
2597
2598
2599std::string
2600GNEApplicationWindowHelper::openAdditionalFileDialog(FXWindow* window, bool save, bool multi) {
2601 if (save) {
2602 return openFileDialog(window, TL("Save Additionals file as"), GUIIcon::SAVE_ADDITIONALELEMENTS,
2603 SUMOXMLDefinitions::AdditionalFileExtensions.getMultilineString(), save, multi);
2604 } else {
2605 return openFileDialog(window, TL("Open Additionals file"), GUIIcon::MODEADDITIONAL,
2606 SUMOXMLDefinitions::AdditionalFileExtensions.getMultilineString(), save, multi);
2607 }
2608}
2609
2610
2611std::string
2612GNEApplicationWindowHelper::openRouteFileDialog(FXWindow* window, bool save, bool multi) {
2613 if (save) {
2614 return openFileDialog(window, TL("Save Route file as"), GUIIcon::SAVE_DEMANDELEMENTS,
2615 SUMOXMLDefinitions::RouteFileExtensions.getMultilineString(), save, multi);
2616 } else {
2617 return openFileDialog(window, TL("Open Route file"), GUIIcon::SUPERMODEDEMAND,
2618 SUMOXMLDefinitions::RouteFileExtensions.getMultilineString(), save, multi);
2619 }
2620}
2621
2622
2623std::string
2624GNEApplicationWindowHelper::openDataFileDialog(FXWindow* window, bool save, bool multi) {
2625 if (save) {
2626 return openFileDialog(window, TL("Save Data file as"), GUIIcon::SAVE_DATAELEMENTS,
2627 SUMOXMLDefinitions::EdgeDataFileExtensions.getMultilineString(), save, multi);
2628 } else {
2629 return openFileDialog(window, TL("Open Data file"), GUIIcon::SUPERMODEDATA,
2630 SUMOXMLDefinitions::EdgeDataFileExtensions.getMultilineString(), save, multi);
2631 }
2632}
2633
2634
2635std::string
2636GNEApplicationWindowHelper::openMeanDataDialog(FXWindow* window, bool save, bool multi) {
2637 if (save) {
2638 return openFileDialog(window, TL("Save MeanData file as"), GUIIcon::SAVE_MEANDATAELEMENTS,
2639 SUMOXMLDefinitions::MeanDataFileExtensions.getMultilineString(), save, multi);
2640 } else {
2641 return openFileDialog(window, TL("Open MeanData file"), GUIIcon::MODEMEANDATA,
2642 SUMOXMLDefinitions::MeanDataFileExtensions.getMultilineString(), save, multi);
2643 }
2644}
2645
2646
2647std::string
2649 if (save) {
2650 return openFileDialog(window, TL("Save options file as"), GUIIcon::SAVE,
2651 SUMOXMLDefinitions::XMLFileExtensions.getMultilineString(), save);
2652 } else {
2653 return openFileDialog(window, TL("Open options file"), GUIIcon::OPEN,
2654 SUMOXMLDefinitions::XMLFileExtensions.getMultilineString(), save);
2655 }
2656}
2657
2658
2659std::string
2660GNEApplicationWindowHelper::openFileDialog(FXWindow* window, const std::string title,
2661 GUIIcon icon, const std::string& extensions, bool save, bool multi) {
2662 // configure open dialog
2663 FXFileDialog opendialog(window, title.c_str());
2664 // check if allow to create a new file, or select only existent files
2665 if (save) {
2666 opendialog.setSelectMode(SELECTFILE_ANY);
2667 } else {
2668 if (multi) {
2669 opendialog.setSelectMode(SELECTFILE_MULTIPLE);
2670 } else {
2671 opendialog.setSelectMode(SELECTFILE_EXISTING);
2672 }
2673 }
2674 // set icon and pattern list
2675 opendialog.setIcon(GUIIconSubSys::getIcon(icon));
2676 opendialog.setPatternList(extensions.c_str());
2677 // set current folder
2678 if (gCurrentFolder.length() != 0) {
2679 opendialog.setDirectory(gCurrentFolder);
2680 }
2681 // open dialog
2682 if (opendialog.execute()) {
2683 // continue depending if we're loading or saving
2684 if (save) {
2685 // check if overwritte file
2686 if (MFXUtils::userPermitsOverwritingWhenFileExists(window, opendialog.getFilename())) {
2687 // udpate current folder
2688 gCurrentFolder = opendialog.getDirectory();
2689 // assureExtension
2690 return MFXUtils::assureExtension(opendialog).text();
2691 } else {
2692 // return empty file
2693 return "";
2694 }
2695 } else {
2696 // udpate current folder
2697 gCurrentFolder = opendialog.getDirectory();
2698 // return file
2699 if (multi) {
2700 FXString* files = opendialog.getFilenames();
2701 std::string result;
2702 bool first = true;
2703 if (files != nullptr) {
2704 for (int i = 0; !files[i].empty(); i++) {
2705 if (first) {
2706 first = false;
2707 } else {
2708 result += " ";
2709 }
2710 result += files[i].text();
2711 }
2712 delete [] files;
2713
2714 }
2715 return result;
2716 } else {
2717 return opendialog.getFilename().text();
2718 }
2719 }
2720 } else {
2721 // return empty file
2722 return "";
2723 }
2724}
2725
2726/****************************************************************************/
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:847
@ MID_GNE_NETGENERATE
netgenerate dialog
Definition GUIAppEnum.h:761
@ 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
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWALLPERSONPLANS
show all person plans
Definition GUIAppEnum.h:879
@ MID_GNE_UNLOCK_ALLELEMENTS
unlock all element
Definition GUIAppEnum.h:857
@ 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:903
@ MID_GNE_TOGGLE_COMPUTE_NETWORK_DATA
enable/disable computing after switchin between supermodes
Definition GUIAppEnum.h:795
@ MID_GNE_TOOLBARFILE_SAVEADDITIONALELEMENTS_UNIFIED
save additionals unified
Definition GUIAppEnum.h:721
@ MID_TOOLBAREDIT_LOADADDITIONALS
load additionals in sumo-gui/netedit after press ctrl+T
Definition GUIAppEnum.h:681
@ 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:821
@ 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:843
@ MID_GNE_TOOLBARFILE_RELOAD_EDGETYPES
reload edge types
Definition GUIAppEnum.h:733
@ MID_GNE_NETWORKVIEWOPTIONS_HIDECONNECTIONS
hide connections
Definition GUIAppEnum.h:829
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWCONNECTIONS
show connections
Definition GUIAppEnum.h:827
@ MID_GNE_DATAVIEWOPTIONS_TAZRELONLYTO
toggle draw TAZRel only to
Definition GUIAppEnum.h:909
@ MID_HOTKEY_CTRL_W_CLOSESIMULATION
Close simulation - ID.
Definition GUIAppEnum.h:129
@ MID_GNE_LOCK_ALLELEMENTS
lock all element
Definition GUIAppEnum.h:855
@ 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:833
@ MID_GNE_DEMANDVIEWOPTIONS_LOCKPERSON
lock person
Definition GUIAppEnum.h:881
@ 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:869
@ MID_GNE_LOCK_SELECTEDELEMENTS
lock selected element
Definition GUIAppEnum.h:859
@ MID_GNE_TOOLBARFILE_SAVESUMOCONFIG_AS
save SUMOConfig as
Definition GUIAppEnum.h:717
@ MID_GNE_TOOLBARFILE_RELOAD_TLSPROGRAMS
reload TLS Programs
Definition GUIAppEnum.h:729
@ 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_GNE_TOOLBARFILE_OPENMEANDATAELEMENTS
open meanData file
Definition GUIAppEnum.h:743
@ MID_CHANGELOG
changelog button
Definition GUIAppEnum.h:655
@ MID_GNE_TOOLBARFILE_OPENFOREIGN
open foreign network
Definition GUIAppEnum.h:707
@ MID_GNE_TOOLBARFILE_RELOAD_NETEDITCONFIG
reload neteditConfig
Definition GUIAppEnum.h:711
@ 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:683
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWGRID
show grid
Definition GUIAppEnum.h:867
@ 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_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:845
@ 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:901
@ MID_GNE_TOOLBARFILE_RELOAD_MEANDATAELEMENTS
reload meanDatas
Definition GUIAppEnum.h:747
@ MID_GNE_TOOLBARFILE_SAVEMEANDATAELEMENTS_UNIFIED
save meanDatas unified
Definition GUIAppEnum.h:745
@ MID_HOTKEY_CTRL_A_STARTSIMULATION_OPENADDITIONALELEMENTS
Start the simulation in SUMO and open Additionals Elements in netedit.
Definition GUIAppEnum.h:83
@ 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:875
@ MID_GNE_TOGGLE_UNDOREDO
enable/disable undo-redo
Definition GUIAppEnum.h:797
@ 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:727
@ MID_GNE_DATAVIEWOPTIONS_SHOWADDITIONALS
show additionals
Definition GUIAppEnum.h:897
@ MID_HOTKEY_SHIFT_R_LOCATEROUTE
Locate route - button.
Definition GUIAppEnum.h:186
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWBUBBLES
show junctions as bubbles
Definition GUIAppEnum.h:841
@ MID_HOTKEY_SHIFT_W_LOCATEWALKINGAREA
Locate edge - button.
Definition GUIAppEnum.h:194
@ MID_GNE_TOOLBARFILE_RELOAD_DEMANDELEMENTS
reload demand elements
Definition GUIAppEnum.h:737
@ MID_GNE_NETWORKVIEWOPTIONS_EXTENDSELECTION
extend selection
Definition GUIAppEnum.h:835
@ MID_HOTKEY_CTRL_I_EDITVIEWPORT
Open viewport editor.
Definition GUIAppEnum.h:99
@ MID_RECENTFILE
Loads a file previously loaded.
Definition GUIAppEnum.h:318
@ 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:831
@ MID_HOTKEY_SHIFT_C_LOCATECONTAINER
Locate container - button.
Definition GUIAppEnum.h:174
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWALLCONTAINERPLANS
show all container plans
Definition GUIAppEnum.h:883
@ 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:853
@ MID_GNE_TOOLBARFILE_SAVENETEDITCONFIG_AS
save neteditConfig as
Definition GUIAppEnum.h:713
@ MID_HOTKEY_SHIFT_E_LOCATEEDGE
Locate edge - button.
Definition GUIAppEnum.h:176
@ MID_CLEARMESSAGEWINDOW
Clear simulation output.
Definition GUIAppEnum.h:367
@ 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:659
@ MID_GNE_TOGGLE_UNDOREDO_LOADING
enable/disable undo-redo during loading
Definition GUIAppEnum.h:799
@ MID_GNE_DATAVIEWOPTIONS_TAZDRAWFILL
toggle draw TAZ fill
Definition GUIAppEnum.h:905
@ MID_HOTKEY_L_MODE_PERSONPLAN
hotkey for mode person plan
Definition GUIAppEnum.h:57
@ 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_GNE_TOOLBARFILE_SAVEDATAELEMENTS_UNIFIED
save data elements unified
Definition GUIAppEnum.h:739
@ 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:823
@ 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_SAVEEDGETYPES_AS
save edgeTypes as
Definition GUIAppEnum.h:731
@ MID_HOTKEYS
hotkeys button
Definition GUIAppEnum.h:657
@ MID_GNE_DEMANDVIEWOPTIONS_HIDENONINSPECTED
hide non-inspected demand element
Definition GUIAppEnum.h:873
@ MID_GNE_TOOLBARFILE_RELOADNETWORK
reload only network
Definition GUIAppEnum.h:705
@ MID_GNE_NETWORKVIEWOPTIONS_MERGEAUTOMATICALLY
don't ask before merging junctions
Definition GUIAppEnum.h:839
@ MID_HOTKEY_CTRL_SHIFT_M_SAVEMEANDATAELEMENTS
save Mean Datas
Definition GUIAppEnum.h:216
@ MID_GNE_NETWORKVIEWOPTIONS_CHANGEALLPHASES
change all phases
Definition GUIAppEnum.h:837
@ MID_GNE_DATAVIEWOPTIONS_SHOWSHAPES
show shapes
Definition GUIAppEnum.h:899
@ 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:907
@ MID_GNE_TOOLBARFILE_RELOAD_SUMOCONFIG
reload SUMOConfig
Definition GUIAppEnum.h:715
@ MID_GNE_NETWORKVIEWOPTIONS_TOGGLEDRAWJUNCTIONSHAPE
toggle draw junction shape
Definition GUIAppEnum.h:819
@ 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_SAVENETWORK_AS
save network as
Definition GUIAppEnum.h:719
@ MID_GNE_DEMANDVIEWOPTIONS_DRAWSPREADVEHICLES
Draw vehicles in begin position or spread in lane.
Definition GUIAppEnum.h:871
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWOVERLAPPEDROUTES
show overlapped routes
Definition GUIAppEnum.h:887
@ MID_HOTKEY_CTRL_Z_UNDO
Redo.
Definition GUIAppEnum.h:135
@ MID_GNE_TOOLBARFILE_SAVEDEMANDELEMENTS_UNIFIED
save demand elements unified
Definition GUIAppEnum.h:735
@ MID_FEEDBACK
feedback button
Definition GUIAppEnum.h:661
@ 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:741
@ 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:885
@ MID_HOTKEY_CTRL_N_OPENNETWORK_NEWNETWORK
open network in SUMO and create new empty network in netedit
Definition GUIAppEnum.h:109
@ MID_GNE_TOOLBARFILE_RELOAD_ADDITIONALELEMENTS
reload additionals
Definition GUIAppEnum.h:725
@ MID_GNE_NETWORKVIEWOPTIONS_SELECTEDGES
select edges
Definition GUIAppEnum.h:825
@ MID_GNE_SAVEJOINEDJUNCTIONS
save joined junctions
Definition GUIAppEnum.h:709
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWTRIPS
show all trips
Definition GUIAppEnum.h:877
@ MID_GNE_NETWORKVIEWOPTIONS_TOGGLEGRID
show grid
Definition GUIAppEnum.h:817
@ MID_GNE_TOOLBARFILE_SAVEJUPEDSIMELEMENTS_AS
save JuPedSim as
Definition GUIAppEnum.h:723
@ 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
@ MID_HOTKEY_CTRL_SHIFT_A_SAVEADDITIONALELEMENTS
Save Additional Elements.
Definition GUIAppEnum.h:202
#define GUIDesignToolbarMenuBarNetedit
design for top toolbar (file, edit, processing...) used only in netedit (due supermodes buttons)
Definition GUIDesigns.h:431
#define GUIDesignToolBarGrip
design for toolbar grip (used to change the position of toolbar with mouse)
Definition GUIDesigns.h:449
#define GUIDesignToolBar
design for default toolbar
Definition GUIDesigns.h:434
#define GUIDesignToolBarRaisedNext
design for first toolbar shell positioned in the next position of dock
Definition GUIDesigns.h:443
#define GUIDesignToolBarRaisedSupermodes
design for toolbar supermodes (grip + buttons)
Definition GUIDesigns.h:440
#define GUIDesignToolBarRaisedSame
design for toolbar
Definition GUIDesigns.h:437
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
@ NETWORKMODE_CHECKBOX_MERGEAUTOMATICALLY
@ 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
@ 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_ERROR(msg)
Definition MsgHandler.h:296
#define TL(string)
Definition MsgHandler.h:305
@ 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
SumoXMLTag getTag() const
get Tag vinculated with this attribute Property
bool isPlanPersonTrip() const
return true if tag correspond to a person trip plan
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
long onCmdToggleShowDemandElementsData(FXObject *, FXSelector, void *)
toggle show demand elements (data)
long onCmdToggleTAZDrawFill(FXObject *, FXSelector, void *)
toggle TAZdrawFill
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
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 onCmdToggleMergeAutomatically(FXObject *, FXSelector, void *)
toggle warn for merge
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
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
static FXMenuCommand * buildFXMenuCommandRecentFile(FXComposite *p, const std::string &text, FXObject *tgt, FXSelector sel)
build menu command (for recent files)
static FXMenuCheck * buildFXMenuCheckbox(FXComposite *p, const std::string &text, const std::string &info, FXObject *tgt, FXSelector sel)
build menu checkbox
static FXMenuCommand * buildFXMenuCommand(FXComposite *p, const std::string &text, FXIcon *icon, FXObject *tgt, FXSelector sel, const bool disable=false)
build menu command
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
static FXIcon * getIcon(const GUIIcon which)
returns a icon previously defined in the enum GUIIcon
A logging window for the gui.
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:40
static FXString assureExtension(const FXFileDialog &openDialog)
Corrects missing extension.
Definition MFXUtils.cpp:70
A storage for options typed value containers)
Definition OptionsCont.h:89
static OptionsCont & getOptions()
Retrieves the options.
A SAX-Handler for loading options.
bool errorOccurred() const
Returns the information whether an error occurred.
static StringBijection< SumoConfigFileExtension > SumoConfigFileExtensions
sumo config file extensions
static StringBijection< AdditionalFileExtension > AdditionalFileExtensions
additional file extensions
static StringBijection< MeanDataFileExtension > MeanDataFileExtensions
mean data file extensions
static StringBijection< TLSFileExtension > TLSFileExtensions
TLS file extensions.
static StringBijection< RouteFileExtension > RouteFileExtensions
route file extensions
static StringBijection< XMLFileExtension > XMLFileExtensions
XML file Extensions.
static StringBijection< NetconvertConfigFileExtension > NetconvertConfigFileExtensions
netconvert config file extensions
static StringBijection< TXTFileExtension > TXTFileExtensions
TXT file Extensions.
static StringBijection< OSMFileExtension > OSMFileExtensions
OSM file extensions.
static StringBijection< EdgeDataFileExtension > EdgeDataFileExtensions
edgedata file extensions
static StringBijection< JunctionFileExtension > JunctionFileExtensions
juntion file extensions
static StringBijection< NeteditConfigFileExtension > NeteditConfigFileExtensions
netedit config file extensions
static StringBijection< NetFileExtension > NetFileExtensions
net file extensions
static StringBijection< EdgeTypeFileExtension > EdgeTypeFileExtensions
edge file extensions
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
static std::string transcodeToLocal(const std::string &utf8String)
convert a string from UTF-8 to the local codepage
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
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
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
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 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 std::string openRouteFileDialog(FXWindow *window, bool save, bool multi=false)
open route file dialog
static bool toggleEditOptionsDemand(GNEViewNet *viewNet, const MFXCheckableButton *menuCheck, FXObject *obj, FXSelector sel)
toggle edit options Demand menu commands (called in GNEApplicationWindow::onCmdToggleEditOptions)
static bool toggleEditOptionsData(GNEViewNet *viewNet, const MFXCheckableButton *menuCheck, FXObject *obj, FXSelector sel)
toggle edit options Data menu commands (called in GNEApplicationWindow::onCmdToggleEditOptions)
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 bool toggleEditOptionsNetwork(GNEViewNet *viewNet, const MFXCheckableButton *menuCheck, FXObject *obj, FXSelector sel)
toggle edit options Network menu commands (called in GNEApplicationWindow::onCmdToggleEditOptions)
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 std::string openFileDialog(FXWindow *window, const std::string title, GUIIcon icon, const std::string &extensions, bool save, bool multi=false)
open filename dialog (general)
static std::string saveJoinedJunctionsFileDialog(FXWindow *window)
open joined junctions file dialog
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 openXMLFileDialog(FXWindow *window, bool save, bool multi)
open xml file dialog
static std::string openSumoConfigFileDialog(FXWindow *window, bool save, bool multi=false)
open SUMO config 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 * menuCheckMergeAutomatically
checkable button to we should't warn about merging junctions
MFXCheckableButton * menuCheckShowJunctionBubble
checkable button to show connection as bubble in "Move" mode.
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