Eclipse SUMO - Simulation of Urban MObility
GNEApplicationWindowHelper.cpp
Go to the documentation of this file.
1/****************************************************************************/
2// Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3// Copyright (C) 2001-2022 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/****************************************************************************/
25
27#include "GNEViewNet.h"
28
29// ===========================================================================
30// GNEApplicationWindowHelper::ToolbarsGrip method definitions
31// ===========================================================================
32
34 menu(nullptr),
35 superModes(nullptr),
36 saveElements(nullptr),
37 navigation(nullptr),
38 modes(nullptr),
39 intervalBar(nullptr),
40 myGNEApp(GNEApp),
41 myToolBarShellMenu(nullptr),
42 myToolBarShellSuperModes(nullptr),
43 myToolBarShellSaveElements(nullptr),
44 myToolBarShellNavigation(nullptr),
45 myToolBarShellModes(nullptr),
46 myToolBarShellIntervalBar(nullptr) {
47}
48
49
50void
52 // build menu bar (for File, edit, processing...) using specify design
53 myToolBarShellMenu = new FXToolBarShell(myGNEApp, GUIDesignToolBar);
54 menu = new FXMenuBar(myGNEApp->getTopDock(), myToolBarShellMenu, GUIDesignToolbarMenuBarNetedit);
55 // declare toolbar grip for menu bar
56 new FXToolBarGrip(menu, menu, FXMenuBar::ID_TOOLBARGRIP, GUIDesignToolBarGrip);
57}
58
59
60void
62 // build menu bar for supermodes (next to menu bar)
63 myToolBarShellSuperModes = new FXToolBarShell(myGNEApp, GUIDesignToolBar);
64 superModes = new FXMenuBar(myGNEApp->getTopDock(), myToolBarShellSuperModes, GUIDesignToolBarRaisedSame);
65 // declare toolbar grip for menu bar superModes
66 new FXToolBarGrip(superModes, superModes, FXMenuBar::ID_TOOLBARGRIP, GUIDesignToolBarGrip);
67 // build menu bar for save elements (bot to menu bar)
68 myToolBarShellSaveElements = new FXToolBarShell(myGNEApp, GUIDesignToolBar);
69 saveElements = new FXMenuBar(myGNEApp->getTopDock(), myToolBarShellSaveElements, GUIDesignToolBarRaisedNext);
70 // declare toolbar grip for menu bar saveElements
71 new FXToolBarGrip(saveElements, saveElements, FXMenuBar::ID_TOOLBARGRIP, GUIDesignToolBarGrip);
72 // build menu bar for navigation
73 myToolBarShellNavigation = new FXToolBarShell(myGNEApp, GUIDesignToolBar);
74 navigation = new FXMenuBar(myGNEApp->getTopDock(), myToolBarShellNavigation, GUIDesignToolBarRaisedSame);
75 // declare toolbar grip for menu bar navigation
76 new FXToolBarGrip(navigation, navigation, FXMenuBar::ID_TOOLBARGRIP, GUIDesignToolBarGrip);
77 // build menu bar for modes
78 myToolBarShellModes = new FXToolBarShell(myGNEApp, GUIDesignToolBar);
79 // create modes depending of option "gui-testing" (note: Used for NETEDIT test)
80 if (OptionsCont::getOptions().getBool("gui-testing")) {
81 modes = new FXMenuBar(myGNEApp->getTopDock(), myToolBarShellModes, GUIDesignToolBarRaisedNext);
82 } else {
83 modes = new FXMenuBar(myGNEApp->getTopDock(), myToolBarShellModes, GUIDesignToolBarRaisedSame);
84 }
85 // declare toolbar grip for menu bar modes
86 new FXToolBarGrip(modes, modes, FXMenuBar::ID_TOOLBARGRIP, GUIDesignToolBarGrip);
87 // build menu bar for interval
88 myToolBarShellIntervalBar = new FXToolBarShell(myGNEApp, GUIDesignToolBar);
89 intervalBar = new FXMenuBar(myGNEApp->getTopDock(), myToolBarShellIntervalBar, GUIDesignToolBarRaisedNext);
90 // declare toolbar grip for menu bar modes
91 new FXToolBarGrip(intervalBar, intervalBar, FXMenuBar::ID_TOOLBARGRIP, GUIDesignToolBarGrip);
92 // create menu bars
93 superModes->create();
94 saveElements->create();
95 navigation->create();
96 modes->create();
97 intervalBar->create();
98 // create toolbar shells
99 myToolBarShellSuperModes->create();
100 myToolBarShellSaveElements->create();
101 myToolBarShellNavigation->create();
102 myToolBarShellModes->create();
103 myToolBarShellIntervalBar->create();
104 // recalc top dop after creating elements
105 myGNEApp->getTopDock()->recalc();
106}
107
108
109void
111 // delete Menu bars
112 delete superModes;
113 delete saveElements;
114 delete navigation;
115 delete modes;
116 delete intervalBar;
117 // also delete toolbar shells to avoid floating windows
118 delete myToolBarShellSuperModes;
119 delete myToolBarShellSaveElements;
120 delete myToolBarShellNavigation;
121 delete myToolBarShellModes;
122 delete myToolBarShellIntervalBar;
123 // recalc top dop after deleting elements
124 myGNEApp->getTopDock()->recalc();
125}
126
127// ===========================================================================
128// GNEApplicationWindowHelper::MenuBarFile method definitions
129// ===========================================================================
130
132 myRecentNetsAndConfigs(GNEApp->getApp(), "nets"),
133 myGNEApp(GNEApp)
134{ }
135
136
137void
139 FXMenuSeparator* sep1 = new FXMenuSeparator(fileMenu); // NOSONAR, Fox does the cleanup
140 sep1->setSelector(FXRecentFiles::ID_ANYFILES);
141 // for whatever reason, sonar complains in the next line that sep1 may leak, but fox does the cleanup
142 GUIDesigns::buildFXMenuCommandRecentFile(fileMenu, "", &myRecentNetsAndConfigs, FXRecentFiles::ID_FILE_1); // NOSONAR
143 GUIDesigns::buildFXMenuCommandRecentFile(fileMenu, "", &myRecentNetsAndConfigs, FXRecentFiles::ID_FILE_2);
144 GUIDesigns::buildFXMenuCommandRecentFile(fileMenu, "", &myRecentNetsAndConfigs, FXRecentFiles::ID_FILE_3);
145 GUIDesigns::buildFXMenuCommandRecentFile(fileMenu, "", &myRecentNetsAndConfigs, FXRecentFiles::ID_FILE_4);
146 GUIDesigns::buildFXMenuCommandRecentFile(fileMenu, "", &myRecentNetsAndConfigs, FXRecentFiles::ID_FILE_5);
147 GUIDesigns::buildFXMenuCommandRecentFile(fileMenu, "", &myRecentNetsAndConfigs, FXRecentFiles::ID_FILE_6);
148 GUIDesigns::buildFXMenuCommandRecentFile(fileMenu, "", &myRecentNetsAndConfigs, FXRecentFiles::ID_FILE_7);
149 GUIDesigns::buildFXMenuCommandRecentFile(fileMenu, "", &myRecentNetsAndConfigs, FXRecentFiles::ID_FILE_8);
150 GUIDesigns::buildFXMenuCommandRecentFile(fileMenu, "", &myRecentNetsAndConfigs, FXRecentFiles::ID_FILE_9);
151 GUIDesigns::buildFXMenuCommandRecentFile(fileMenu, "", &myRecentNetsAndConfigs, FXRecentFiles::ID_FILE_10);
152 GUIDesigns::buildFXMenuCommand(fileMenu, "Cl&ear Recent Files", nullptr, &myRecentNetsAndConfigs, FXRecentFiles::ID_CLEAR);
153 GUIDesigns::buildFXMenuCommand(fileMenu, "No Recent Files", nullptr, &myRecentNetsAndConfigs, MFXRecentNetworks::ID_NOFILES);
154 myRecentNetsAndConfigs.setTarget(myGNEApp);
155 myRecentNetsAndConfigs.setSelector(MID_RECENTFILE);
156}
157
158// ---------------------------------------------------------------------------
159// GNEApplicationWindowHelper::FileMenuCommands - methods
160// ---------------------------------------------------------------------------
161
163 myGNEApp(GNEApp) {
164}
165
166
167void
168GNEApplicationWindowHelper::FileMenuCommands::buildFileMenuCommands(FXMenuPane* fileMenu, FXMenuPane* fileMenuSUMOConfig, FXMenuPane* fileMenuTLS,
169 FXMenuPane* fileMenuEdgeTypes, FXMenuPane* fileMenuAdditionals, FXMenuPane* fileMenuDemandElements, FXMenuPane* fileMenuDataElements) {
171 "&New Network", "Ctrl+N", "Create a new network.",
174 "New Window", "Ctrl+Shift+N", "Open a new netedit window.",
175 nullptr, myGNEApp, MID_HOTKEY_CTRL_SHIFT_N_NEWWINDOW);
176 new FXMenuSeparator(fileMenu);
178 "&Open Network...", "Ctrl+O", "Open a SUMO network.",
181 "Open Netconvert Configura&tion...", "Ctrl+Shift+O", "Open a configuration file with NETCONVERT options.",
184 "Load SUMOConfig...", "Ctrl+M", "Load programs for traffic lights in the current net.",
187 "Import &Foreign Network...", "", "Import a foreign network such as OSM.",
190 TL("&Reload"), "Ctrl+R", "Reload the network.",
193 "&Save Network", "Ctrl+S", "Save the network.",
196 "Save Net&work As...", "Ctrl+Shift+S", "Save the network to another file.",
199 "Save Plain XM&L...", "Ctrl+L", "Save plain XML representation the network.",
202 "Save &Joined Junctions...", "", "Save log of joined junctions (allows reproduction of joins).",
205 "Save All Elements", "", "Save all elements (network, additional, demand and data)",
207 // create SUMOConfig menu options
208 reloadSUMOConfig = GUIDesigns::buildFXMenuCommandShortcut(fileMenuSUMOConfig,
209 "Reload SUMOConfig", "", "Reload SUMOConfig.",
212 "Save SUMOConfig", "Ctrl+Shift+M", "Save sumo config.",
214 saveSUMOConfig->disable();
216 "Save SUMOConfig As...", "", "Save sumo config in a new file.",
218 SUMOConfigMenuCascade = new FXMenuCascade(fileMenu, "SUMOConfig", GUIIconSubSys::getIcon(GUIIcon::SUMO_MINI), fileMenuSUMOConfig);
219 // create TLS menu options
221 "Load TLS Programs...", "Ctrl+K", "Load programs for traffic lights in the current net.",
223 reloadTLSPrograms = GUIDesigns::buildFXMenuCommandShortcut(fileMenuTLS,
224 "Reload TLS Programs", "", "Reload TLS Programs.",
226 saveTLSPrograms = GUIDesigns::buildFXMenuCommandShortcut(fileMenuTLS,
227 "Save TLS Programs", "Ctrl+Shift+K", "Save all traffic light programs of the current net.",
229 saveTLSPrograms->disable();
231 "Save TLS Programs As...", "", "Save all traffic light programs of the current net to another file.",
233 TLSMenuCascade = new FXMenuCascade(fileMenu, "Traffic Lights", GUIIconSubSys::getIcon(GUIIcon::MODETLS), fileMenuTLS);
234 // create edgeTypes menu options
236 "Load Edge Types...", "Ctrl+H", "Load edge types in the current net.",
238 reloadEdgeTypes = GUIDesigns::buildFXMenuCommandShortcut(fileMenuEdgeTypes,
239 "Reload edge types", "", "Reload edge types.",
241 saveEdgeTypes = GUIDesigns::buildFXMenuCommandShortcut(fileMenuEdgeTypes,
242 "Save Edge Types", "Ctrl+Shift+H", "Save edge types of the current net.",
244 saveEdgeTypes->disable();
246 "Save Edge Types As...", "", "Save edge types of the current net to another file.",
248 edgeTypesMenuCascade = new FXMenuCascade(fileMenu, "Edge Types", GUIIconSubSys::getIcon(GUIIcon::MODECREATEEDGE), fileMenuEdgeTypes);
249 // create Additionals menu options
250 GUIDesigns::buildFXMenuCommandShortcut(fileMenuAdditionals,
251 "Load Additionals...", "Ctrl+A", "Load additionals and shapes.",
253 reloadAdditionals = GUIDesigns::buildFXMenuCommandShortcut(fileMenuAdditionals,
254 "Reload Additionals", "", "Reload additionals.",
256 reloadAdditionals->disable();
257 saveAdditionals = GUIDesigns::buildFXMenuCommandShortcut(fileMenuAdditionals,
258 "Save Additionals", "Ctrl+Shift+A", "Save additionals and shapes.",
260 saveAdditionals->disable();
261 saveAdditionalsAs = GUIDesigns::buildFXMenuCommandShortcut(fileMenuAdditionals,
262 "Save Additionals As...", "", "Save additional elements to another file.",
264 saveAdditionalsAs->disable();
265 additionalMenuCascade = new FXMenuCascade(fileMenu, "Additionals and Shapes", GUIIconSubSys::getIcon(GUIIcon::MODEADDITIONAL), fileMenuAdditionals);
266 // create DemandElements menu options
267 GUIDesigns::buildFXMenuCommandShortcut(fileMenuDemandElements,
268 "Load Demand Elements...", "Ctrl+D", "Load demand elements.",
270 reloadDemandElements = GUIDesigns::buildFXMenuCommandShortcut(fileMenuDemandElements,
271 "Reload Demand Elements", "", "Reload demand elements.",
273 reloadDemandElements->disable();
274 saveDemandElements = GUIDesigns::buildFXMenuCommandShortcut(fileMenuDemandElements,
275 "Save Demand Elements", "Ctrl+Shift+D", "Save demand elements.",
277 saveDemandElements->disable();
278 saveDemandElementsAs = GUIDesigns::buildFXMenuCommandShortcut(fileMenuDemandElements,
279 "Save Demand Elements As...", "", "Save demand elements to another file.",
281 saveDemandElementsAs->disable();
282 demandMenuCascade = new FXMenuCascade(fileMenu, "Demand Elements", GUIIconSubSys::getIcon(GUIIcon::SUPERMODEDEMAND), fileMenuDemandElements);
283 // create DataElements menu options
284 GUIDesigns::buildFXMenuCommandShortcut(fileMenuDataElements,
285 "Load Data Elements...", "Ctrl+B", "Load data elements.",
287 reloadDataElements = GUIDesigns::buildFXMenuCommandShortcut(fileMenuDataElements,
288 "Reload Data Elements", "", "Reload data elements.",
290 reloadDataElements->disable();
291 saveDataElements = GUIDesigns::buildFXMenuCommandShortcut(fileMenuDataElements,
292 "Save Data Elements", "Ctrl+Shift+B", "Save data elements.",
294 saveDataElements->disable();
295 saveDataElementsAs = GUIDesigns::buildFXMenuCommandShortcut(fileMenuDataElements,
296 "Save Data Elements As...", "", "Save data elements to another file.",
298 saveDataElementsAs->disable();
299 dataMenuCascade = new FXMenuCascade(fileMenu, "Data Elements", GUIIconSubSys::getIcon(GUIIcon::SUPERMODEDATA), fileMenuDataElements);
300 // close network
301 new FXMenuSeparator(fileMenu);
303 "Close", "Ctrl+W", "Close the network.",
305}
306
307// ---------------------------------------------------------------------------
308// GNEApplicationWindowHelper::ModesMenuCommands::CommonMenuCommands - methods
309// ---------------------------------------------------------------------------
310
312 deleteMode(nullptr),
313 inspectMode(nullptr),
314 selectMode(nullptr),
315 myModesMenuCommandsParent(modesMenuCommandsParent) {
316}
317
318
319void
321 // build every FXMenuCommand giving it a shortcut
322 inspectMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
323 TL("&Inspect"), "I", "Inspect elements and change their attributes.",
324 GUIIconSubSys::getIcon(GUIIcon::MODEINSPECT), myModesMenuCommandsParent->myGNEApp, MID_HOTKEY_I_MODE_INSPECT);
325 deleteMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
326 TL("&Delete"), "D", "Delete elements.",
327 GUIIconSubSys::getIcon(GUIIcon::MODEDELETE), myModesMenuCommandsParent->myGNEApp, MID_HOTKEY_D_MODE_DELETE);
328 selectMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
329 TL("&Select"), "S", "Select elements.",
330 GUIIconSubSys::getIcon(GUIIcon::MODESELECT), myModesMenuCommandsParent->myGNEApp, MID_HOTKEY_S_MODE_SELECT);
331}
332
333// ---------------------------------------------------------------------------
334// GNEApplicationWindowHelper::ModesMenuCommands::NetworkMenuCommands - methods
335// ---------------------------------------------------------------------------
336
338 createEdgeMode(nullptr),
339 moveMode(nullptr),
340 connectMode(nullptr),
341 prohibitionMode(nullptr),
342 TLSMode(nullptr),
343 additionalMode(nullptr),
344 crossingMode(nullptr),
345 TAZMode(nullptr),
346 shapeMode(nullptr),
347 wireMode(nullptr),
348 myModesMenuCommandsParent(modesMenuCommandsParent) {
349}
350
351
352void
354 createEdgeMode->show();
355 moveMode->show();
356 connectMode->show();
357 prohibitionMode->show();
358 TLSMode->show();
359 additionalMode->show();
360 crossingMode->show();
361 TAZMode->show();
362 shapeMode->show();
363 wireMode->show();
364}
365
366
367void
369 createEdgeMode->hide();
370 moveMode->hide();
371 connectMode->hide();
372 prohibitionMode->hide();
373 TLSMode->hide();
374 additionalMode->hide();
375 crossingMode->hide();
376 TAZMode->hide();
377 shapeMode->hide();
378 wireMode->hide();
379}
380
381
382void
384 // build every FXMenuCommand giving it a shortcut
385 moveMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
386 TL("&Move"), "M", "Move elements.",
387 GUIIconSubSys::getIcon(GUIIcon::MODEMOVE), myModesMenuCommandsParent->myGNEApp, MID_HOTKEY_M_MODE_MOVE);
388 createEdgeMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
389 TL("&Edge"), "E", "Create junction and edges.",
391 connectMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
392 TL("&Connection"), "C", "Modes connections between lanes.",
394 prohibitionMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
395 TL("Pro&hibition"), "H", "Modes connection prohibitions.",
397 TLSMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
398 "&Traffic light", "T", "Modes traffic lights over junctions.",
399 GUIIconSubSys::getIcon(GUIIcon::MODETLS), myModesMenuCommandsParent->myGNEApp, MID_HOTKEY_T_MODE_TLS_TYPE);
400 additionalMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
401 TL("&Additional"), "A", "Create additional elements.",
403 crossingMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
404 TL("C&rossing"), "R", "Create crossings between edges.",
406 TAZMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
407 TL("TA&Z"), "Z", "Create Traffic Assignment Zones.",
408 GUIIconSubSys::getIcon(GUIIcon::MODETAZ), myModesMenuCommandsParent->myGNEApp, MID_HOTKEY_Z_MODE_TAZ_TAZREL);
409 shapeMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
410 "&POI-Poly", "P", "Create Points-Of-Interest and polygons.",
411 GUIIconSubSys::getIcon(GUIIcon::MODESHAPE), myModesMenuCommandsParent->myGNEApp, MID_HOTKEY_P_MODE_POLYGON_PERSON);
412 wireMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
413 TL("&Wire"), "W", "Create wires.",
414 GUIIconSubSys::getIcon(GUIIcon::MODEWIRE), myModesMenuCommandsParent->myGNEApp, MID_HOTKEY_W_MODE_WIRE);
415}
416
417// ---------------------------------------------------------------------------
418// GNEApplicationWindowHelper::ModesMenuCommands::DemandMenuCommands - methods
419// ---------------------------------------------------------------------------
420
422 moveMode(nullptr),
423 routeMode(nullptr),
424 vehicleMode(nullptr),
425 typeMode(nullptr),
426 stopMode(nullptr),
427 personMode(nullptr),
428 personPlanMode(nullptr),
429 containerMode(nullptr),
430 containerPlanMode(nullptr),
431 myModesMenuCommandsParent(modesMenuCommandsParent) {
432}
433
434
435void
437 moveMode->show();
438 routeMode->show();
439 vehicleMode->show();
440 typeMode->show();
441 stopMode->show();
442 personMode->show();
443 personPlanMode->show();
444 containerMode->show();
445 containerPlanMode->show();
446}
447
448
449void
451 moveMode->hide();
452 routeMode->hide();
453 vehicleMode->hide();
454 typeMode->hide();
455 stopMode->hide();
456 personMode->hide();
457 personPlanMode->hide();
458 containerMode->hide();
459 containerPlanMode->hide();
460}
461
462
463void
465 // build every FXMenuCommand giving it a shortcut
466 moveMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
467 TL("&Move"), "M", "Move elements.",
468 GUIIconSubSys::getIcon(GUIIcon::MODEMOVE), myModesMenuCommandsParent->myGNEApp, MID_HOTKEY_M_MODE_MOVE);
469 routeMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
470 "Route", "R", "Create Routes.",
472 vehicleMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
473 "Vehicle", "V", "Create vehicles.",
474 GUIIconSubSys::getIcon(GUIIcon::MODEVEHICLE), myModesMenuCommandsParent->myGNEApp, MID_HOTKEY_V_MODE_VEHICLE);
475 typeMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
476 "Type", "T", "Create types (vehicles, person an containers).",
477 GUIIconSubSys::getIcon(GUIIcon::MODETYPE), myModesMenuCommandsParent->myGNEApp, MID_HOTKEY_T_MODE_TLS_TYPE);
478 stopMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
479 "Stop", "A", "Create stops.",
480 GUIIconSubSys::getIcon(GUIIcon::MODESTOP), myModesMenuCommandsParent->myGNEApp, MID_HOTKEY_A_MODE_ADDITIONAL_STOP);
481 personMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
482 "Person", "P", "Create persons.",
484 personPlanMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
485 "Person plan", "C", "Create person plans.",
487 containerMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
488 "Container", "G", "Create containers.",
489 GUIIconSubSys::getIcon(GUIIcon::MODECONTAINER), myModesMenuCommandsParent->myGNEApp, MID_HOTKEY_G_MODE_CONTAINER);
490 containerPlanMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
491 "Container plan", "H", "Create container plans.",
493}
494
495// ---------------------------------------------------------------------------
496// GNEApplicationWindowHelper::ModesMenuCommands::DataMenuCommands - methods
497// ---------------------------------------------------------------------------
498
500 edgeData(nullptr),
501 edgeRelData(nullptr),
502 TAZRelData(nullptr),
503 myModesMenuCommandsParent(modesMenuCommandsParent) {
504}
505
506
507void
509 edgeData->show();
510 edgeRelData->show();
511 TAZRelData->show();
512}
513
514
515void
517 edgeData->hide();
518 edgeRelData->hide();
519 TAZRelData->hide();
520}
521
522
523void
525 // build every FXMenuCommand giving it a shortcut
526 edgeData = GUIDesigns::buildFXMenuCommand(modesMenu,
527 "EdgeData Mode\tE\tCreate edgeData elements.",
529 edgeRelData = GUIDesigns::buildFXMenuCommand(modesMenu,
530 "EdgeRelation Mode\tR\tCreate edgeRelation elements.",
532 TAZRelData = GUIDesigns::buildFXMenuCommand(modesMenu,
533 "TAZRelation Mode\tZ\tCreate TAZRelation elements.",
535}
536
537// ---------------------------------------------------------------------------
538// GNEApplicationWindowHelper::ModesMenuCommands - methods
539// ---------------------------------------------------------------------------
540
541#ifdef _MSC_VER
542#pragma warning(push)
543/* Disable warning about using "this" in the constructor */
544#pragma warning(disable: 4355)
545#endif
547 commonMenuCommands(this),
549 demandMenuCommands(this),
550 dataMenuCommands(this),
551 myGNEApp(GNEApp) {
552}
553#ifdef _MSC_VER
554#pragma warning(pop)
555#endif
556
557
558void
560 // build Common modes commands and hide it
561 commonMenuCommands.buildCommonMenuCommands(modesMenu);
562 // build Network modes commands and hide it
563 networkMenuCommands.buildNetworkMenuCommands(modesMenu);
564 networkMenuCommands.hideNetworkMenuCommands();
565 // build Demand Modes commands
566 demandMenuCommands.buildDemandMenuCommands(modesMenu);
567 demandMenuCommands.hideDemandMenuCommands();
568 // build Data Modes commands
569 dataMenuCommands.buildDataMenuCommands(modesMenu);
570 dataMenuCommands.hideDataMenuCommands();
571}
572
573// ---------------------------------------------------------------------------
574// GNEApplicationWindowHelper::EditMenuCommands::NetworkViewOptions - methods
575// ---------------------------------------------------------------------------
576
578 menuCheckToggleGrid(nullptr),
579 menuCheckToggleDrawJunctionShape(nullptr),
580 menuCheckDrawSpreadVehicles(nullptr),
581 menuCheckShowDemandElements(nullptr),
582 menuCheckSelectEdges(nullptr),
583 menuCheckShowConnections(nullptr),
584 menuCheckHideConnections(nullptr),
585 menuCheckShowAdditionalSubElements(nullptr),
586 menuCheckShowTAZElements(nullptr),
587 menuCheckExtendSelection(nullptr),
588 menuCheckChangeAllPhases(nullptr),
589 menuCheckWarnAboutMerge(nullptr),
590 menuCheckShowJunctionBubble(nullptr),
591 menuCheckMoveElevation(nullptr),
592 menuCheckChainEdges(nullptr),
593 menuCheckAutoOppositeEdge(nullptr),
594 separator(nullptr),
595 myGNEApp(GNEApp) {
596}
597
598
599void
601 // create menu checks
602 menuCheckToggleGrid = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
603 "Show grid", "Ctrl+G or Alt+1", "",
606
607 menuCheckToggleDrawJunctionShape = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
608 "Hide junction shape", "Ctrl+J or Alt+2", "",
611
612 menuCheckDrawSpreadVehicles = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
613 "Draw vehicles spread in lane or in depart position", "Alt+3", "",
616
617 menuCheckShowDemandElements = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
618 "Show demand elements", "Alt+4", "",
621
622 menuCheckSelectEdges = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
623 "Clicking should target lanes", "Alt+5", "",
626
627 menuCheckShowConnections = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
628 "Show connections over junctions", "Alt+6", "",
631
632 menuCheckHideConnections = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
633 "Hide connections", "Alt+7", "",
636
637 menuCheckShowAdditionalSubElements = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
638 "Show sub-additional elements", "Alt+8", "",
641
642 menuCheckShowTAZElements = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
643 "Show TAZ elements", "Alt+9", "",
646
647 menuCheckExtendSelection = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
648 "Selecting multiple edges automatically select their junctions", "Alt+10", "",
651
652 menuCheckChangeAllPhases = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
653 "Clicking should apply state changes to all phases of TLS plan", "Alt+5", "",
656
657 menuCheckWarnAboutMerge = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
658 "Ask for confirmation before merging junction", "Alt+5", "",
661
662 menuCheckShowJunctionBubble = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
663 "Show bubbles over junctions shapes", "Alt+6", "",
666
667 menuCheckMoveElevation = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
668 "Apply mouse movement to elevation", "Alt+7", "",
671
672 menuCheckChainEdges = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
673 "Create consecutive edges", "Alt+5", "",
676
677 menuCheckAutoOppositeEdge = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
678 "Create an edge in the opposite direction", "Alt+6", "",
681
682 // build separator
683 separator = new FXMenuSeparator(editMenu);
684}
685
686
687void
689 menuCheckToggleGrid->hide();
690 menuCheckToggleDrawJunctionShape->hide();
691 menuCheckDrawSpreadVehicles->hide();
692 menuCheckShowDemandElements->hide();
693 menuCheckSelectEdges->hide();
694 menuCheckShowConnections->hide();
695 menuCheckHideConnections->hide();
696 menuCheckShowAdditionalSubElements->hide();
697 menuCheckShowTAZElements->hide();
698 menuCheckExtendSelection->hide();
699 menuCheckChangeAllPhases->hide();
700 menuCheckWarnAboutMerge->hide();
701 menuCheckShowJunctionBubble->hide();
702 menuCheckMoveElevation->hide();
703 menuCheckChainEdges->hide();
704 menuCheckAutoOppositeEdge->hide();
705 separator->hide();
706}
707
708
709void
711 int index = 2;
712 // update all accel text
713 if (menuCheckDrawSpreadVehicles->shown()) {
714 menuCheckDrawSpreadVehicles->setAccelText(("Alt+" + toString(index)).c_str());
715 index++;
716 }
717 if (menuCheckDrawSpreadVehicles->shown()) {
718 menuCheckDrawSpreadVehicles->setAccelText(("Alt+" + toString(index)).c_str());
719 index++;
720 }
721 if (menuCheckShowDemandElements->shown()) {
722 menuCheckShowDemandElements->setAccelText(("Alt+" + toString(index)).c_str());
723 index++;
724 }
725 if (menuCheckSelectEdges->shown()) {
726 menuCheckSelectEdges->setAccelText(("Alt+" + toString(index)).c_str());
727 index++;
728 }
729 if (menuCheckShowConnections->shown()) {
730 menuCheckShowConnections->setAccelText(("Alt+" + toString(index)).c_str());
731 index++;
732 }
733 if (menuCheckHideConnections->shown()) {
734 menuCheckHideConnections->setAccelText(("Alt+" + toString(index)).c_str());
735 index++;
736 }
737 if (menuCheckShowAdditionalSubElements->shown()) {
738 menuCheckShowAdditionalSubElements->setAccelText(("Alt+" + toString(index)).c_str());
739 index++;
740 }
741 if (menuCheckShowTAZElements->shown()) {
742 menuCheckShowTAZElements->setAccelText(("Alt+" + toString(index)).c_str());
743 index++;
744 }
745 if (menuCheckExtendSelection->shown()) {
746 menuCheckExtendSelection->setAccelText(("Alt+" + toString(index)).c_str());
747 index++;
748 }
749 if (menuCheckChangeAllPhases->shown()) {
750 menuCheckChangeAllPhases->setAccelText(("Alt+" + toString(index)).c_str());
751 index++;
752 }
753 if (menuCheckWarnAboutMerge->shown()) {
754 menuCheckWarnAboutMerge->setAccelText(("Alt+" + toString(index)).c_str());
755 index++;
756 }
757 if (menuCheckShowJunctionBubble->shown()) {
758 menuCheckShowJunctionBubble->setAccelText(("Alt+" + toString(index)).c_str());
759 index++;
760 }
761 if (menuCheckMoveElevation->shown()) {
762 menuCheckMoveElevation->setAccelText(("Alt+" + toString(index)).c_str());
763 index++;
764 }
765 if (menuCheckChainEdges->shown()) {
766 menuCheckChainEdges->setAccelText(("Alt+" + toString(index)).c_str());
767 index++;
768 }
769 if (menuCheckAutoOppositeEdge->shown()) {
770 menuCheckAutoOppositeEdge->setAccelText(("Alt+" + toString(index)).c_str());
771 index++;
772 }
773}
774
775// ---------------------------------------------------------------------------
776// GNEApplicationWindowHelper::DemandViewOptions - methods
777// ---------------------------------------------------------------------------
778
780 menuCheckToggleGrid(nullptr),
781 menuCheckToggleDrawJunctionShape(nullptr),
782 menuCheckDrawSpreadVehicles(nullptr),
783 menuCheckHideShapes(nullptr),
784 menuCheckShowAllTrips(nullptr),
785 menuCheckHideNonInspectedDemandElements(nullptr),
786 menuCheckShowOverlappedRoutes(nullptr),
787 menuCheckShowAllPersonPlans(nullptr),
788 menuCheckLockPerson(nullptr),
789 menuCheckShowAllContainerPlans(nullptr),
790 menuCheckLockContainer(nullptr),
791 separator(nullptr),
792 myGNEApp(GNEApp) {
793}
794
795
796void
798 // create menu checks
799 menuCheckToggleGrid = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
800 "Show grid", "Ctrl+G or Alt+1", "",
803
804 menuCheckToggleDrawJunctionShape = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
805 "Hide junction shape", "Ctrl+J or Alt+2", "",
808
809 menuCheckDrawSpreadVehicles = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
810 "Draw vehicles spread/depart position", "Alt+3", "",
813
814 menuCheckHideShapes = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
815 "Show shapes", "Alt+4", "",
818
819 menuCheckShowAllTrips = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
820 "Show all trips", "Alt+5", "",
823
824 menuCheckShowAllPersonPlans = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
825 "Show all person plans", "Alt+6", "",
828
829 menuCheckLockPerson = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
830 "Lock selected person", "Alt+7", "",
833
834 menuCheckShowAllContainerPlans = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
835 "Show all container plans", "Alt+6", "",
838
839 menuCheckLockContainer = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
840 "Lock selected container", "Alt+7", "",
843
844 menuCheckHideNonInspectedDemandElements = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
845 "Show non-inspected demand elements", "Alt+8", "",
848
849 menuCheckShowOverlappedRoutes = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
850 "Show number of overlapped routes", "Alt+9", "",
853
854 // build separator
855 separator = new FXMenuSeparator(editMenu);
856}
857
858
859void
861 menuCheckToggleGrid->hide();
862 menuCheckToggleDrawJunctionShape->hide();
863 menuCheckDrawSpreadVehicles->hide();
864 menuCheckHideShapes->hide();
865 menuCheckShowAllTrips->hide();
866 menuCheckHideNonInspectedDemandElements->hide();
867 menuCheckShowOverlappedRoutes->hide();
868 menuCheckShowAllPersonPlans->hide();
869 menuCheckLockPerson->hide();
870 menuCheckShowAllContainerPlans->hide();
871 menuCheckLockContainer->hide();
872 separator->hide();
873}
874
875
876void
878 int index = 2;
879 // update all accel text
880 if (menuCheckDrawSpreadVehicles->shown()) {
881 menuCheckDrawSpreadVehicles->setAccelText(("Alt+" + toString(index)).c_str());
882 index++;
883 }
884 if (menuCheckHideShapes->shown()) {
885 menuCheckHideShapes->setAccelText(("Alt+" + toString(index)).c_str());
886 index++;
887 }
888 if (menuCheckShowAllTrips->shown()) {
889 menuCheckShowAllTrips->setAccelText(("Alt+" + toString(index)).c_str());
890 index++;
891 }
892 if (menuCheckHideNonInspectedDemandElements->shown()) {
893 menuCheckHideNonInspectedDemandElements->setAccelText(("Alt+" + toString(index)).c_str());
894 index++;
895 }
896 if (menuCheckShowOverlappedRoutes->shown()) {
897 menuCheckShowOverlappedRoutes->setAccelText(("Alt+" + toString(index)).c_str());
898 index++;
899 }
900 if (menuCheckShowAllPersonPlans->shown()) {
901 menuCheckShowAllPersonPlans->setAccelText(("Alt+" + toString(index)).c_str());
902 index++;
903 }
904 if (menuCheckLockPerson->shown()) {
905 menuCheckLockPerson->setAccelText(("Alt+" + toString(index)).c_str());
906 index++;
907 }
908 if (menuCheckShowAllContainerPlans->shown()) {
909 menuCheckShowAllContainerPlans->setAccelText(("Alt+" + toString(index)).c_str());
910 index++;
911 }
912 if (menuCheckLockContainer->shown()) {
913 menuCheckLockContainer->setAccelText(("Alt+" + toString(index)).c_str());
914 index++;
915 }
916}
917
918// ---------------------------------------------------------------------------
919// GNEApplicationWindowHelper::EditMenuCommands::DataViewOptions - methods
920// ---------------------------------------------------------------------------
921
923 menuCheckToggleDrawJunctionShape(nullptr),
924 menuCheckShowAdditionals(nullptr),
925 menuCheckShowShapes(nullptr),
926 menuCheckShowDemandElements(nullptr),
927 menuCheckToggleTAZRelDrawing(nullptr),
928 menuCheckToggleTAZDrawFill(nullptr),
929 menuCheckToggleTAZRelOnlyFrom(nullptr),
930 menuCheckToggleTAZRelOnlyTo(nullptr),
931 separator(nullptr),
932 myGNEApp(GNEApp) {
933}
934
935
936void
938 // create menu checks
939 menuCheckToggleDrawJunctionShape = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
940 "Hide junction shape", "Ctrl+J or Alt+1", "",
943
944 menuCheckShowAdditionals = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
945 "Show additionals", "Alt+2", "",
948
949 menuCheckShowShapes = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
950 "Show shapes", "Alt+3", "",
953
954 menuCheckShowDemandElements = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
955 "Show demand elements", "Alt+4", "",
958
959 menuCheckToggleTAZRelDrawing = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
960 "Draw TAZRel from center", "Alt+5", "",
963
964 menuCheckToggleTAZDrawFill = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
965 "Draw TAZ fill", "Alt+6", "",
968
969 menuCheckToggleTAZRelOnlyFrom = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
970 "Only draw TAZRel from", "Alt+6", "",
973
974 menuCheckToggleTAZRelOnlyTo = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
975 "Only draw TAZRel to", "Alt+7", "",
978 // build separator
979 separator = new FXMenuSeparator(editMenu);
980}
981
982
983void
985 menuCheckToggleDrawJunctionShape->hide();
986 menuCheckShowAdditionals->hide();
987 menuCheckShowShapes->hide();
988 menuCheckShowDemandElements->hide();
989 menuCheckToggleTAZRelDrawing->hide();
990 menuCheckToggleTAZDrawFill->hide();
991 menuCheckToggleTAZRelOnlyFrom->hide();
992 menuCheckToggleTAZRelOnlyTo->hide();
993 separator->hide();
994}
995
996
997void
999 int index = 2;
1000 // update all accel text
1001 if (menuCheckShowAdditionals->shown()) {
1002 menuCheckShowAdditionals->setAccelText(("Alt+" + toString(index)).c_str());
1003 index++;
1004 }
1005 if (menuCheckShowShapes->shown()) {
1006 menuCheckShowShapes->setAccelText(("Alt+" + toString(index)).c_str());
1007 index++;
1008 }
1009 if (menuCheckShowDemandElements->shown()) {
1010 menuCheckShowDemandElements->setAccelText(("Alt+" + toString(index)).c_str());
1011 index++;
1012 }
1013 if (menuCheckToggleTAZRelDrawing->shown()) {
1014 menuCheckToggleTAZRelDrawing->setAccelText(("Alt+" + toString(index)).c_str());
1015 index++;
1016 }
1017 if (menuCheckToggleTAZDrawFill->shown()) {
1018 menuCheckToggleTAZDrawFill->setAccelText(("Alt+" + toString(index)).c_str());
1019 index++;
1020 }
1021 if (menuCheckToggleTAZRelOnlyFrom->shown()) {
1022 menuCheckToggleTAZRelOnlyFrom->setAccelText(("Alt+" + toString(index)).c_str());
1023 index++;
1024 }
1025 if (menuCheckToggleTAZRelOnlyTo->shown()) {
1026 menuCheckToggleTAZRelOnlyTo->setAccelText(("Alt+" + toString(index)).c_str());
1027 index++;
1028 }
1029}
1030
1031// ---------------------------------------------------------------------------
1032// GNEApplicationWindowHelper::EditMenuCommands - methods
1033// ---------------------------------------------------------------------------
1034
1036 undoLastChange(nullptr),
1037 redoLastChange(nullptr),
1038 openUndolistDialog(nullptr),
1039 networkViewOptions(GNEApp),
1040 demandViewOptions(GNEApp),
1041 dataViewOptions(GNEApp),
1042 editViewScheme(nullptr),
1043 editViewPort(nullptr),
1044 clearFrontElement(nullptr),
1045 loadAdditionalsInSUMOGUI(nullptr),
1046 loadDemandInSUMOGUI(nullptr),
1047 openInSUMOGUI(nullptr),
1048 myGNEApp(GNEApp) {
1049}
1050
1051
1052void
1054 // build undo/redo command
1055 undoLastChange = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
1056 "Undo", "Ctrl+Z", "Undo the last change.",
1058 redoLastChange = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
1059 "Redo", "Ctrl+Y", "Redo the last change.",
1061 openUndolistDialog = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
1062 "Show undo/redo history", "", "Open undo/redo history dialog.",
1064}
1065
1066
1067void
1069 // build rest of menu commands
1070 editViewScheme = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
1071 "Edit Visualisation", "F9", "Opens a dialog for editing visualization settings.",
1073 editViewPort = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
1074 "Edit Viewport", "Ctrl+I", "Opens a dialog for editing viewing are, zoom and rotation.",
1076}
1077
1078
1079void
1081 // add clear front element
1082 clearFrontElement = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
1083 "Clear front element", "F11", "Clear current front element",
1085}
1086
1087
1088void
1090 // add open in sumo options
1091 loadAdditionalsInSUMOGUI = new FXMenuCheck(editMenu,
1092 "Load additionals in sumo-gui\t\tLoad additionals in sumo-gui.",
1094 loadAdditionalsInSUMOGUI->setCheck(TRUE);
1095 loadDemandInSUMOGUI = new FXMenuCheck(editMenu,
1096 "Load demand in sumo-gui\t\tLoad demand in sumo-gui.",
1098 loadDemandInSUMOGUI->setCheck(TRUE);
1099 openInSUMOGUI = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
1100 "Open in sumo-gui", "Ctrl+T", "Opens the sumo-gui application with the current network.",
1102}
1103
1104// ---------------------------------------------------------------------------
1105// GNEApplicationWindowHelper::LockMenuCommands - methods
1106// ---------------------------------------------------------------------------
1107
1109 myGNEApp(GNEApp) {
1110}
1111
1112
1113void
1115 // newtork
1116 menuCheckLockJunction = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1117 TL("&Junctions"), "", "",
1119 myGNEApp, MID_GNE_LOCK_ELEMENT);
1120
1121 menuCheckLockEdges = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1122 TL("&Edges"), "", "",
1124 myGNEApp, MID_GNE_LOCK_ELEMENT);
1125
1126 menuCheckLockLanes = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1127 TL("&Lanes"), "", "",
1129 myGNEApp, MID_GNE_LOCK_ELEMENT);
1130
1131 menuCheckLockConnections = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1132 TL("&Connections"), "", "",
1134 myGNEApp, MID_GNE_LOCK_ELEMENT);
1135
1136 menuCheckLockCrossings = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1137 TL("C&rossings"), "", "",
1139 myGNEApp, MID_GNE_LOCK_ELEMENT);
1140
1141 menuCheckLockWalkingAreas = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1142 TL("Walkin&gAreas"), "", "",
1144 myGNEApp, MID_GNE_LOCK_ELEMENT);
1145
1146 menuCheckLockAdditionals = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1147 TL("&Additionals"), "", "",
1149 myGNEApp, MID_GNE_LOCK_ELEMENT);
1150
1151 menuCheckLockTAZs = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1152 TL("&TAZs"), "", "",
1154 myGNEApp, MID_GNE_LOCK_ELEMENT);
1155
1156 menuCheckLockWires = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1157 TL("&Wires"), "", "",
1159 myGNEApp, MID_GNE_LOCK_ELEMENT);
1160
1161 menuCheckLockPolygons = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1162 TL("&Polygons"), "", "",
1164 myGNEApp, MID_GNE_LOCK_ELEMENT);
1165
1166 menuCheckLockPOIs = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1167 TL("P&OIs"), "", "",
1169 myGNEApp, MID_GNE_LOCK_ELEMENT);
1170 // demand
1171 menuCheckLockRoutes = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1172 TL("&Routes"), "", "",
1174 myGNEApp, MID_GNE_LOCK_ELEMENT);
1175
1176 menuCheckLockVehicles = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1177 TL("&Vehicles"), "", "",
1179 myGNEApp, MID_GNE_LOCK_ELEMENT);
1180
1181 menuCheckLockPersons = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1182 TL("&Persons"), "", "",
1184 myGNEApp, MID_GNE_LOCK_ELEMENT);
1185
1186 menuCheckLockPersonTrip = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1187 TL("Person&Trips"), "", "",
1189 myGNEApp, MID_GNE_LOCK_ELEMENT);
1190
1191 menuCheckLockWalk = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1192 TL("&Walks"), "", "",
1194 myGNEApp, MID_GNE_LOCK_ELEMENT);
1195
1196 menuCheckLockRides = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1197 TL("Ri&des"), "", "",
1199 myGNEApp, MID_GNE_LOCK_ELEMENT);
1200
1201 menuCheckLockContainers = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1202 TL("&Containers"), "", "",
1204 myGNEApp, MID_GNE_LOCK_ELEMENT);
1205
1206 menuCheckLockTransports = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1207 TL("Tra&nsports"), "", "",
1209 myGNEApp, MID_GNE_LOCK_ELEMENT);
1210
1211 menuCheckLockTranships = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1212 TL("Trans&hips"), "", "",
1214 myGNEApp, MID_GNE_LOCK_ELEMENT);
1215
1216 menuCheckLockStops = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1217 TL("Stop&s"), "", "",
1219 myGNEApp, MID_GNE_LOCK_ELEMENT);
1220 // data
1221 menuCheckLockEdgeDatas = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1222 TL("&EdgeDatas"), "", "",
1224 myGNEApp, MID_GNE_LOCK_ELEMENT);
1225
1226 menuCheckLockEdgeRelDatas = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1227 TL("E&dgeRelDatas"), "", "",
1229 myGNEApp, MID_GNE_LOCK_ELEMENT);
1230
1231 menuCheckLockEdgeTAZRels = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1232 TL("Edge&TAZRel"), "", "",
1234 myGNEApp, MID_GNE_LOCK_ELEMENT);
1235
1236 // separator
1237 new FXMenuSeparator(fileMenu);
1238
1239 menuCheckLockSelectedElements = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1240 "Lock selected elements", "", "selected elements",
1242
1243 // separator
1244 new FXMenuSeparator(fileMenu);
1245
1247 "Lock all elements", "", "all elements",
1249
1251 "Unlock all elements", "", "Unlock all elements",
1253}
1254
1255
1256void
1258 // network
1259 menuCheckLockJunction->remHotKey(parseHotKey('j'));
1260 menuCheckLockEdges->remHotKey(parseHotKey('e'));
1261 menuCheckLockLanes->remHotKey(parseHotKey('l'));
1262 menuCheckLockConnections->remHotKey(parseHotKey('c'));
1263 menuCheckLockCrossings->remHotKey(parseHotKey('r'));
1264 menuCheckLockWalkingAreas->remHotKey(parseHotKey('g'));
1265 menuCheckLockAdditionals->remHotKey(parseHotKey('a'));
1266 menuCheckLockTAZs->remHotKey(parseHotKey('t'));
1267 menuCheckLockWires->remHotKey(parseHotKey('w'));
1268 menuCheckLockPolygons->remHotKey(parseHotKey('p'));
1269 menuCheckLockPOIs->remHotKey(parseHotKey('o'));
1270 // demand
1271 menuCheckLockRoutes->remHotKey(parseHotKey('r'));
1272 menuCheckLockVehicles->remHotKey(parseHotKey('v'));
1273 menuCheckLockPersons->remHotKey(parseHotKey('p'));
1274 menuCheckLockPersonTrip->remHotKey(parseHotKey('t'));
1275 menuCheckLockWalk->remHotKey(parseHotKey('w'));
1276 menuCheckLockRides->remHotKey(parseHotKey('d'));
1277 menuCheckLockContainers->remHotKey(parseHotKey('c'));
1278 menuCheckLockTransports->remHotKey(parseHotKey('n'));
1279 menuCheckLockTranships->remHotKey(parseHotKey('h'));
1280 menuCheckLockStops->remHotKey(parseHotKey('s'));
1281 // data
1282 menuCheckLockEdgeDatas->remHotKey(parseHotKey('e'));
1283 menuCheckLockEdgeRelDatas->remHotKey(parseHotKey('d'));
1284 menuCheckLockEdgeTAZRels->remHotKey(parseHotKey('t'));
1285}
1286
1287void
1289 // first enable menu commands
1290 menuCheckLockJunction->enable();
1291 menuCheckLockEdges->enable();
1292 menuCheckLockLanes->enable();
1293 menuCheckLockConnections->enable();
1294 menuCheckLockCrossings->enable();
1295 menuCheckLockWalkingAreas->enable();
1296 menuCheckLockAdditionals->enable();
1297 menuCheckLockTAZs->enable();
1298 menuCheckLockWires->enable();
1299 menuCheckLockPolygons->enable();
1300 menuCheckLockPOIs->enable();
1301 // set accels
1302 menuCheckLockJunction->addHotKey(parseHotKey('j'));
1303 menuCheckLockEdges->addHotKey(parseHotKey('e'));
1304 menuCheckLockLanes->addHotKey(parseHotKey('l'));
1305 menuCheckLockConnections->addHotKey(parseHotKey('c'));
1306 menuCheckLockCrossings->addHotKey(parseHotKey('r'));
1307 menuCheckLockWalkingAreas->addHotKey(parseHotKey('g'));
1308 menuCheckLockAdditionals->addHotKey(parseHotKey('a'));
1309 menuCheckLockTAZs->addHotKey(parseHotKey('t'));
1310 menuCheckLockWires->addHotKey(parseHotKey('w'));
1311 menuCheckLockPolygons->addHotKey(parseHotKey('p'));
1312 menuCheckLockPOIs->addHotKey(parseHotKey('o'));
1313 // now show it
1314 menuCheckLockJunction->show();
1315 menuCheckLockEdges->show();
1316 menuCheckLockLanes->show();
1317 menuCheckLockConnections->show();
1318 menuCheckLockCrossings->show();
1319 menuCheckLockWalkingAreas->show();
1320 menuCheckLockAdditionals->show();
1321 menuCheckLockTAZs->show();
1322 menuCheckLockWires->show();
1323 menuCheckLockPolygons->show();
1324 menuCheckLockPOIs->show();
1325}
1326
1327
1328void
1330 // first disable menu commands
1331 menuCheckLockJunction->disable();
1332 menuCheckLockEdges->disable();
1333 menuCheckLockLanes->disable();
1334 menuCheckLockConnections->disable();
1335 menuCheckLockCrossings->disable();
1336 menuCheckLockWalkingAreas->disable();
1337 menuCheckLockAdditionals->disable();
1338 menuCheckLockTAZs->disable();
1339 menuCheckLockPolygons->disable();
1340 menuCheckLockPOIs->disable();
1341 // now hide it
1342 menuCheckLockJunction->hide();
1343 menuCheckLockEdges->hide();
1344 menuCheckLockLanes->hide();
1345 menuCheckLockConnections->hide();
1346 menuCheckLockCrossings->hide();
1347 menuCheckLockWalkingAreas->hide();
1348 menuCheckLockAdditionals->hide();
1349 menuCheckLockTAZs->hide();
1350 menuCheckLockWires->hide();
1351 menuCheckLockPolygons->hide();
1352 menuCheckLockPOIs->hide();
1353}
1354
1355
1356void
1358 // first enable menu commands
1359 menuCheckLockRoutes->enable();
1360 menuCheckLockVehicles->enable();
1361 menuCheckLockPersons->enable();
1362 menuCheckLockPersonTrip->enable();
1363 menuCheckLockWalk->enable();
1364 menuCheckLockRides->enable();
1365 menuCheckLockContainers->enable();
1366 menuCheckLockTransports->enable();
1367 menuCheckLockTranships->enable();
1368 menuCheckLockStops->enable();
1369 // set accels
1370 menuCheckLockRoutes->addHotKey(parseHotKey('r'));
1371 menuCheckLockVehicles->addHotKey(parseHotKey('v'));
1372 menuCheckLockPersons->addHotKey(parseHotKey('p'));
1373 menuCheckLockPersonTrip->addHotKey(parseHotKey('t'));
1374 menuCheckLockWalk->addHotKey(parseHotKey('w'));
1375 menuCheckLockRides->addHotKey(parseHotKey('d'));
1376 menuCheckLockContainers->addHotKey(parseHotKey('c'));
1377 menuCheckLockTransports->addHotKey(parseHotKey('n'));
1378 menuCheckLockTranships->addHotKey(parseHotKey('h'));
1379 menuCheckLockStops->addHotKey(parseHotKey('s'));
1380 // now show it
1381 menuCheckLockRoutes->show();
1382 menuCheckLockVehicles->show();
1383 menuCheckLockPersons->show();
1384 menuCheckLockPersonTrip->show();
1385 menuCheckLockWalk->show();
1386 menuCheckLockRides->show();
1387 menuCheckLockContainers->show();
1388 menuCheckLockTransports->show();
1389 menuCheckLockTranships->show();
1390 menuCheckLockStops->show();
1391}
1392
1393
1394void
1396 // first disable menu commands
1397 menuCheckLockRoutes->disable();
1398 menuCheckLockVehicles->disable();
1399 menuCheckLockPersons->disable();
1400 menuCheckLockPersonTrip->disable();
1401 menuCheckLockWalk->disable();
1402 menuCheckLockRides->disable();
1403 menuCheckLockContainers->disable();
1404 menuCheckLockTransports->disable();
1405 menuCheckLockTranships->disable();
1406 menuCheckLockStops->disable();
1407 // now hide it
1408 menuCheckLockRoutes->hide();
1409 menuCheckLockVehicles->hide();
1410 menuCheckLockPersons->hide();
1411 menuCheckLockPersonTrip->hide();
1412 menuCheckLockWalk->hide();
1413 menuCheckLockRides->hide();
1414 menuCheckLockContainers->hide();
1415 menuCheckLockTransports->hide();
1416 menuCheckLockTranships->hide();
1417 menuCheckLockStops->hide();
1418}
1419
1420
1421void
1423 // first enable menu commands
1424 menuCheckLockEdgeDatas->enable();
1425 menuCheckLockEdgeRelDatas->enable();
1426 menuCheckLockEdgeTAZRels->enable();
1427 // set accels
1428 menuCheckLockEdgeDatas->addHotKey(parseHotKey('e'));
1429 menuCheckLockEdgeRelDatas->addHotKey(parseHotKey('d'));
1430 menuCheckLockEdgeTAZRels->addHotKey(parseHotKey('t'));
1431 // now show it
1432 menuCheckLockEdgeDatas->show();
1433 menuCheckLockEdgeRelDatas->show();
1434 menuCheckLockEdgeTAZRels->show();
1435}
1436
1437
1438void
1440 // first disable menu commands
1441 menuCheckLockEdgeDatas->disable();
1442 menuCheckLockEdgeRelDatas->disable();
1443 menuCheckLockEdgeTAZRels->disable();
1444 // now hide it
1445 menuCheckLockEdgeDatas->hide();
1446 menuCheckLockEdgeRelDatas->hide();
1447 menuCheckLockEdgeTAZRels->hide();
1448}
1449
1450
1451void
1453 menuCheckLockJunction->setCheck(TRUE);
1454 menuCheckLockEdges->setCheck(TRUE);
1455 menuCheckLockLanes->setCheck(TRUE);
1456 menuCheckLockConnections->setCheck(TRUE);
1457 menuCheckLockCrossings->setCheck(TRUE);
1458 menuCheckLockWalkingAreas->setCheck(TRUE);
1459 menuCheckLockAdditionals->setCheck(TRUE);
1460 menuCheckLockTAZs->setCheck(TRUE);
1461 menuCheckLockWires->setCheck(TRUE);
1462 menuCheckLockPolygons->setCheck(TRUE);
1463 menuCheckLockPOIs->setCheck(TRUE);
1464 menuCheckLockRoutes->setCheck(TRUE);
1465 menuCheckLockVehicles->setCheck(TRUE);
1466 menuCheckLockPersons->setCheck(TRUE);
1467 menuCheckLockPersonTrip->setCheck(TRUE);
1468 menuCheckLockWalk->setCheck(TRUE);
1469 menuCheckLockRides->setCheck(TRUE);
1470 menuCheckLockContainers->setCheck(TRUE);
1471 menuCheckLockTransports->setCheck(TRUE);
1472 menuCheckLockTranships->setCheck(TRUE);
1473 menuCheckLockStops->setCheck(TRUE);
1474 menuCheckLockEdgeDatas->setCheck(TRUE);
1475 menuCheckLockEdgeRelDatas->setCheck(TRUE);
1476 menuCheckLockEdgeTAZRels->setCheck(TRUE);
1477}
1478
1479
1480void
1482 menuCheckLockJunction->setCheck(FALSE);
1483 menuCheckLockEdges->setCheck(FALSE);
1484 menuCheckLockLanes->setCheck(FALSE);
1485 menuCheckLockConnections->setCheck(FALSE);
1486 menuCheckLockCrossings->setCheck(FALSE);
1487 menuCheckLockWalkingAreas->setCheck(FALSE);
1488 menuCheckLockAdditionals->setCheck(FALSE);
1489 menuCheckLockTAZs->setCheck(FALSE);
1490 menuCheckLockWires->setCheck(FALSE);
1491 menuCheckLockPolygons->setCheck(FALSE);
1492 menuCheckLockPOIs->setCheck(FALSE);
1493 menuCheckLockRoutes->setCheck(FALSE);
1494 menuCheckLockVehicles->setCheck(FALSE);
1495 menuCheckLockPersons->setCheck(FALSE);
1496 menuCheckLockPersonTrip->setCheck(FALSE);
1497 menuCheckLockWalk->setCheck(FALSE);
1498 menuCheckLockRides->setCheck(FALSE);
1499 menuCheckLockContainers->setCheck(FALSE);
1500 menuCheckLockTransports->setCheck(FALSE);
1501 menuCheckLockTranships->setCheck(FALSE);
1502 menuCheckLockStops->setCheck(FALSE);
1503 menuCheckLockEdgeDatas->setCheck(FALSE);
1504 menuCheckLockEdgeRelDatas->setCheck(FALSE);
1505 menuCheckLockEdgeTAZRels->setCheck(FALSE);
1506}
1507
1508
1509void
1511 // check elements
1512 if (AC->getTagProperty().getTag() == SUMO_TAG_JUNCTION) {
1513 menuCheckLockJunction->setCheck(value);
1514 } else if (AC->getTagProperty().getTag() == SUMO_TAG_EDGE) {
1515 menuCheckLockEdges->setCheck(value);
1516 } else if (AC->getTagProperty().getTag() == SUMO_TAG_LANE) {
1517 menuCheckLockLanes->setCheck(value);
1518 } else if (AC->getTagProperty().getTag() == SUMO_TAG_CONNECTION) {
1519 menuCheckLockConnections->setCheck(value);
1520 } else if (AC->getTagProperty().getTag() == SUMO_TAG_CROSSING) {
1521 menuCheckLockCrossings->setCheck(value);
1522 } else if (AC->getTagProperty().getTag() == SUMO_TAG_WALKINGAREA) {
1523 menuCheckLockWalkingAreas->setCheck(value);
1524 } else if (AC->getTagProperty().isAdditionalElement()) {
1525 menuCheckLockAdditionals->setCheck(value);
1526 } else if (AC->getTagProperty().isTAZElement()) {
1527 menuCheckLockTAZs->setCheck(value);
1528 } else if (AC->getTagProperty().isWireElement()) {
1529 menuCheckLockWires->setCheck(value);
1530 } else if (AC->getTagProperty().getTag() == SUMO_TAG_POLY) {
1531 menuCheckLockPolygons->setCheck(value);
1532 } else if (AC->getTagProperty().isShapeElement() && (AC->getTagProperty().getTag() != SUMO_TAG_POLY)) {
1533 menuCheckLockPOIs->setCheck(value);
1534 } else if (AC->getTagProperty().isRoute()) {
1535 menuCheckLockRoutes->setCheck(value);
1536 } else if (AC->getTagProperty().isVehicle()) {
1537 menuCheckLockVehicles->setCheck(value);
1538 } else if (AC->getTagProperty().isPerson()) {
1539 menuCheckLockPersons->setCheck(value);
1540 } else if (AC->getTagProperty().isPersonTrip()) {
1541 menuCheckLockPersonTrip->setCheck(value);
1542 } else if (AC->getTagProperty().isWalk()) {
1543 menuCheckLockWalk->setCheck(value);
1544 } else if (AC->getTagProperty().isRide()) {
1545 menuCheckLockRides->setCheck(value);
1546 } else if (AC->getTagProperty().isContainer()) {
1547 menuCheckLockContainers->setCheck(value);
1548 } else if (AC->getTagProperty().isTransportPlan()) {
1549 menuCheckLockTransports->setCheck(value);
1550 } else if (AC->getTagProperty().isTranshipPlan()) {
1551 menuCheckLockTranships->setCheck(value);
1552 } else if (AC->getTagProperty().isStop() || AC->getTagProperty().isStopPerson()) {
1553 menuCheckLockStops->setCheck(value);
1554 } else if (AC->getTagProperty().getTag() == SUMO_TAG_MEANDATA_EDGE) {
1555 menuCheckLockEdgeDatas->setCheck(value);
1556 } else if (AC->getTagProperty().getTag() == SUMO_TAG_EDGEREL) {
1557 menuCheckLockEdgeRelDatas->setCheck(value);
1558 } else if (AC->getTagProperty().getTag() == SUMO_TAG_TAZREL) {
1559 menuCheckLockEdgeTAZRels->setCheck(value);
1560 }
1561}
1562
1563
1564FXHotKey
1566 FXuint code = 0, mods = 0;
1567 if (Unicode::isAlphaNumeric(character)) {
1568 mods = ALTMASK;
1569 code = fxucs2keysym(Unicode::toLower(character));
1570 }
1571 return MKUINT(code, mods);
1572}
1573
1574// ---------------------------------------------------------------------------
1575// GNEApplicationWindowHelper::ProcessingMenuCommands - methods
1576// ---------------------------------------------------------------------------
1577
1579 myGNEApp(GNEApp) {
1580}
1581
1582
1583void
1585 // build network processing menu commands
1586 computeNetwork = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1587 "Compute Junctions", "F5", "Compute junction shape and logic.",
1589 computeNetworkVolatile = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1590 "Compute Junctions with volatile options", "Shift+F5", "Compute junction shape and logic using volatile junctions.",
1592 cleanJunctions = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1593 "Clean Junctions", "F6", "Remove solitary junctions.",
1595 joinJunctions = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1596 "Join Selected Junctions", "F7", "Join selected junctions into a single junction.",
1598 clearInvalidCrossings = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1599 "Clean invalid crossings", "F8", "Clear invalid crossings.",
1601 // add separator for checkBox
1602 mySeparatorCheckBox = new FXMenuSeparator(processingMenu);
1603 // add checkBox for recomputing in data mode
1604 menuCheckRecomputeDataMode = GUIDesigns::buildFXMenuCheckboxIcon(processingMenu,
1605 "Recompute Network in Data Mode", "", "",
1607 // set default value
1608 menuCheckRecomputeDataMode->setCheck(myGNEApp->getApp()->reg().readBoolEntry("NETEDIT", "RecomputeData", true));
1609 // build demand processing menu commands
1610 computeDemand = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1611 "Compute demand", "F5", "Computes demand elements.",
1613 cleanRoutes = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1614 "Clean routes", "F6", "Removes routes without vehicles.",
1616 joinRoutes = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1617 "Join routes", "F7", "Joins routes with the same edges.",
1619 adjustPersonPlans = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1620 "Adjust person plans", "Shift+F7", "Adjust person plans (start/end positions, arrival positions, etc.)",
1622 clearInvalidDemandElements = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1623 "Clean invalid route elements", "F8", "Clear elements with an invalid path (routes, Trips, Flows...).",
1625 // create separator
1626 myOptionsSeparator = new FXMenuSeparator(processingMenu);
1627 // create optionmenus
1628 optionMenus = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1629 "Options", "F10", "Configure Processing Options.",
1631}
1632
1633
1634void
1636 // first enable menu commands
1637 computeNetwork->enable();
1638 computeNetworkVolatile->enable();
1639 cleanJunctions->enable();
1640 joinJunctions->enable();
1641 clearInvalidCrossings->enable();
1642 mySeparatorCheckBox->enable();
1643 menuCheckRecomputeDataMode->enable();
1644 // now show it
1645 computeNetwork->show();
1646 computeNetworkVolatile->show();
1647 cleanJunctions->show();
1648 joinJunctions->show();
1649 clearInvalidCrossings->show();
1650 mySeparatorCheckBox->show();
1651 menuCheckRecomputeDataMode->show();
1652}
1653
1654
1655void
1657 // first disable menu commands
1658 computeNetwork->disable();
1659 computeNetworkVolatile->disable();
1660 cleanJunctions->disable();
1661 joinJunctions->disable();
1662 clearInvalidCrossings->disable();
1663 // now hide it
1664 computeNetwork->hide();
1665 computeNetworkVolatile->hide();
1666 cleanJunctions->hide();
1667 joinJunctions->hide();
1668 clearInvalidCrossings->hide();
1669}
1670
1671
1672void
1674 // first enable menu commands
1675 computeDemand->enable();
1676 cleanRoutes->enable();
1677 joinRoutes->enable();
1678 adjustPersonPlans->enable();
1679 clearInvalidDemandElements->enable();
1680 // now show it
1681 computeDemand->show();
1682 cleanRoutes->show();
1683 joinRoutes->show();
1684 adjustPersonPlans->show();
1685 clearInvalidDemandElements->show();
1686}
1687
1688
1689void
1691 // first disable menu commands
1692 computeDemand->disable();
1693 cleanRoutes->disable();
1694 joinRoutes->disable();
1695 adjustPersonPlans->disable();
1696 clearInvalidDemandElements->disable();
1697 // now hide it
1698 computeDemand->hide();
1699 cleanRoutes->hide();
1700 joinRoutes->hide();
1701 adjustPersonPlans->hide();
1702 clearInvalidDemandElements->hide();
1703}
1704
1705
1706void
1708 // currently nothing to show
1709}
1710
1711
1712void
1714 // currently nothing to hide
1715}
1716
1717
1718void
1720 myOptionsSeparator->show();
1721}
1722
1723
1724void
1726 myOptionsSeparator->hide();
1727}
1728
1729// ---------------------------------------------------------------------------
1730// GNEApplicationWindowHelper::LocateMenuCommands - methods
1731// ---------------------------------------------------------------------------
1732
1734 myGNEApp(GNEApp) {
1735}
1736
1737
1738void
1740 // build locate menu commands
1742 TL("&Junctions"), "Shift+J", "Open a dialog for locating a Junction.",
1745 TL("&Edges"), "Shift+E", "Open a dialog for locating an Edge.",
1748 TL("&WalkingAreas"), "Shift+W", "Open a dialog for locating a Walking Area.",
1751 TL("&Vehicles"), "Shift+V", "Open a dialog for locating a Vehicle.",
1754 TL("&Persons"), "Shift+P", "Open a dialog for locating a Person.",
1757 TL("&Route"), "Shift+R", "Open a dialog for locating a Route.",
1760 TL("&Stops"), "Shift+S", "Open a dialog for locating a Stop.",
1763 TL("&TLS"), "Shift+T", "Open a dialog for locating a Traffic Light.",
1766 TL("&Additional"), "Shift+A", "Open a dialog for locating an Additional Structure.",
1769 TL("P&oI"), "Shift+O", "Open a dialog for locating a Point of Interest.",
1772 TL("Po&lygon"), "Shift+L", "Open a dialog for locating a Polygon.",
1774}
1775
1776// ---------------------------------------------------------------------------
1777// GNEApplicationWindowHelper::ToolsMenuCommands - methods
1778// ---------------------------------------------------------------------------
1779
1781 myGNEApp(GNEApp) {
1782}
1783
1784
1785void
1787 // build locate menu commands
1789 TL("&NetDiff"), "", "Execute NetDiff.",
1791}
1792
1793// ---------------------------------------------------------------------------
1794// GNEApplicationWindowHelper::WindowsMenuCommands - methods
1795// ---------------------------------------------------------------------------
1796
1798 myGNEApp(GNEApp) {
1799}
1800
1801
1802void
1803GNEApplicationWindowHelper::WindowsMenuCommands::buildWindowsMenuCommands(FXMenuPane* windowsMenu, FXStatusBar* statusbar, GUIMessageWindow* messageWindow) {
1804 // build windows menu commands
1806 "Show Status Line", "Toggle this Status Bar on/off.",
1807 statusbar, FXWindow::ID_TOGGLESHOWN);
1809 "Show Message Window", "Toggle the Message Window on/off.",
1810 messageWindow, FXWindow::ID_TOGGLESHOWN);
1812 "Clear Message Window", "", "Clear the Message Window.",
1814}
1815
1816// ---------------------------------------------------------------------------
1817// GNEApplicationWindowHelper::NetworkCheckableButtons - methods
1818// ---------------------------------------------------------------------------
1819
1821 networkMode(nullptr),
1822 demandMode(nullptr),
1823 dataMode(nullptr),
1824 myGNEApp(GNEApp) {
1825}
1826
1827
1828void
1830 networkMode->show();
1831 demandMode->show();
1832 dataMode->show();
1833}
1834
1835
1836void
1838 networkMode->hide();
1839 demandMode->hide();
1840 dataMode->hide();
1841}
1842
1843
1844void
1846 // build supermode menu commands
1847 networkMode = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
1848 TL("&Network"), "F2", "Select network mode.",
1850 demandMode = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
1851 TL("&Demand"), "F3", "Select demand mode.",
1853 dataMode = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
1854 TL("&Data"), "F4", "Select data mode.",
1856}
1857
1858// ---------------------------------------------------------------------------
1859// GNEConfigHandler - methods
1860// ---------------------------------------------------------------------------
1861
1863 ConfigHandler(file),
1864 myApplicationWindow(applicationWindow),
1865 myFilepath(FileHelpers::getFilePath(file)) {
1866}
1867
1868
1870
1871
1872void
1874 // get net file
1875 const auto netFile = configObj->hasStringAttribute(SUMO_ATTR_NETFILE) ? configObj->getStringAttribute(SUMO_ATTR_NETFILE) : "";
1876 // first check if there is a network to load
1877 if (netFile.size() > 0) {
1879 // load net depending if file is absoulte or relative
1880 oc.resetWritable();
1881 if (FileHelpers::isAbsolute(netFile)) {
1882 oc.set("sumo-net-file", netFile);
1883 } else {
1884 oc.set("sumo-net-file", myFilepath + netFile);
1885 }
1886 // set additional files
1888 const auto file = configObj->getStringAttribute(SUMO_ATTR_ADDITIONALFILES);
1889 oc.resetWritable();
1890 if (FileHelpers::isAbsolute(file)) {
1891 oc.set("additional-files", file);
1892 } else {
1893 oc.set("additional-files", myFilepath + file);
1894 }
1895 }
1896 // set route files
1897 if (configObj->hasStringAttribute(SUMO_ATTR_ROUTEFILES)) {
1898 const auto file = configObj->getStringAttribute(SUMO_ATTR_ROUTEFILES);
1899 oc.resetWritable();
1900 if (FileHelpers::isAbsolute(file)) {
1901 oc.set("route-files", file);
1902 } else {
1903 oc.set("route-files", myFilepath + file);
1904 }
1905 }
1906 // set data files
1907 if (configObj->hasStringAttribute(SUMO_ATTR_DATAFILES)) {
1908 const auto file = configObj->getStringAttribute(SUMO_ATTR_DATAFILES);
1909 oc.resetWritable();
1910 if (FileHelpers::isAbsolute(file)) {
1911 oc.set("data-files", file);
1912 } else {
1913 oc.set("data-files", myFilepath + file);
1914 }
1915 }
1916 // set SUMOConfig-files
1917 oc.resetWritable();
1918 oc.set("SUMOConfig-output", configObj->getStringAttribute(SUMO_ATTR_CONFIGFILE));
1919 // load network
1920 myApplicationWindow->loadNet("");
1921 }
1922}
1923
1924// ---------------------------------------------------------------------------
1925// GNEApplicationWindowHelper - methods
1926// ---------------------------------------------------------------------------
1927
1928
1929void
1931 // obtain option container
1933 // check SUMOConfig-outpout
1934 if (oc.getString("SUMOConfig-output").size() > 0) {
1935 // open output device
1936 OutputDevice& device = OutputDevice::getDevice(oc.getString("SUMOConfig-output"));
1937 // open configuration tag
1939 // save network
1940 device.openTag(SUMO_TAG_NETFILE);
1941 device.writeAttr(SUMO_ATTR_VALUE, oc.getString("output-file"));
1942 device.closeTag();
1943 // check if write additionals
1944 if (oc.getString("additional-files").size() > 0) {
1946 device.writeAttr(SUMO_ATTR_VALUE, oc.getString("additional-files"));
1947 device.closeTag();
1948 }
1949 // check if write route elements
1950 if (oc.getString("route-files").size() > 0) {
1952 device.writeAttr(SUMO_ATTR_VALUE, oc.getString("route-files"));
1953 device.closeTag();
1954 }
1955 // check if write data elements
1956 if (oc.getString("data-files").size() > 0) {
1958 device.writeAttr(SUMO_ATTR_VALUE, oc.getString("data-files"));
1959 device.closeTag();
1960 }
1961 // close device
1962 device.close();
1963 // show debug information
1964 WRITE_DEBUG("SUMOConfig saved");
1965 }
1966}
1967
1968
1969bool
1970GNEApplicationWindowHelper::toggleEditOptionsNetwork(GNEViewNet* viewNet, const MFXCheckableButton* menuCheck, const int numericalKeyPressed, FXObject* obj, FXSelector sel) {
1971 // finally function correspond to visibleMenuCommands[numericalKeyPressed]
1972 if (menuCheck == viewNet->getNetworkViewOptions().menuCheckToggleGrid) {
1973 // Toggle menuCheckToggleGrid
1974 if (viewNet->getNetworkViewOptions().menuCheckToggleGrid->amChecked() == TRUE) {
1975 // show extra information for tests
1976 WRITE_DEBUG("Disabled toggle show grid throught alt + " + toString(numericalKeyPressed + 1));
1977 } else {
1978 // show extra information for tests
1979 WRITE_DEBUG("Enabled toggle show grid throught alt + " + toString(numericalKeyPressed + 1));
1980 }
1981 // Call manually onCmdToggleShowGrid
1982 viewNet->onCmdToggleShowGrid(obj, sel, nullptr);
1983 } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckToggleDrawJunctionShape) {
1984 // Toggle menuCheckToggleDrawJunctionShape
1986 // show extra information for tests
1987 WRITE_DEBUG("Disabled draw junction shape throught alt + " + toString(numericalKeyPressed + 1));
1988 } else {
1989 // show extra information for tests
1990 WRITE_DEBUG("Enabled draw junction shape throught alt + " + toString(numericalKeyPressed + 1));
1991 }
1992 // Call manually onCmdToggleDrawJunctionShape
1993 viewNet->onCmdToggleDrawJunctionShape(obj, sel, nullptr);
1994 } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckDrawSpreadVehicles) {
1995 // Toggle menuCheckDrawSpreadVehicles
1997 // show extra information for tests
1998 WRITE_DEBUG("Disabled toggle draw spread vehicles throught alt + " + toString(numericalKeyPressed + 1));
1999 } else {
2000 // show extra information for tests
2001 WRITE_DEBUG("Enabled toggle spread vehicles throught alt + " + toString(numericalKeyPressed + 1));
2002 }
2003 // Call manually onCmdToggleDrawSpreadVehicles
2004 viewNet->onCmdToggleDrawSpreadVehicles(obj, sel, nullptr);
2005 } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckShowDemandElements) {
2006 // Toggle menuCheckShowDemandElements
2008 // show extra information for tests
2009 WRITE_DEBUG("Disabled show demand elements throught alt + " + toString(numericalKeyPressed + 1));
2010 } else {
2011 // show extra information for tests
2012 WRITE_DEBUG("Enabled show demand elements throught alt + " + toString(numericalKeyPressed + 1));
2013 }
2014 // Call manually onCmdToggleShowDemandElementsNetwork
2015 viewNet->onCmdToggleShowDemandElementsNetwork(obj, sel, nullptr);
2016 } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckSelectEdges) {
2017 // Toggle menuCheckSelectEdges
2018 if (viewNet->getNetworkViewOptions().menuCheckSelectEdges->amChecked() == TRUE) {
2019 // show extra information for tests
2020 WRITE_DEBUG("Disabled select edges throught alt + " + toString(numericalKeyPressed + 1));
2021 } else {
2022 // show extra information for tests
2023 WRITE_DEBUG("Enabled select edges throught alt + " + toString(numericalKeyPressed + 1));
2024 }
2025 // Call manually onCmdToggleSelectEdges
2026 viewNet->onCmdToggleSelectEdges(obj, sel, nullptr);
2027 } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckShowConnections) {
2028 // Toggle menuCheckShowConnections
2029 if (viewNet->getNetworkViewOptions().menuCheckShowConnections->amChecked() == TRUE) {
2030 // show extra information for tests
2031 WRITE_DEBUG("Disabled show connections throught alt + " + toString(numericalKeyPressed + 1));
2032 } else {
2033 // show extra information for tests
2034 WRITE_DEBUG("Enabled show connections throught alt + " + toString(numericalKeyPressed + 1));
2035 }
2036 // Call manually onCmdToggleShowConnections
2037 viewNet->onCmdToggleShowConnections(obj, sel, nullptr);
2038 } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckHideConnections) {
2039 // Toggle menuCheckHideConnections
2040 if (viewNet->getNetworkViewOptions().menuCheckHideConnections->amChecked() == TRUE) {
2041 // show extra information for tests
2042 WRITE_DEBUG("Disabled hide connections throught alt + " + toString(numericalKeyPressed + 1));
2043 } else {
2044 // show extra information for tests
2045 WRITE_DEBUG("Enabled hide connections throught alt + " + toString(numericalKeyPressed + 1));
2046 }
2047 // Call manually onCmdToggleHideConnections
2048 viewNet->onCmdToggleHideConnections(obj, sel, nullptr);
2049 } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckShowAdditionalSubElements) {
2050 // Toggle menuCheckShowAdditionalSubElements
2052 // show extra information for tests
2053 WRITE_DEBUG("Disabled show additional sub-elements throught alt + " + toString(numericalKeyPressed + 1));
2054 } else {
2055 // show extra information for tests
2056 WRITE_DEBUG("Enabled show additional sub-elements throught alt + " + toString(numericalKeyPressed + 1));
2057 }
2058 // Call manually onCmdToggleShowAdditionalSubElements
2059 viewNet->onCmdToggleShowAdditionalSubElements(obj, sel, nullptr);
2060 } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckShowTAZElements) {
2061 // Toggle menuCheckShowTAZElements
2062 if (viewNet->getNetworkViewOptions().menuCheckShowTAZElements->amChecked() == TRUE) {
2063 // show extra information for tests
2064 WRITE_DEBUG("Disabled show TAZ elements throught alt + " + toString(numericalKeyPressed + 1));
2065 } else {
2066 // show extra information for tests
2067 WRITE_DEBUG("Enabled show TAZ elements throught alt + " + toString(numericalKeyPressed + 1));
2068 }
2069 // Call manually onCmdToggleShowTAZElements
2070 viewNet->onCmdToggleShowTAZElements(obj, sel, nullptr);
2071 } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckExtendSelection) {
2072 // Toggle menuCheckExtendSelection
2073 if (viewNet->getNetworkViewOptions().menuCheckExtendSelection->amChecked() == TRUE) {
2074 // show extra information for tests
2075 WRITE_DEBUG("Disabled extend selection throught alt + " + toString(numericalKeyPressed + 1));
2076 } else {
2077 // show extra information for tests
2078 WRITE_DEBUG("Enabled extend selection throught alt + " + toString(numericalKeyPressed + 1));
2079 }
2080 // Call manually onCmdToggleExtendSelection
2081 viewNet->onCmdToggleExtendSelection(obj, sel, nullptr);
2082 } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckChangeAllPhases) {
2083 // Toggle menuCheckChangeAllPhases
2084 if (viewNet->getNetworkViewOptions().menuCheckChangeAllPhases->amChecked() == TRUE) {
2085 // show extra information for tests
2086 WRITE_DEBUG("Disabled change all phases throught alt + " + toString(numericalKeyPressed + 1));
2087 } else {
2088 // show extra information for tests
2089 WRITE_DEBUG("Enabled change all phases throught alt + " + toString(numericalKeyPressed + 1));
2090 }
2091 // Call manually onCmdToggleChangeAllPhases
2092 viewNet->onCmdToggleChangeAllPhases(obj, sel, nullptr);
2093 } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckWarnAboutMerge) {
2094 // Toggle menuCheckWarnAboutMerge
2095 if (viewNet->getNetworkViewOptions().menuCheckWarnAboutMerge->amChecked() == TRUE) {
2096 // show extra information for tests
2097 WRITE_DEBUG("Disabled warn about merge throught alt + " + toString(numericalKeyPressed + 1));
2098 } else {
2099 // show extra information for tests
2100 WRITE_DEBUG("Enabled warn about merge throught alt + " + toString(numericalKeyPressed + 1));
2101 }
2102 // Call manually onCmdToggleWarnAboutMerge
2103 viewNet->onCmdToggleWarnAboutMerge(obj, sel, nullptr);
2104 } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckShowJunctionBubble) {
2105 // Toggle menuCheckShowJunctionBubble
2107 // show extra information for tests
2108 WRITE_DEBUG("Disabled show junction as bubble throught alt + " + toString(numericalKeyPressed + 1));
2109 } else {
2110 // show extra information for tests
2111 WRITE_DEBUG("Enabled show junction as bubble throught alt + " + toString(numericalKeyPressed + 1));
2112 }
2113 // Call manually onCmdToggleShowJunctionBubble
2114 viewNet->onCmdToggleShowJunctionBubbles(obj, sel, nullptr);
2115 } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckMoveElevation) {
2116 // Toggle menuCheckMoveElevation
2117 if (viewNet->getNetworkViewOptions().menuCheckMoveElevation->amChecked() == TRUE) {
2118 // show extra information for tests
2119 WRITE_DEBUG("Disabled move elevation throught alt + " + toString(numericalKeyPressed + 1));
2120 } else {
2121 // show extra information for tests
2122 WRITE_DEBUG("Enabled move elevation throught alt + " + toString(numericalKeyPressed + 1));
2123 }
2124 // Call manually onCmdToggleMoveElevation
2125 viewNet->onCmdToggleMoveElevation(obj, sel, nullptr);
2126 } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckChainEdges) {
2127 // Toggle menuCheckChainEdges
2128 if (viewNet->getNetworkViewOptions().menuCheckChainEdges->amChecked() == TRUE) {
2129 // show extra information for tests
2130 WRITE_DEBUG("Disabled chain edges throught alt + " + toString(numericalKeyPressed + 1));
2131 } else {
2132 // show extra information for tests
2133 WRITE_DEBUG("Enabled chain edges throught alt + " + toString(numericalKeyPressed + 1));
2134 }
2135 // Call manually onCmdToggleChainEdges
2136 viewNet->onCmdToggleChainEdges(obj, sel, nullptr);
2137 } else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckAutoOppositeEdge) {
2138 // Toggle menuCheckAutoOppositeEdge
2139 if (viewNet->getNetworkViewOptions().menuCheckAutoOppositeEdge->amChecked() == TRUE) {
2140 // show extra information for tests
2141 WRITE_DEBUG("Disabled auto opposite edge throught alt + " + toString(numericalKeyPressed + 1));
2142 } else {
2143 // show extra information for tests
2144 WRITE_DEBUG("Enabled auto opposite edge throught alt + " + toString(numericalKeyPressed + 1));
2145 }
2146 // Call manually onCmdToggleAutoOppositeEdge
2147 viewNet->onCmdToggleAutoOppositeEdge(obj, sel, nullptr);
2148 } else {
2149 return false;
2150 }
2151 return true;
2152}
2153
2154
2155bool
2156GNEApplicationWindowHelper::toggleEditOptionsDemand(GNEViewNet* viewNet, const MFXCheckableButton* menuCheck, const int numericalKeyPressed, FXObject* obj, FXSelector sel) {
2157 if (menuCheck == viewNet->getDemandViewOptions().menuCheckToggleGrid) {
2158 // Toggle menuCheckToggleGrid
2159 if (viewNet->getDemandViewOptions().menuCheckToggleGrid->amChecked() == TRUE) {
2160 // show extra information for tests
2161 WRITE_DEBUG("Disabled toggle show grid throught alt + " + toString(numericalKeyPressed + 1));
2162 } else {
2163 // show extra information for tests
2164 WRITE_DEBUG("Enabled toggle show grid throught alt + " + toString(numericalKeyPressed + 1));
2165 }
2166 // Call manually onCmdToggleShowGrid
2167 viewNet->onCmdToggleShowGrid(obj, sel, nullptr);
2168 } else if (menuCheck == viewNet->getDemandViewOptions().menuCheckToggleDrawJunctionShape) {
2169 // Toggle menuCheckToggleDrawJunctionShape
2171 // show extra information for tests
2172 WRITE_DEBUG("Disabled draw junction shape throught alt + " + toString(numericalKeyPressed + 1));
2173 } else {
2174 // show extra information for tests
2175 WRITE_DEBUG("Enabled draw junction shape throught alt + " + toString(numericalKeyPressed + 1));
2176 }
2177 // Call manually onCmdToggleDrawJunctionShape
2178 viewNet->onCmdToggleDrawJunctionShape(obj, sel, nullptr);
2179 } else if (menuCheck == viewNet->getDemandViewOptions().menuCheckDrawSpreadVehicles) {
2180 // Toggle menuCheckDrawSpreadVehicles
2182 // show extra information for tests
2183 WRITE_DEBUG("Disabled toggle draw spread vehicles throught alt + " + toString(numericalKeyPressed + 1));
2184 } else {
2185 // show extra information for tests
2186 WRITE_DEBUG("Enabled toggle spread vehicles throught alt + " + toString(numericalKeyPressed + 1));
2187 }
2188 // Call manually onCmdToggleDrawSpreadVehicles
2189 viewNet->onCmdToggleDrawSpreadVehicles(obj, sel, nullptr);
2190 } else if (menuCheck == viewNet->getDemandViewOptions().menuCheckHideShapes) {
2191 // Toggle menuCheckHideShapes
2192 if (viewNet->getDemandViewOptions().menuCheckHideShapes->amChecked() == TRUE) {
2193 // show extra information for tests
2194 WRITE_DEBUG("Disabled hide shapes throught alt + " + toString(numericalKeyPressed + 1));
2195 } else {
2196 // show extra information for tests
2197 WRITE_DEBUG("Enabled hide shapes throught alt + " + toString(numericalKeyPressed + 1));
2198 }
2199 // Call manually onCmdToggleHideShapes
2200 viewNet->onCmdToggleHideShapes(obj, sel, nullptr);
2201 } else if (menuCheck == viewNet->getDemandViewOptions().menuCheckShowAllTrips) {
2202 // Toggle menuCheckShowAllTrips
2203 if (viewNet->getDemandViewOptions().menuCheckShowAllTrips->amChecked() == TRUE) {
2204 // show extra information for tests
2205 WRITE_DEBUG("Disabled show all trips throught alt + " + toString(numericalKeyPressed + 1));
2206 } else {
2207 // show extra information for tests
2208 WRITE_DEBUG("Enabled show all trips throught alt + " + toString(numericalKeyPressed + 1));
2209 }
2210 // Call manually onCmdToggleShowTrips
2211 viewNet->onCmdToggleShowTrips(obj, sel, nullptr);
2212 } else if (menuCheck == viewNet->getDemandViewOptions().menuCheckShowAllPersonPlans) {
2213 // Toggle menuCheckShowAllPersonPlans
2215 // show extra information for tests
2216 WRITE_DEBUG("Disabled show all person plans throught alt + " + toString(numericalKeyPressed + 1));
2217 } else {
2218 // show extra information for tests
2219 WRITE_DEBUG("Enabled show all person plans throught alt + " + toString(numericalKeyPressed + 1));
2220 }
2221 // Call manually onCmdToggleShowAllPersonPlans
2222 viewNet->onCmdToggleShowAllPersonPlans(obj, sel, nullptr);
2223 } else if (menuCheck == viewNet->getDemandViewOptions().menuCheckLockPerson) {
2224 // Toggle menuCheckShowAllPersonPlans
2225 if (viewNet->getDemandViewOptions().menuCheckLockPerson->amChecked() == TRUE) {
2226 // show extra information for tests
2227 WRITE_DEBUG("Disabled lock person plan throught alt + " + toString(numericalKeyPressed + 1));
2228 } else {
2229 // show extra information for tests
2230 WRITE_DEBUG("Enabled lock person plan throught alt + " + toString(numericalKeyPressed + 1));
2231 }
2232 // Call manually onCmdToggleLockPerson
2233 viewNet->onCmdToggleLockPerson(obj, sel, nullptr);
2234 } else if (menuCheck == viewNet->getDemandViewOptions().menuCheckShowAllContainerPlans) {
2235 // Toggle menuCheckShowAllContainerPlans
2237 // show extra information for tests
2238 WRITE_DEBUG("Disabled show all container plans throught alt + " + toString(numericalKeyPressed + 1));
2239 } else {
2240 // show extra information for tests
2241 WRITE_DEBUG("Enabled show all container plans throught alt + " + toString(numericalKeyPressed + 1));
2242 }
2243 // Call manually onCmdToggleShowAllContainerPlans
2244 viewNet->onCmdToggleShowAllContainerPlans(obj, sel, nullptr);
2245 } else if (menuCheck == viewNet->getDemandViewOptions().menuCheckLockContainer) {
2246 // Toggle menuCheckShowAllContainerPlans
2247 if (viewNet->getDemandViewOptions().menuCheckLockContainer->amChecked() == TRUE) {
2248 // show extra information for tests
2249 WRITE_DEBUG("Disabled lock container plan throught alt + " + toString(numericalKeyPressed + 1));
2250 } else {
2251 // show extra information for tests
2252 WRITE_DEBUG("Enabled lock container plan throught alt + " + toString(numericalKeyPressed + 1));
2253 }
2254 // Call manually onCmdToggleLockContainer
2255 viewNet->onCmdToggleLockContainer(obj, sel, nullptr);
2256 } else if (menuCheck == viewNet->getDemandViewOptions().menuCheckHideNonInspectedDemandElements) {
2257 // Toggle menuCheckHideNonInspectedDemandElements
2259 // show extra information for tests
2260 WRITE_DEBUG("Disabled hide non inspected demand elements throught alt + " + toString(numericalKeyPressed + 1));
2261 } else {
2262 // show extra information for tests
2263 WRITE_DEBUG("Enabled hide non inspected demand elements throught alt + " + toString(numericalKeyPressed + 1));
2264 }
2265 // Call manually onCmdToggleHideNonInspecteDemandElements
2266 viewNet->onCmdToggleHideNonInspecteDemandElements(obj, sel, nullptr);
2267
2268 } else if (menuCheck == viewNet->getDemandViewOptions().menuCheckShowOverlappedRoutes) {
2269 // Toggle menuCheckShowOverlappedRoutes
2271 // show extra information for tests
2272 WRITE_DEBUG("Disabled show overlapped routes throught alt + " + toString(numericalKeyPressed + 1));
2273 } else {
2274 // show extra information for tests
2275 WRITE_DEBUG("Enabled show overlapped routes throught alt + " + toString(numericalKeyPressed + 1));
2276 }
2277 // Call manually onCmdToggleHideNonInspecteDemandElements
2278 viewNet->onCmdToggleShowOverlappedRoutes(obj, sel, nullptr);
2279 } else {
2280 return false;
2281 }
2282 return true;
2283}
2284
2285
2286bool
2287GNEApplicationWindowHelper::toggleEditOptionsData(GNEViewNet* viewNet, const MFXCheckableButton* menuCheck, const int numericalKeyPressed, FXObject* obj, FXSelector sel) {
2288 if (menuCheck == viewNet->getDataViewOptions().menuCheckToggleDrawJunctionShape) {
2289 // Toggle menuCheckToggleDrawJunctionShape
2291 // show extra information for tests
2292 WRITE_DEBUG("Disabled draw junction shape throught alt + " + toString(numericalKeyPressed + 1));
2293 } else {
2294 // show extra information for tests
2295 WRITE_DEBUG("Enabled draw junction shape throught alt + " + toString(numericalKeyPressed + 1));
2296 }
2297 // Call manually onCmdToggleDrawJunctionShape
2298 viewNet->onCmdToggleDrawJunctionShape(obj, sel, nullptr);
2299 } else if (menuCheck == viewNet->getDataViewOptions().menuCheckShowAdditionals) {
2300 // Toggle menuCheckHideShapes
2301 if (viewNet->getDataViewOptions().menuCheckShowAdditionals->amChecked() == TRUE) {
2302 // show extra information for tests
2303 WRITE_DEBUG("Disabled show additionals throught alt + " + toString(numericalKeyPressed + 1));
2304 } else {
2305 // show extra information for tests
2306 WRITE_DEBUG("Enabled show shapes throught alt + " + toString(numericalKeyPressed + 1));
2307 }
2308 // Call manually onCmdToggleShowAdditionals
2309 viewNet->onCmdToggleShowAdditionals(obj, sel, nullptr);
2310 } else if (menuCheck == viewNet->getDataViewOptions().menuCheckShowShapes) {
2311 // Toggle menuCheckHideShapes
2312 if (viewNet->getDataViewOptions().menuCheckShowShapes->amChecked() == TRUE) {
2313 // show extra information for tests
2314 WRITE_DEBUG("Disabled show shapes throught alt + " + toString(numericalKeyPressed + 1));
2315 } else {
2316 // show extra information for tests
2317 WRITE_DEBUG("Enabled show shapes throught alt + " + toString(numericalKeyPressed + 1));
2318 }
2319 // Call manually onCmdToggleShowShapes
2320 viewNet->onCmdToggleShowShapes(obj, sel, nullptr);
2321 } else if (menuCheck == viewNet->getDataViewOptions().menuCheckShowDemandElements) {
2322 // Toggle menuCheckShowDemandElements
2323 if (viewNet->getDataViewOptions().menuCheckShowDemandElements->amChecked() == TRUE) {
2324 // show extra information for tests
2325 WRITE_DEBUG("Disabled show demand elements throught alt + " + toString(numericalKeyPressed + 1));
2326 } else {
2327 // show extra information for tests
2328 WRITE_DEBUG("Enabled show demand elements throught alt + " + toString(numericalKeyPressed + 1));
2329 }
2330 // Call manually onCmdToggleShowDemandElementsData
2331 viewNet->onCmdToggleShowDemandElementsData(obj, sel, nullptr);
2332 } else if (menuCheck == viewNet->getDataViewOptions().menuCheckToggleTAZRelDrawing) {
2333 // Toggle menuCheckToggleTAZRelDrawing
2334 if (viewNet->getDataViewOptions().menuCheckToggleTAZRelDrawing->amChecked() == TRUE) {
2335 // show extra information for tests
2336 WRITE_DEBUG("Disabled toggle TAXRel drawing throught alt + " + toString(numericalKeyPressed + 1));
2337 } else {
2338 // show extra information for tests
2339 WRITE_DEBUG("Enabled toggle TAXRel drawing throught alt + " + toString(numericalKeyPressed + 1));
2340 }
2341 // Call manually onCmdToggleTAZRelDrawing
2342 viewNet->onCmdToggleTAZRelDrawing(obj, sel, nullptr);
2343 } else if (menuCheck == viewNet->getDataViewOptions().menuCheckToggleTAZDrawFill) {
2344 // Toggle menuCheckToggleTAZDrawFill
2345 if (viewNet->getDataViewOptions().menuCheckToggleTAZDrawFill->amChecked() == TRUE) {
2346 // show extra information for tests
2347 WRITE_DEBUG("Disabled toggle TAZ draw fill throught alt + " + toString(numericalKeyPressed + 1));
2348 } else {
2349 // show extra information for tests
2350 WRITE_DEBUG("Enabled toggle TAZ draw fill throught alt + " + toString(numericalKeyPressed + 1));
2351 }
2352 // Call manually onCmdToggleTAZDrawFill
2353 viewNet->onCmdToggleTAZDrawFill(obj, sel, nullptr);
2354 } else if (menuCheck == viewNet->getDataViewOptions().menuCheckToggleTAZRelOnlyFrom) {
2355 // Toggle menuCheckToggleTAZRelOnlyFrom
2357 // show extra information for tests
2358 WRITE_DEBUG("Disabled toggle TAZRel only from throught alt + " + toString(numericalKeyPressed + 1));
2359 } else {
2360 // show extra information for tests
2361 WRITE_DEBUG("Enabled toggle TAZRel only from throught alt + " + toString(numericalKeyPressed + 1));
2362 }
2363 // Call manually onCmdToggleTAZRelOnlyFrom
2364 viewNet->onCmdToggleTAZRelOnlyFrom(obj, sel, nullptr);
2365 } else if (menuCheck == viewNet->getDataViewOptions().menuCheckToggleTAZRelOnlyTo) {
2366 // Toggle menuCheckToggleTAZRelOnlyTo
2367 if (viewNet->getDataViewOptions().menuCheckToggleTAZRelOnlyTo->amChecked() == TRUE) {
2368 // show extra information for tests
2369 WRITE_DEBUG("Disabled toggle TAZRel only to throught alt + " + toString(numericalKeyPressed + 1));
2370 } else {
2371 // show extra information for tests
2372 WRITE_DEBUG("Enabled toggle TAZRel only to throught alt + " + toString(numericalKeyPressed + 1));
2373 }
2374 // Call manually onCmdToggleTAZRelOnlyTo
2375 viewNet->onCmdToggleTAZRelOnlyTo(obj, sel, nullptr);
2376 } else {
2377 return false;
2378 }
2379 return true;
2380}
2381
2382
2383bool
2384GNEApplicationWindowHelper::stringEndsWith(const std::string& str, const std::string& suffix) {
2385 if (str.length() < suffix.length()) {
2386 return false;
2387 } else {
2388 return str.compare(str.length() - suffix.length(), suffix.length(), suffix) == 0;
2389 }
2390}
2391
2392/****************************************************************************/
2393
@ MID_GNE_TOOLBAREDIT_LOADADDITIONALS
load additionals in SUMO-GUI after press ctrl+T
Definition: GUIAppEnum.h:725
@ MID_GNE_NETWORKVIEWOPTIONS_AUTOOPPOSITEEDGES
automatically create opposite edge
Definition: GUIAppEnum.h:777
@ MID_HOTKEY_A_MODE_ADDITIONAL_STOP
hotkey for mode editing additionals AND stops
Definition: GUIAppEnum.h:43
@ MID_HOTKEY_SHIFT_F7_ADJUST_PERSON_PLANS
Adjust person plans (start und end positions, arrival positions, etc.)
Definition: GUIAppEnum.h:228
@ MID_HOTKEY_SHIFT_F5_COMPUTEJUNCTIONS_VOLATILE
compute junctions with volatile options
Definition: GUIAppEnum.h:226
@ MID_HOTKEY_CTRL_SHIFT_B_SAVEDATAELEMENTS
save Data Elements
Definition: GUIAppEnum.h:163
@ MID_HOTKEY_F3_SUPERMODE_DEMAND
select demand supermode in NETEDIT
Definition: GUIAppEnum.h:193
@ MID_GNE_UNDOLISTDIALOG
open undo list dialog
Definition: GUIAppEnum.h:1433
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWALLPERSONPLANS
show all person plans
Definition: GUIAppEnum.h:809
@ MID_GNE_UNLOCK_ALLELEMENTS
unlock all element
Definition: GUIAppEnum.h:787
@ MID_HOTKEY_CTRL_SHIFT_M_SAVESUMOCONFIG
save SUMOConfig
Definition: GUIAppEnum.h:171
@ MID_GNE_DATAVIEWOPTIONS_TAZRELDRAWING
toggle TAZRel drawing
Definition: GUIAppEnum.h:833
@ MID_GNE_TOGGLE_COMPUTE_NETWORK_DATA
enable/disable computing after switchin between supermodes
Definition: GUIAppEnum.h:731
@ MID_LOCATEPERSON
Locate person - button.
Definition: GUIAppEnum.h:369
@ MID_GNE_NETWORKVIEWOPTIONS_DRAWSPREADVEHICLES
Draw vehicles in begin position or spread in lane.
Definition: GUIAppEnum.h:751
@ MID_HOTKEY_CTRL_Y_REDO
Undo.
Definition: GUIAppEnum.h:121
@ MID_HOTKEY_CTRL_SHIFT_H_SAVEEDGETYPES
save Edge Types
Definition: GUIAppEnum.h:161
@ MID_GNE_NETWORKVIEWOPTIONS_MOVEELEVATION
move elevation instead of x,y
Definition: GUIAppEnum.h:773
@ MID_GNE_TOOLBARFILE_RELOAD_EDGETYPES
reload edge types
Definition: GUIAppEnum.h:693
@ MID_LOCATEJUNCTION
Locate junction - button.
Definition: GUIAppEnum.h:357
@ MID_GNE_NETWORKVIEWOPTIONS_HIDECONNECTIONS
hide connections
Definition: GUIAppEnum.h:759
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWCONNECTIONS
show connections
Definition: GUIAppEnum.h:757
@ MID_GNE_SAVEALLELEMENTS
save all element
Definition: GUIAppEnum.h:683
@ MID_GNE_TOOLBAREDIT_LOADDEMAND
load demand in SUMO-GUI after press ctrl+T
Definition: GUIAppEnum.h:727
@ MID_GNE_DATAVIEWOPTIONS_TAZRELONLYTO
toggle draw TAZRel only to
Definition: GUIAppEnum.h:839
@ MID_OPEN_CONFIG
Open configuration - ID.
Definition: GUIAppEnum.h:270
@ MID_HOTKEY_M_MODE_MOVE
hotkey for mode moving element
Definition: GUIAppEnum.h:57
@ MID_HOTKEY_CTRL_W_CLOSESIMULATION
Close simulation - ID.
Definition: GUIAppEnum.h:117
@ MID_GNE_LOCK_ALLELEMENTS
lock all element
Definition: GUIAppEnum.h:785
@ MID_HOTKEY_F7_JOIN_SELECTEDJUNCTIONS_ROUTES
join selected junctions in network mode and normalice demand element ids in demand mode
Definition: GUIAppEnum.h:201
@ MID_HOTKEY_CTRL_D_SINGLESIMULATIONSTEP_OPENDEMANDELEMENTS
Perform a single simulation step in SUMO and open Demand Elements in NETEDIT.
Definition: GUIAppEnum.h:85
@ MID_HOTKEY_F5_COMPUTE_NETWORK_DEMAND
compute Network in network mode and Demand elements in demand mode
Definition: GUIAppEnum.h:197
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWTAZELEMENTS
show TAZ elements
Definition: GUIAppEnum.h:763
@ MID_GNE_DEMANDVIEWOPTIONS_LOCKPERSON
lock person
Definition: GUIAppEnum.h:811
@ MID_HOTKEY_Z_MODE_TAZ_TAZREL
hotkey for mode editing TAZ and TAZRel
Definition: GUIAppEnum.h:71
@ MID_HOTKEY_F9_EDIT_VIEWSCHEME
open edit scheme menu
Definition: GUIAppEnum.h:205
@ MID_GNE_DEMANDVIEWOPTIONS_TOGGLEDRAWJUNCTIONSHAPE
toggle draw junction shape
Definition: GUIAppEnum.h:799
@ MID_GNE_LOCK_SELECTEDELEMENTS
lock selected element
Definition: GUIAppEnum.h:789
@ MID_LOCATEPOLY
Locate polygons - button.
Definition: GUIAppEnum.h:379
@ MID_GNE_TOOLBARFILE_SAVESUMOCONFIG_AS
save SUMOConfig as
Definition: GUIAppEnum.h:699
@ MID_GNE_TOOLBARFILE_RELOAD_TLSPROGRAMS
reload TLS Programs
Definition: GUIAppEnum.h:689
@ MID_HOTKEY_CTRL_N_NEWNETWORK
create new empty network
Definition: GUIAppEnum.h:103
@ MID_HOTKEY_CTRL_SHIFT_S_SAVENETWORK_AS
save network as
Definition: GUIAppEnum.h:173
@ MID_GNE_NETWORKVIEWOPTIONS_ASKFORMERGE
ask before merging junctions
Definition: GUIAppEnum.h:769
@ MID_GNE_TOOLBARFILE_OPENFOREIGN
open foreign network
Definition: GUIAppEnum.h:681
@ MID_HOTKEY_CTRL_B_EDITBREAKPOINT_OPENDATAELEMENTS
Edit simulation breakpoints in SUMO and open Data Elements in NETEDIT.
Definition: GUIAppEnum.h:81
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWGRID
show grid
Definition: GUIAppEnum.h:797
@ MID_HOTKEY_CTRL_SHIFT_D_SAVEDEMANDELEMENTS
Save Demand Elements.
Definition: GUIAppEnum.h:165
@ MID_HOTKEY_CTRL_R_RELOAD
Reload the previously loaded simulation.
Definition: GUIAppEnum.h:109
@ MID_HOTKEY_CTRL_S_STOPSIMULATION_SAVENETWORK
Stop the simulation in SUMO and save network in NETEDIT.
Definition: GUIAppEnum.h:107
@ MID_GNE_NETWORKVIEWOPTIONS_CHAINEDGES
create edges in chain mode
Definition: GUIAppEnum.h:775
@ MID_GNE_TOOLBARFILE_SAVEDATA_AS
save data elements as
Definition: GUIAppEnum.h:707
@ MID_HOTKEY_F10_OPTIONSMENU
open options menu
Definition: GUIAppEnum.h:207
@ MID_HOTKEY_F11_FRONTELEMENT
set/clear front element
Definition: GUIAppEnum.h:209
@ MID_HOTKEY_F8_CLEANINVALID_CROSSINGS_DEMANDELEMENTS
clean invalid crossings in network mode and demand elements in demand mode
Definition: GUIAppEnum.h:203
@ MID_GNE_DATAVIEWOPTIONS_SHOWDEMANDELEMENTS
show demand elements
Definition: GUIAppEnum.h:831
@ MID_HOTKEY_H_MODE_PROHIBITION_CONTAINERPLAN
hotkey for mode prohibition AND container plan
Definition: GUIAppEnum.h:53
@ MID_HOTKEY_T_MODE_TLS_TYPE
hotkey for mode editing TLS AND Vehicle Types
Definition: GUIAppEnum.h:65
@ MID_LOCATEADD
Locate additional structure - button.
Definition: GUIAppEnum.h:375
@ MID_LOCATEPOI
Locate poi - button.
Definition: GUIAppEnum.h:377
@ MID_GNE_DEMANDVIEWOPTIONS_HIDESHAPES
hide shapes
Definition: GUIAppEnum.h:805
@ MID_OPEN_NETWORK
Open network - ID.
Definition: GUIAppEnum.h:272
@ MID_GNE_TOOLBARFILE_SAVETLSPROGRAMS_AS
save TLS Programs as
Definition: GUIAppEnum.h:697
@ MID_GNE_DATAVIEWOPTIONS_SHOWADDITIONALS
show additionals
Definition: GUIAppEnum.h:827
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWBUBBLES
show junctions as bubbles
Definition: GUIAppEnum.h:771
@ MID_GNE_TOOLBARFILE_RELOAD_DEMANDELEMENTS
reload demand elements
Definition: GUIAppEnum.h:705
@ MID_GNE_NETWORKVIEWOPTIONS_EXTENDSELECTION
extend selection
Definition: GUIAppEnum.h:765
@ MID_HOTKEY_CTRL_I_EDITVIEWPORT
Open viewport editor.
Definition: GUIAppEnum.h:91
@ MID_HOTKEY_S_MODE_SELECT
hotkey for mode selecting objects
Definition: GUIAppEnum.h:61
@ MID_RECENTFILE
Loads a file previously loaded.
Definition: GUIAppEnum.h:278
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWSUBADDITIONALS
show sub-additionals
Definition: GUIAppEnum.h:761
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWALLCONTAINERPLANS
show all container plans
Definition: GUIAppEnum.h:813
@ MID_HOTKEY_CTRL_SHIFT_N_NEWWINDOW
Open a New Window.
Definition: GUIAppEnum.h:169
@ MID_HOTKEY_F4_SUPERMODE_DATA
select data supermode in NETEDIT
Definition: GUIAppEnum.h:195
@ MID_HOTKEY_F6_CLEAN_SOLITARYJUNCTIONS_UNUSEDROUTES
clean junctions without edges in network mode and unused routes in demand mode
Definition: GUIAppEnum.h:199
@ MID_LOCATESTOP
Locate stop - button.
Definition: GUIAppEnum.h:367
@ MID_HOTKEY_CTRL_K_OPENTLSPROGRAMS
Load file with TLS Programs.
Definition: GUIAppEnum.h:97
@ MID_GNE_LOCK_ELEMENT
lock element
Definition: GUIAppEnum.h:783
@ MID_CLEARMESSAGEWINDOW
Clear simulation output.
Definition: GUIAppEnum.h:339
@ 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:69
@ MID_GNE_DATAVIEWOPTIONS_TAZDRAWFILL
toggle draw TAZ fill
Definition: GUIAppEnum.h:835
@ MID_HOTKEY_D_MODE_DELETE
hotkey for mode deleting things
Definition: GUIAppEnum.h:47
@ MID_GNE_TOOLBARFILE_RELOAD_ADDITIONALS
reload additionals
Definition: GUIAppEnum.h:695
@ MID_HOTKEY_V_MODE_VEHICLE
hotkey for mode create vehicles
Definition: GUIAppEnum.h:67
@ MID_HOTKEY_I_MODE_INSPECT
hotkey for mode inspecting object attributes
Definition: GUIAppEnum.h:55
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWDEMANDELEMENTS
show demand elements
Definition: GUIAppEnum.h:753
@ MID_GNE_TOOLBARFILE_SAVEADDITIONALS_AS
save additionals as
Definition: GUIAppEnum.h:687
@ MID_GNE_TOOLBARFILE_SAVEEDGETYPES_AS
save edgeTypes as
Definition: GUIAppEnum.h:701
@ MID_HOTKEY_C_MODE_CONNECT_PERSONPLAN
hotkey for mode connecting lanes ABD person plan
Definition: GUIAppEnum.h:45
@ MID_GNE_DEMANDVIEWOPTIONS_HIDENONINSPECTED
hide non-inspected demand element
Definition: GUIAppEnum.h:803
@ MID_HOTKEY_CTRL_SHIFT_A_SAVEADDITIONALS
Save Additional Elements.
Definition: GUIAppEnum.h:159
@ MID_LOCATEWALKINGAREA
Locate edge - button.
Definition: GUIAppEnum.h:361
@ MID_LOCATEEDGE
Locate edge - button.
Definition: GUIAppEnum.h:359
@ MID_HOTKEY_G_MODE_CONTAINER
hotkey for mode container
Definition: GUIAppEnum.h:51
@ MID_GNE_NETWORKVIEWOPTIONS_CHANGEALLPHASES
change all phases
Definition: GUIAppEnum.h:767
@ MID_HOTKEY_CTRL_A_STARTSIMULATION_OPENADDITIONALS
Start the simulation in SUMO and open Additionals Elements in NETEDIT.
Definition: GUIAppEnum.h:79
@ MID_GNE_DATAVIEWOPTIONS_SHOWSHAPES
show shapes
Definition: GUIAppEnum.h:829
@ 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:837
@ MID_GNE_TOOLBARTOOLS_NETDIFF
call tool netdiff
Definition: GUIAppEnum.h:717
@ MID_LOCATEVEHICLE
Locate vehicle - button.
Definition: GUIAppEnum.h:363
@ MID_LOCATETLS
Locate TLS - button.
Definition: GUIAppEnum.h:373
@ MID_GNE_TOOLBARFILE_RELOAD_SUMOCONFIG
reload SUMOConfig
Definition: GUIAppEnum.h:691
@ MID_GNE_NETWORKVIEWOPTIONS_TOGGLEDRAWJUNCTIONSHAPE
toggle draw junction shape
Definition: GUIAppEnum.h:749
@ MID_HOTKEY_CTRL_M_OPENSUMOCONFIG
open sumo config
Definition: GUIAppEnum.h:101
@ MID_GNE_TOOLBARFILE_SAVEDEMAND_AS
save demand elements as
Definition: GUIAppEnum.h:703
@ MID_GNE_DEMANDVIEWOPTIONS_DRAWSPREADVEHICLES
Draw vehicles in begin position or spread in lane.
Definition: GUIAppEnum.h:801
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWOVERLAPPEDROUTES
show overlapped routes
Definition: GUIAppEnum.h:817
@ MID_HOTKEY_CTRL_Z_UNDO
Redo.
Definition: GUIAppEnum.h:123
@ MID_GNE_TOOLBARFILE_RELOAD_DATAELEMENTS
reload data elements
Definition: GUIAppEnum.h:709
@ MID_HOTKEY_CTRL_SHIFT_K_SAVETLS
save TLS Programs
Definition: GUIAppEnum.h:167
@ MID_HOTKEY_F2_SUPERMODE_NETWORK
select network supermode in NETEDIT
Definition: GUIAppEnum.h:191
@ MID_GNE_DEMANDVIEWOPTIONS_LOCKCONTAINER
lock container
Definition: GUIAppEnum.h:815
@ MID_GNE_NETWORKVIEWOPTIONS_SELECTEDGES
select edges
Definition: GUIAppEnum.h:755
@ MID_HOTKEY_CTRL_H_OPENEDGETYPES
open edge type files
Definition: GUIAppEnum.h:89
@ MID_GNE_SAVEJOINEDJUNCTIONS
save joined junctions
Definition: GUIAppEnum.h:685
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWTRIPS
show all trips
Definition: GUIAppEnum.h:807
@ MID_GNE_NETWORKVIEWOPTIONS_TOGGLEGRID
show grid
Definition: GUIAppEnum.h:747
@ MID_LOCATEROUTE
Locate route - button.
Definition: GUIAppEnum.h:365
@ 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:99
@ MID_HOTKEY_CTRL_T_OPENSUMONETEDIT
Open current network in SUMO or in NETEDIT.
Definition: GUIAppEnum.h:113
#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
@ CLEANJUNCTIONS
@ DATAMODE_CHECKBOX_SHOWADDITIONALS
@ SAVEALLELEMENTS
@ NETWORKMODE_CHECKBOX_BUBBLES
@ DATAMODE_CHECKBOX_TAZRELONLYFROM
@ MODEPERSONPLAN
@ TRANSPORT_FROMTO
@ MODECROSSING
@ MODEADDITIONAL
@ MODEEDGERELDATA
@ EDITVIEWPORT
@ SUPERMODEDEMAND
@ CLEARMESSAGEWINDOW
@ MODEPROHIBITION
@ DEMANDMODE_CHECKBOX_HIDENONINSPECTEDDEMANDELEMENTS
@ NETWORKMODE_CHECKBOX_HIDECONNECTIONS
@ DEMANDMODE_CHECKBOX_SHOWTRIPS
@ OPEN_ADDITIONALS
@ COMMONMODE_CHECKBOX_TOGGLEDRAWJUNCTIONSHAPE
@ 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
@ LOCATEPERSON
@ DATAMODE_CHECKBOX_TAZRELDRAWING
@ NETWORKMODE_CHECKBOX_SHOWCONNECTIONS
@ LOCK_SELECTED
@ DEMANDMODE_CHECKBOX_SHOWPERSONPLANS
@ MODECONTAINER
@ DEMANDMODE_CHECKBOX_HIDESHAPES
@ SAVEDATAELEMENTS
@ DATAMODE_CHECKBOX_TAZDRAWFILL
@ MODEEDGEDATA
@ NETWORKMODE_CHECKBOX_ELEVATION
@ TOOL_NETDIFF
@ SUPERMODENETWORK
@ COMMONMODE_CHECKBOX_SPREADVEHICLE
@ ADJUSTPERSONPLANS
@ DEMANDMODE_CHECKBOX_LOCKCONTAINER
@ NETWORKMODE_CHECKBOX_SHOWSUBADDITIONALS
@ SAVEDEMANDELEMENTS
@ NETWORKMODE_CHECKBOX_SHOWTAZELEMENTS
@ SUPERMODEDATA
@ PERSONTRIP_FROMTO
@ SAVEADDITIONALELEMENTS
@ MODECONNECTION
@ LOCATEJUNCTION
@ MODECONTAINERPLAN
@ NETWORKMODE_CHECKBOX_CHAIN
@ COMPUTEDEMAND
@ DEMANDMODE_CHECKBOX_SHOWOVERLAPPEDROUTES
@ NETWORKMODE_CHECKBOX_ASKFORMERGE
@ OVERHEADWIRE
@ COMMONMODE_CHECKBOX_TOGGLEGRID
@ OPEN_TLSPROGRAMS
@ JOINJUNCTIONS
@ MODETAZRELDATA
@ OPEN_SUMOCONFIG
@ DEMANDMODE_CHECKBOX_SHOWCONTAINERPLANS
@ NETWORKMODE_CHECKBOX_TWOWAY
#define WRITE_DEBUG(msg)
Definition: MsgHandler.h:276
#define TL(string)
Definition: MsgHandler.h:282
@ SUMO_TAG_EDGEREL
a relation between two edges
@ SUMO_TAG_ADDITIONALFILES
additional files
@ SUMO_TAG_NETFILE
net file
@ SUMO_TAG_CONNECTION
connectio between two lanes
@ SUMO_TAG_WALKINGAREA
walking area for pedestrians
@ SUMO_TAG_CONFIGURATION
@ SUMO_TAG_JUNCTION
begin/end of the description of a junction
@ SUMO_TAG_CROSSING
crossing between edges for pedestrians
@ SUMO_TAG_MEANDATA_EDGE
an edge based mean data detector
@ 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_DATAFILES
data files
@ SUMO_TAG_TAZREL
a relation between two TAZs
@ SUMO_TAG_ROUTEFILES
route files
@ SUMO_TAG_EDGE
begin/end of the description of an edge
@ SUMO_ATTR_DATAFILES
route files
@ SUMO_ATTR_CONFIGFILE
@ SUMO_ATTR_NETFILE
net file
@ SUMO_ATTR_VALUE
@ SUMO_ATTR_ADDITIONALFILES
additional files
@ SUMO_ATTR_ROUTEFILES
route files
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
Definition: ToString.h:46
bool hasStringAttribute(const SumoXMLAttr attr) const
has function
const std::string & getStringAttribute(const SumoXMLAttr attr) const
get string attribute
handler for SUMOConfigs
Definition: ConfigHandler.h:31
Functions for an easier usage of files and paths.
Definition: FileHelpers.h:38
static bool isAbsolute(const std::string &path)
Returns the information whether the given path is absolute.
GNEConfigHandler(GNEApplicationWindow *applicationWindow, const std::string &file)
Constructor.
void loadConfig(CommonXMLStructure::SumoBaseObject *configObj)
Load net file.
The main window of the Netedit.
const GNETagProperties & getTagProperty() const
get tagProperty associated with this Attribute Carrier
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
Definition: GNEViewNet.cpp:656
long onCmdToggleShowDemandElementsData(FXObject *, FXSelector, void *)
toggle show demand elements (data)
long onCmdToggleTAZDrawFill(FXObject *, FXSelector, void *)
toggle TAZdrawFill
long onCmdToggleWarnAboutMerge(FXObject *, FXSelector, void *)
toggle warn for merge
long onCmdToggleDrawSpreadVehicles(FXObject *, FXSelector, void *)
toggle draw vehicles in begin position or spread in lane
long onCmdToggleShowConnections(FXObject *, FXSelector, void *)
toggle show connections
long onCmdToggleShowTAZElements(FXObject *, FXSelector, void *)
toggle show TAZ elements
long onCmdToggleMoveElevation(FXObject *, FXSelector, void *)
toggle move elevation
long onCmdToggleShowAllPersonPlans(FXObject *, FXSelector, void *)
toggle show all person plans in super mode demand
long onCmdToggleTAZRelOnlyTo(FXObject *, FXSelector, void *)
toggle TAZRez only to
const GNEViewNetHelper::NetworkViewOptions & getNetworkViewOptions() const
get network view options
Definition: GNEViewNet.cpp:644
long onCmdToggleChainEdges(FXObject *, FXSelector, void *)
toggle chain edges
long onCmdToggleLockContainer(FXObject *, FXSelector, void *)
toggle lock container in super mode demand
long onCmdToggleShowGrid(FXObject *, FXSelector, void *)
toggle show grid
long onCmdToggleHideNonInspecteDemandElements(FXObject *, FXSelector, void *)
toggle hide non inspected demand elements
long onCmdToggleDrawJunctionShape(FXObject *, FXSelector, void *)
toggle draw junction shape
long onCmdToggleShowShapes(FXObject *, FXSelector, void *)
toggle show shapes in super mode data
long onCmdToggleExtendSelection(FXObject *, FXSelector, void *)
toggle extend selection
long onCmdToggleShowOverlappedRoutes(FXObject *, FXSelector, void *)
toggle hide non inspected demand elements
long onCmdToggleAutoOppositeEdge(FXObject *, FXSelector, void *)
toggle autoOpposite edge
long onCmdToggleChangeAllPhases(FXObject *, FXSelector, void *)
toggle change all phases
long onCmdToggleTAZRelDrawing(FXObject *, FXSelector, void *)
toggle TAZRel drawing
long onCmdToggleShowJunctionBubbles(FXObject *, FXSelector, void *)
toggle show junction bubbles
long onCmdToggleShowAdditionalSubElements(FXObject *, FXSelector, void *)
toggle show additional sub-elements
long onCmdToggleShowAllContainerPlans(FXObject *, FXSelector, void *)
toggle show all container plans in super mode demand
long onCmdToggleTAZRelOnlyFrom(FXObject *, FXSelector, void *)
toggle TAZRez only from
long onCmdToggleShowAdditionals(FXObject *, FXSelector, void *)
toggle show additionals in super mode data
long onCmdToggleLockPerson(FXObject *, FXSelector, void *)
toggle lock person in super mode demand
long onCmdToggleSelectEdges(FXObject *, FXSelector, void *)
toggle select edges
long onCmdToggleShowTrips(FXObject *, FXSelector, void *)
toggle show all trips in super mode demand
long onCmdToggleHideShapes(FXObject *, FXSelector, void *)
toggle hide shapes in super mode demand
const GNEViewNetHelper::DemandViewOptions & getDemandViewOptions() const
get demand view options
Definition: GNEViewNet.cpp:650
long onCmdToggleHideConnections(FXObject *, FXSelector, void *)
toggle hide connections
static MFXMenuCheckIcon * buildFXMenuCheckboxIcon(FXComposite *p, const std::string &text, const std::string &shortcut, const std::string &info, FXIcon *icon, FXObject *tgt, FXSelector sel)
build menu checkbox with icon
Definition: GUIDesigns.cpp:75
static FXMenuCommand * buildFXMenuCommandRecentFile(FXComposite *p, const std::string &text, FXObject *tgt, FXSelector sel)
build menu command (for recent files)
Definition: GUIDesigns.cpp:86
static FXMenuCommand * buildFXMenuCommand(FXComposite *p, const std::string &text, FXIcon *icon, FXObject *tgt, FXSelector sel)
build menu command
Definition: GUIDesigns.cpp:42
static FXMenuCheck * buildFXMenuCheckbox(FXComposite *p, const std::string &text, const std::string &info, FXObject *tgt, FXSelector sel)
build menu checkbox
Definition: GUIDesigns.cpp:64
static FXMenuCommand * buildFXMenuCommandShortcut(FXComposite *p, const std::string &text, const std::string &shortcut, const std::string &info, FXIcon *icon, FXObject *tgt, FXSelector sel)
build menu command
Definition: GUIDesigns.cpp:53
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
A storage for options typed value containers)
Definition: OptionsCont.h:89
std::string getString(const std::string &name) const
Returns the string-value of the named option (only for Option_String)
bool set(const std::string &name, const std::string &value, const bool append=false)
Sets the given value for the named option.
void resetWritable()
Resets all options to be writeable.
static OptionsCont & getOptions()
Retrieves the options.
Definition: OptionsCont.cpp:59
Static storage of an output device and its base (abstract) implementation.
Definition: OutputDevice.h:61
OutputDevice & writeAttr(const SumoXMLAttr attr, const T &val)
writes a named attribute
Definition: OutputDevice.h:251
void close()
Closes the device and removes it from the dictionary.
OutputDevice & openTag(const std::string &xmlElement)
Opens an XML tag.
bool closeTag(const std::string &comment="")
Closes the most recently opened tag and optionally adds a comment.
static OutputDevice & getDevice(const std::string &name, bool usePrefix=true)
Returns the described OutputDevice.
DataViewOptions(GNEApplicationWindow *GNEApp)
default constructor
void buildDataViewOptionsMenuChecks(FXMenuPane *editMenu)
build menu checks
void buildDemandViewOptionsMenuChecks(FXMenuPane *editMenu)
build menu checks
DemandViewOptions(GNEApplicationWindow *GNEApp)
default constructor
NetworkViewOptions(GNEApplicationWindow *GNEApp)
default constructor
void buildNetworkViewOptionsMenuChecks(FXMenuPane *editMenu)
build menu checks
EditMenuCommands(GNEApplicationWindow *GNEApp)
constructor
DemandViewOptions demandViewOptions
demand view options
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.
FileMenuCommands(GNEApplicationWindow *GNEApp)
constructor
void buildFileMenuCommands(FXMenuPane *fileMenu, FXMenuPane *fileMenuSUMOConfig, FXMenuPane *fileMenuTLS, FXMenuPane *fileMenuEdgeTypes, FXMenuPane *fileMenuAdditionals, FXMenuPane *fileMenuDemandElements, FXMenuPane *fileMenuDataElements)
build menu commands
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 buildRecentFiles(FXMenuPane *fileMenu)
build recent files
MenuBarFile(GNEApplicationWindow *GNEApp)
constructor
CommonMenuCommands(const ModesMenuCommands *modesMenuCommandsParent)
constructor
void buildDataMenuCommands(FXMenuPane *modesMenu)
build menu commands
DataMenuCommands(const ModesMenuCommands *modesMenuCommandsParent)
constructor
DemandMenuCommands(const ModesMenuCommands *modesMenuCommandsParent)
constructor
NetworkMenuCommands(const ModesMenuCommands *modesMenuCommandsParent)
constructor
CommonMenuCommands commonMenuCommands
Common Menu Commands.
GNEApplicationWindow * myGNEApp
pointer to current GNEApplicationWindows
void buildModesMenuCommands(FXMenuPane *modesMenu)
build modes menu commands
ModesMenuCommands(GNEApplicationWindow *GNEApp)
constructor
DemandMenuCommands demandMenuCommands
Demand Menu Commands.
DataMenuCommands dataMenuCommands
Data Menu Commands.
NetworkMenuCommands networkMenuCommands
Network Menu Commands.
void showDataProcessingMenuCommands()
show data processing menu commands
void showDemandProcessingMenuCommands()
show demand processing menu commands
void hideDemandProcessingMenuCommands()
show demand processing menu commands
void hideDataProcessingMenuCommands()
show data processing menu commands
void buildProcessingMenuCommands(FXMenuPane *processingMenu)
build menu commands
void showNetworkProcessingMenuCommands()
show network processing menu commands
ProcessingMenuCommands(GNEApplicationWindow *GNEApp)
constructor
void hideNetworkProcessingMenuCommands()
show network processing menu commands
void buildSupermodeCommands(FXMenuPane *editMenu)
build menu commands
SupermodeCommands(GNEApplicationWindow *GNEApp)
constructor
void buildMenuToolbarsGrip()
build menu toolbar grips
ToolbarsGrip(GNEApplicationWindow *GNEApp)
constructor
ToolsMenuCommands(GNEApplicationWindow *GNEApp)
constructor
void buildToolsMenuCommands(FXMenuPane *locateMenu)
build menu commands
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 bool stringEndsWith(const std::string &str, const std::string &suffix)
check if a string ends with another string
static void saveSUMOConfig()
save SUMOConfig
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 bool toggleEditOptionsNetwork(GNEViewNet *viewNet, const MFXCheckableButton *menuCheck, const int numericalKeyPressed, FXObject *obj, FXSelector sel)
toggle edit options Network menu commands (called in GNEApplicationWindow::onCmdToggleEditOptions)
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