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