30#include <netedit/templates.h>
37#include <xercesc/parsers/SAXParser.hpp>
38#include <xercesc/sax/AttributeList.hpp>
39#include <xercesc/sax/HandlerBase.hpp>
40#include <xercesc/sax/SAXException.hpp>
41#include <xercesc/sax/SAXParseException.hpp>
52 myApplicationWindow(applicationWindow) {
59 myPythonToolBarShellMenu =
new FXToolBarShell(myApplicationWindow,
GUIDesignToolBar);
69 myPythonToolBarShellSuperModes =
new FXToolBarShell(myApplicationWindow,
GUIDesignToolBar);
70 myPythonToolBarShellSaveElements =
new FXToolBarShell(myApplicationWindow,
GUIDesignToolBar);
71 myPythonToolBarShellTimeFormat =
new FXToolBarShell(myApplicationWindow,
GUIDesignToolBar);
72 myPythonToolBarShellNavigation =
new FXToolBarShell(myApplicationWindow,
GUIDesignToolBar);
73 myPythonToolBarShellModes =
new FXToolBarShell(myApplicationWindow,
GUIDesignToolBar);
74 myPythonToolBarShellIntervalBar =
new FXToolBarShell(myApplicationWindow,
GUIDesignToolBar);
95 saveElements->create();
99 intervalBar->create();
101 myPythonToolBarShellSuperModes->create();
102 myPythonToolBarShellSaveElements->create();
103 myPythonToolBarShellTimeFormat->create();
104 myPythonToolBarShellNavigation->create();
105 myPythonToolBarShellModes->create();
106 myPythonToolBarShellIntervalBar->create();
108 myApplicationWindow->getTopDock()->recalc();
122 delete myPythonToolBarShellSuperModes;
123 delete myPythonToolBarShellSaveElements;
124 delete myPythonToolBarShellTimeFormat;
125 delete myPythonToolBarShellNavigation;
126 delete myPythonToolBarShellModes;
127 delete myPythonToolBarShellIntervalBar;
129 myApplicationWindow->getTopDock()->recalc();
137 myRecentNetworks(applicationWindow->getApp(),
TL(
"nets")),
138 myRecentConfigs(applicationWindow->getApp(),
TL(
"configs")),
139 myApplicationWindow(applicationWindow) {
156 new FXMenuSeparator(fileMenuRecentNetworkFiles);
160 myRecentNetworks.setTarget(myApplicationWindow);
162 new FXMenuCascade(fileMenu,
TL(
"Recent Networks"),
nullptr, fileMenuRecentNetworkFiles);
179 new FXMenuSeparator(fileMenuRecentConfigFiles);
183 myRecentConfigs.setTarget(myApplicationWindow);
185 new FXMenuCascade(fileMenu,
TL(
"Recent Configs"),
nullptr, fileMenuRecentConfigFiles);
193 myApplicationWindow(applicationWindow) {
199 FXMenuPane* fileMenuSumoConfig, FXMenuPane* fileMenuTLS, FXMenuPane* fileMenuEdgeTypes, FXMenuPane* fileMenuAdditionals,
200 FXMenuPane* fileMenuDemandElements, FXMenuPane* fileMenuDataElements, FXMenuPane* fileMenuMeanDataElements) {
203 TL(
"New Network"),
"Ctrl+N",
TL(
"Create a new network."),
207 TL(
"New Window"),
"Ctrl+Shift+N",
TL(
"Open a new netedit window."),
211 TL(
"Generate Network"),
"",
TL(
"Create network using netgenerate."),
215 new FXMenuSeparator(fileMenu);
218 TL(
"Load Netedit config..."),
"Ctrl+E",
TL(
"Load a netedit configuration file."),
222 TL(
"Load Sumo config..."),
"Ctrl+M",
TL(
"Load a SUMO configuration file."),
226 new FXMenuSeparator(fileMenu);
229 TL(
"Open Network..."),
"Ctrl+O",
TL(
"Open a SUMO network."),
233 TL(
"Open Netconvert Configuration..."),
"Ctrl+Shift+O",
TL(
"Open a configuration file with NETCONVERT options."),
237 TL(
"Import Foreign Network..."),
"",
TL(
"Import a foreign network such as OSM."),
241 new FXMenuSeparator(fileMenu);
244 TL(
"Save Network"),
"Ctrl+S",
TL(
"Save the network."),
248 TL(
"Save Network As..."),
"",
TL(
"Save the network to another file."),
252 TL(
"Save Plain XML..."),
"Ctrl+L",
TL(
"Save a plain XML representation of the network."),
256 TL(
"Save Joined Junctions..."),
"",
TL(
"Save log of joined junctions (allows reproduction of joins)."),
260 new FXMenuSeparator(fileMenu);
263 TL(
"Reload"),
"Ctrl+R",
TL(
"Reload the network."),
267 TL(
"Reload Network"),
"",
TL(
"Reload the network."),
270 new FXMenuSeparator(fileMenu);
273 buildNeteditConfigSection(fileMenuNeteditConfig);
277 buildSumoConfigSection(fileMenuSumoConfig);
281 buildTrafficLightSection(fileMenuTLS);
285 buildEdgeTypeSection(fileMenuEdgeTypes);
289 buildAdditionalSection(fileMenuAdditionals);
293 buildDemandSection(fileMenuDemandElements);
297 buildDataSection(fileMenuDataElements);
301 buildMeanDataSection(fileMenuMeanDataElements);
305 new FXMenuSeparator(fileMenu);
307 TL(
"Allow undoing element loading"),
TL(
"Allow to undo loading of elements (Slow if a lot of elements are loaded)"),
310 menuCheckAllowUndoRedoLoading->setCheck(myApplicationWindow->getApp()->reg().readBoolEntry(
"NETEDIT",
"AllowUndoRedoLoading",
true));
313 new FXMenuSeparator(fileMenu);
315 TL(
"Close"),
"Ctrl+W",
TL(
"Close the network."),
322 mySumoConfigMenuCascade->enable();
323 myNeteditConfigMenuCascade->enable();
324 myTLSMenuCascade->enable();
325 myEdgeTypesMenuCascade->enable();
326 myAdditionalMenuCascade->enable();
327 myDemandMenuCascade->enable();
328 myDataMenuCascade->enable();
329 myMeanDataMenuCascade->enable();
335 mySumoConfigMenuCascade->disable();
336 myNeteditConfigMenuCascade->disable();
337 myTLSMenuCascade->disable();
338 myEdgeTypesMenuCascade->disable();
339 myAdditionalMenuCascade->disable();
340 myDemandMenuCascade->disable();
341 myDataMenuCascade->disable();
342 myMeanDataMenuCascade->disable();
348 myTLSMenuCascade->show();
349 myDataMenuCascade->show();
350 myMeanDataMenuCascade->show();
356 myTLSMenuCascade->hide();
357 myDataMenuCascade->hide();
358 myMeanDataMenuCascade->hide();
365 TL(
"Save Netedit Config"),
"Ctrl+Shift+E",
TL(
"Save netedit configuration file."),
369 TL(
"Save Netedit Config As..."),
"",
TL(
"Save netedit configuration in a new file."),
372 new FXMenuSeparator(menuPane);
375 TL(
"Reload Netedit Config"),
"",
TL(
"Reload netedit configuration."),
383 TL(
"Save Sumo Config"),
"Ctrl+Shift+S",
TL(
"Save sumo configuration file."),
387 TL(
"Save Sumo Config As..."),
"",
TL(
"Save sumo configuration in a new file."),
390 new FXMenuSeparator(menuPane);
393 TL(
"Reload Sumo Config"),
"",
TL(
"Reload sumo configuration."),
401 TL(
"Load TLS Programs..."),
"Ctrl+K",
TL(
"Load programs for traffic lights in the current net."),
404 new FXMenuSeparator(menuPane);
407 TL(
"Save TLS Programs"),
"Ctrl+Shift+K",
TL(
"Save all traffic light programs of the current network."),
411 TL(
"Save TLS Programs As..."),
"",
TL(
"Save all traffic light programs of the current network to another file."),
414 new FXMenuSeparator(menuPane);
417 TL(
"Reload TLS Programs"),
"",
TL(
"Reload TLS Programs."),
425 TL(
"Load Edge Types..."),
"Ctrl+H",
TL(
"Load edge types in the current net."),
428 new FXMenuSeparator(menuPane);
431 TL(
"Save Edge Types"),
"Ctrl+Shift+H",
TL(
"Save edge types of the current net."),
435 TL(
"Save Edge Types As..."),
"",
TL(
"Save edge types of the current net to another file."),
438 new FXMenuSeparator(menuPane);
441 TL(
"Reload edge types"),
"",
TL(
"Reload edge types."),
449 TL(
"Load Additionals..."),
"Ctrl+A",
TL(
"Load additionals and shapes."),
452 new FXMenuSeparator(menuPane);
455 TL(
"Save Additionals"),
"Ctrl+Shift+A",
TL(
"Save additionals and shapes."),
459 TL(
"Save Additionals unified as..."),
"",
TL(
"Save all additional elements to the chosen file."),
463 TL(
"Save JuPedSim Elements as..."),
"",
TL(
"Save JuPedSim elements in a separated file."),
466 new FXMenuSeparator(menuPane);
469 TL(
"Reload Additionals"),
"",
TL(
"Reload additionals."),
477 TL(
"Load Demand Elements..."),
"Ctrl+D",
TL(
"Load demand elements."),
480 new FXMenuSeparator(menuPane);
483 TL(
"Save Demand Elements"),
"Ctrl+Shift+D",
TL(
"Save demand elements."),
487 TL(
"Save Demand Elements unified as..."),
"",
TL(
"Save all demand elements to the chosen file"),
490 new FXMenuSeparator(menuPane);
493 TL(
"Reload Demand Elements"),
"",
TL(
"Reload demand elements."),
501 TL(
"Load Data Elements..."),
"Ctrl+B",
TL(
"Load data elements."),
504 new FXMenuSeparator(menuPane);
507 TL(
"Save Data Elements"),
"Ctrl+Shift+B",
TL(
"Save data elements."),
511 TL(
"Save Data Elements unified as..."),
"",
TL(
"Save all data elements to the chosen file."),
514 new FXMenuSeparator(menuPane);
517 TL(
"Reload Data Elements"),
"",
TL(
"Reload data elements."),
525 TL(
"Load MeanDatas..."),
"",
TL(
"Load meanDatas and shapes."),
528 new FXMenuSeparator(menuPane);
531 TL(
"Save MeanDatas"),
"",
TL(
"Save meanDatas and shapes."),
535 TL(
"Save MeanDatas unified as..."),
"Ctrl+Shift+M",
TL(
"Save all meanData elements to the chosen file."),
538 new FXMenuSeparator(menuPane);
541 TL(
"Reload MeanDatas"),
"",
TL(
"Reload meanDatas."),
550 myModesMenuCommandsParent(modesMenuCommandsParent) {
558 TL(
"&Inspect"),
"I",
TL(
"Inspect elements and change their attributes."),
561 TL(
"&Delete"),
"D",
TL(
"Delete elements."),
564 TL(
"&Select"),
"S",
TL(
"Select elements."),
573 myModesMenuCommandsParent(modesMenuCommandsParent) {
579 createEdgeMode->show();
582 prohibitionMode->show();
584 additionalMode->show();
585 crossingMode->show();
595 createEdgeMode->hide();
598 prohibitionMode->hide();
600 additionalMode->hide();
601 crossingMode->hide();
613 TL(
"&Move"),
"M",
TL(
"Move elements."),
617 TL(
"&Edge"),
"E",
TL(
"Create junction and edges."),
621 TL(
"&Traffic light"),
"T",
TL(
"Modes traffic lights over junctions."),
625 TL(
"&Connection"),
"C",
TL(
"Modes connections between lanes."),
629 TL(
"Pro&hibition"),
"H",
TL(
"Modes connection prohibitions."),
633 TL(
"C&rossing"),
"R",
TL(
"Create crossings between edges."),
637 TL(
"&Additional"),
"A",
TL(
"Create additional elements."),
641 TL(
"&Wire"),
"W",
TL(
"Create wires."),
645 TL(
"TA&Z"),
"Z",
TL(
"Create Traffic Assignment Zones."),
649 TL(
"&POI-Poly"),
"P",
TL(
"Create Points-Of-Interest and polygons."),
653 TL(
"Deca&ls"),
"U",
TL(
"Create decals."),
663 myModesMenuCommandsParent(modesMenuCommandsParent) {
671 routeDistributionMode->show();
674 typeDistributionMode->show();
677 personPlanMode->show();
678 containerMode->show();
679 containerPlanMode->show();
687 routeDistributionMode->hide();
690 typeDistributionMode->hide();
693 personPlanMode->hide();
694 containerMode->hide();
695 containerPlanMode->hide();
703 TL(
"&Move"),
"M",
TL(
"Move elements."),
706 TL(
"Route"),
"R",
TL(
"Create Routes."),
709 TL(
"Route distribution"),
"W",
TL(
"Create and edit route distributions."),
713 TL(
"Vehicle"),
"V",
TL(
"Create vehicles."),
716 TL(
"Type"),
"T",
TL(
"Create types (vehicles, person and containers)."),
719 TL(
"TypeDistribution"),
"U",
TL(
"Create and edit type distributions."),
722 TL(
"Stop"),
"A",
TL(
"Create stops."),
725 TL(
"Person"),
"P",
TL(
"Create persons."),
728 TL(
"Person plan"),
"L",
TL(
"Create person plans."),
731 TL(
"Container"),
"C",
TL(
"Create containers."),
734 TL(
"Container plan"),
"H",
TL(
"Create container plans."),
743 myModesMenuCommandsParent(modesMenuCommandsParent) {
769 TL(
"&EdgeData"),
"E",
TL(
"Create edgeData elements."),
772 TL(
"Edge&Relation"),
"R",
TL(
"Create edgeRelation elements."),
775 TL(
"TA&ZRelation"),
"Z",
TL(
"Create TAZRelation elements."),
778 TL(
"&MeanData"),
"M",
TL(
"Create MeanData edge/lanes."),
788#pragma warning(disable: 4355)
804 commonMenuCommands.buildCommonMenuCommands(modesMenu);
806 networkMenuCommands.buildNetworkMenuCommands(modesMenu);
807 networkMenuCommands.hideNetworkMenuCommands();
809 demandMenuCommands.buildDemandMenuCommands(modesMenu);
810 demandMenuCommands.hideDemandMenuCommands();
812 dataMenuCommands.buildDataMenuCommands(modesMenu);
813 dataMenuCommands.hideDataMenuCommands();
820 networkMenuCommands.showNetworkMenuCommands();
822 demandMenuCommands.showDemandMenuCommands();
824 dataMenuCommands.showDataMenuCommands();
832 networkMenuCommands.connectMode->hide();
833 networkMenuCommands.TLSMode->hide();
834 networkMenuCommands.prohibitionMode->hide();
835 networkMenuCommands.wireMode->hide();
836 networkMenuCommands.decalMode->hide();
838 demandMenuCommands.moveMode->hide();
839 demandMenuCommands.vehicleMode->hide();
840 demandMenuCommands.stopMode->hide();
841 demandMenuCommands.containerMode->hide();
842 demandMenuCommands.containerPlanMode->hide();
844 dataMenuCommands.hideDataMenuCommands();
853 myApplicationWindow(applicationWindow) {
861 TL(
"Show grid"),
"Ctrl+G or Alt+1",
"",
866 TL(
"Hide junction shape"),
"Ctrl+J or Alt+2",
"",
871 TL(
"Draw vehicles spread in lane or in depart position"),
"Alt+3",
"",
876 TL(
"Show demand elements"),
"Alt+4",
"",
881 TL(
"Clicking should target lanes"),
"Alt+5",
"",
886 TL(
"Show connections over junctions"),
"Alt+6",
"",
891 TL(
"Hide connections"),
"Alt+7",
"",
896 TL(
"Show sub-additional elements"),
"Alt+8",
"",
901 TL(
"Show TAZ elements"),
"Alt+9",
"",
906 TL(
"Selecting multiple edges automatically select their junctions"),
"Alt+10",
"",
911 TL(
"Clicking should apply state changes to all phases of TLS plan"),
"Alt+5",
"",
916 TL(
"Don't ask for confirmation before merging junction"),
"Alt+5",
"",
921 TL(
"Create consecutive edges"),
"Alt+5",
"",
926 TL(
"Create an edge in the opposite direction"),
"Alt+6",
"",
931 TL(
"Apply mouse movement to elevation"),
"Alt+7",
"",
936 TL(
"Show bubbles over junctions shapes"),
"Alt+8",
"",
941 separator =
new FXMenuSeparator(editMenu);
947 menuCheckToggleGrid->hide();
948 menuCheckToggleDrawJunctionShape->hide();
949 menuCheckDrawSpreadVehicles->hide();
950 menuCheckShowDemandElements->hide();
951 menuCheckSelectEdges->hide();
952 menuCheckShowConnections->hide();
953 menuCheckHideConnections->hide();
954 menuCheckShowAdditionalSubElements->hide();
955 menuCheckShowTAZElements->hide();
956 menuCheckExtendSelection->hide();
957 menuCheckChangeAllPhases->hide();
958 menuCheckMergeAutomatically->hide();
959 menuCheckShowJunctionBubble->hide();
960 menuCheckMoveElevation->hide();
961 menuCheckChainEdges->hide();
962 menuCheckAutoOppositeEdge->hide();
971 if (menuCheckDrawSpreadVehicles->shown()) {
972 menuCheckDrawSpreadVehicles->setAccelText((
"Alt+" +
toString(index)).c_str());
975 if (menuCheckDrawSpreadVehicles->shown()) {
976 menuCheckDrawSpreadVehicles->setAccelText((
"Alt+" +
toString(index)).c_str());
979 if (menuCheckShowDemandElements->shown()) {
980 menuCheckShowDemandElements->setAccelText((
"Alt+" +
toString(index)).c_str());
983 if (menuCheckSelectEdges->shown()) {
984 menuCheckSelectEdges->setAccelText((
"Alt+" +
toString(index)).c_str());
987 if (menuCheckShowConnections->shown()) {
988 menuCheckShowConnections->setAccelText((
"Alt+" +
toString(index)).c_str());
991 if (menuCheckHideConnections->shown()) {
992 menuCheckHideConnections->setAccelText((
"Alt+" +
toString(index)).c_str());
995 if (menuCheckShowAdditionalSubElements->shown()) {
996 menuCheckShowAdditionalSubElements->setAccelText((
"Alt+" +
toString(index)).c_str());
999 if (menuCheckShowTAZElements->shown()) {
1000 menuCheckShowTAZElements->setAccelText((
"Alt+" +
toString(index)).c_str());
1003 if (menuCheckExtendSelection->shown()) {
1004 menuCheckExtendSelection->setAccelText((
"Alt+" +
toString(index)).c_str());
1007 if (menuCheckChangeAllPhases->shown()) {
1008 menuCheckChangeAllPhases->setAccelText((
"Alt+" +
toString(index)).c_str());
1011 if (menuCheckMergeAutomatically->shown()) {
1012 menuCheckMergeAutomatically->setAccelText((
"Alt+" +
toString(index)).c_str());
1015 if (menuCheckChainEdges->shown()) {
1016 menuCheckChainEdges->setAccelText((
"Alt+" +
toString(index)).c_str());
1019 if (menuCheckAutoOppositeEdge->shown()) {
1020 menuCheckAutoOppositeEdge->setAccelText((
"Alt+" +
toString(index)).c_str());
1023 if (menuCheckMoveElevation->shown()) {
1024 menuCheckMoveElevation->setAccelText((
"Alt+" +
toString(index)).c_str());
1027 if (menuCheckShowJunctionBubble->shown()) {
1028 menuCheckShowJunctionBubble->setAccelText((
"Alt+" +
toString(index)).c_str());
1046 TL(
"Show grid"),
"Ctrl+G or Alt+1",
"",
1051 TL(
"Hide junction shape"),
"Ctrl+J or Alt+2",
"",
1056 TL(
"Draw vehicles spread/depart position"),
"Alt+3",
"",
1061 TL(
"Show shapes"),
"Alt+4",
"",
1066 TL(
"Show all trips"),
"Alt+5",
"",
1071 TL(
"Show all person plans"),
"Alt+6",
"",
1076 TL(
"Lock selected person"),
"Alt+7",
"",
1081 TL(
"Show all container plans"),
"Alt+6",
"",
1086 TL(
"Lock selected container"),
"Alt+7",
"",
1091 TL(
"Show non-inspected demand elements"),
"Alt+8",
"",
1096 TL(
"Show number of overlapped routes"),
"Alt+9",
"",
1101 separator =
new FXMenuSeparator(editMenu);
1107 menuCheckToggleGrid->hide();
1108 menuCheckToggleDrawJunctionShape->hide();
1109 menuCheckDrawSpreadVehicles->hide();
1110 menuCheckHideShapes->hide();
1111 menuCheckShowAllTrips->hide();
1112 menuCheckHideNonInspectedDemandElements->hide();
1113 menuCheckShowOverlappedRoutes->hide();
1114 menuCheckShowAllPersonPlans->hide();
1115 menuCheckLockPerson->hide();
1116 menuCheckShowAllContainerPlans->hide();
1117 menuCheckLockContainer->hide();
1126 if (menuCheckDrawSpreadVehicles->shown()) {
1127 menuCheckDrawSpreadVehicles->setAccelText((
"Alt+" +
toString(index)).c_str());
1130 if (menuCheckHideShapes->shown()) {
1131 menuCheckHideShapes->setAccelText((
"Alt+" +
toString(index)).c_str());
1134 if (menuCheckShowAllTrips->shown()) {
1135 menuCheckShowAllTrips->setAccelText((
"Alt+" +
toString(index)).c_str());
1138 if (menuCheckHideNonInspectedDemandElements->shown()) {
1139 menuCheckHideNonInspectedDemandElements->setAccelText((
"Alt+" +
toString(index)).c_str());
1142 if (menuCheckShowOverlappedRoutes->shown()) {
1143 menuCheckShowOverlappedRoutes->setAccelText((
"Alt+" +
toString(index)).c_str());
1146 if (menuCheckShowAllPersonPlans->shown()) {
1147 menuCheckShowAllPersonPlans->setAccelText((
"Alt+" +
toString(index)).c_str());
1150 if (menuCheckLockPerson->shown()) {
1151 menuCheckLockPerson->setAccelText((
"Alt+" +
toString(index)).c_str());
1154 if (menuCheckShowAllContainerPlans->shown()) {
1155 menuCheckShowAllContainerPlans->setAccelText((
"Alt+" +
toString(index)).c_str());
1158 if (menuCheckLockContainer->shown()) {
1159 menuCheckLockContainer->setAccelText((
"Alt+" +
toString(index)).c_str());
1177 TL(
"Hide junction shape"),
"Ctrl+J or Alt+1",
"",
1182 TL(
"Show additionals"),
"Alt+2",
"",
1187 TL(
"Show shapes"),
"Alt+3",
"",
1192 TL(
"Show demand elements"),
"Alt+4",
"",
1197 TL(
"Draw TAZRel from center"),
"Alt+5",
"",
1202 TL(
"Draw TAZ fill"),
"Alt+6",
"",
1207 TL(
"Only draw TAZRel from"),
"Alt+6",
"",
1212 TL(
"Only draw TAZRel to"),
"Alt+7",
"",
1216 separator =
new FXMenuSeparator(editMenu);
1222 menuCheckToggleDrawJunctionShape->hide();
1223 menuCheckShowAdditionals->hide();
1224 menuCheckShowShapes->hide();
1225 menuCheckShowDemandElements->hide();
1226 menuCheckToggleTAZRelDrawing->hide();
1227 menuCheckToggleTAZDrawFill->hide();
1228 menuCheckToggleTAZRelOnlyFrom->hide();
1229 menuCheckToggleTAZRelOnlyTo->hide();
1238 if (menuCheckShowAdditionals->shown()) {
1239 menuCheckShowAdditionals->setAccelText((
"Alt+" +
toString(index)).c_str());
1242 if (menuCheckShowShapes->shown()) {
1243 menuCheckShowShapes->setAccelText((
"Alt+" +
toString(index)).c_str());
1246 if (menuCheckShowDemandElements->shown()) {
1247 menuCheckShowDemandElements->setAccelText((
"Alt+" +
toString(index)).c_str());
1250 if (menuCheckToggleTAZRelDrawing->shown()) {
1251 menuCheckToggleTAZRelDrawing->setAccelText((
"Alt+" +
toString(index)).c_str());
1254 if (menuCheckToggleTAZDrawFill->shown()) {
1255 menuCheckToggleTAZDrawFill->setAccelText((
"Alt+" +
toString(index)).c_str());
1258 if (menuCheckToggleTAZRelOnlyFrom->shown()) {
1259 menuCheckToggleTAZRelOnlyFrom->setAccelText((
"Alt+" +
toString(index)).c_str());
1262 if (menuCheckToggleTAZRelOnlyTo->shown()) {
1263 menuCheckToggleTAZRelOnlyTo->setAccelText((
"Alt+" +
toString(index)).c_str());
1284 TL(
"Undo"),
"Ctrl+Z",
TL(
"Undo the last change."),
1287 TL(
"Redo"),
"Ctrl+Y",
TL(
"Redo the last change."),
1290 TL(
"Show undo/redo history"),
"",
TL(
"Open undo/redo history dialog."),
1294 TL(
"Allow undo-redo"),
"",
1296 menuCheckAllowUndoRedo->setCheck(myApplicationWindow->getApp()->reg().readBoolEntry(
"NETEDIT",
"AllowUndoRedo",
true));
1304 TL(
"Edit Visualisation"),
"F9",
TL(
"Opens a dialog for editing visualization settings."),
1307 TL(
"Edit Viewport"),
"Ctrl+I",
TL(
"Opens a dialog for editing viewing area, zoom and rotation."),
1316 TL(
"Front element"),
"F11",
TL(
"Mark current inspected element as front element"),
1325 TL(
"Load additionals in sumo-gui"),
TL(
"Load additionals in sumo-gui."),
1327 loadAdditionalsInSUMOGUI->setCheck(TRUE);
1329 TL(
"Load demand in sumo-gui"),
TL(
"Load demand in sumo-gui."),
1331 loadDemandInSUMOGUI->setCheck(TRUE);
1333 TL(
"Open in sumo-gui"),
"Ctrl+T",
TL(
"Opens the sumo-gui application with the current network."),
1342 myApplicationWindow(applicationWindow) {
1350 TL(
"&Junctions"),
"",
"",
1355 TL(
"&Edges"),
"",
"",
1360 TL(
"&Lanes"),
"",
"",
1365 TL(
"&Connections"),
"",
"",
1370 TL(
"C&rossings"),
"",
"",
1375 TL(
"Walkin&gAreas"),
"",
"",
1380 TL(
"&Additionals"),
"",
"",
1385 TL(
"&TAZs"),
"",
"",
1390 TL(
"&Wires"),
"",
"",
1395 TL(
"&Polygons"),
"",
"",
1400 TL(
"P&OIs"),
"",
"",
1405 TL(
"WalkableAreas"),
"",
"",
1410 TL(
"Obstacles"),
"",
"",
1415 TL(
"&Routes"),
"",
"",
1420 TL(
"&Vehicles"),
"",
"",
1425 TL(
"&Persons"),
"",
"",
1430 TL(
"Person&Trips"),
"",
"",
1435 TL(
"&Walks"),
"",
"",
1440 TL(
"Ri&des"),
"",
"",
1445 TL(
"&Containers"),
"",
"",
1450 TL(
"Tra&nsports"),
"",
"",
1455 TL(
"Trans&hips"),
"",
"",
1460 TL(
"Stop&s"),
"",
"",
1465 TL(
"&EdgeDatas"),
"",
"",
1470 TL(
"E&dgeRelDatas"),
"",
"",
1475 TL(
"Edge&TAZRel"),
"",
"",
1480 new FXMenuSeparator(fileMenu);
1483 TL(
"Lock selected elements"),
"",
TL(
"selected elements"),
1487 new FXMenuSeparator(fileMenu);
1490 TL(
"Lock all elements"),
"",
TL(
"all elements"),
1494 TL(
"Unlock all elements"),
"",
TL(
"Unlock all elements"),
1502 menuCheckLockJunctions->remHotKey(parseHotKey(
'j'));
1503 menuCheckLockEdges->remHotKey(parseHotKey(
'e'));
1504 menuCheckLockLanes->remHotKey(parseHotKey(
'l'));
1505 menuCheckLockConnections->remHotKey(parseHotKey(
'c'));
1506 menuCheckLockCrossings->remHotKey(parseHotKey(
'r'));
1507 menuCheckLockWalkingAreas->remHotKey(parseHotKey(
'g'));
1508 menuCheckLockAdditionals->remHotKey(parseHotKey(
'a'));
1509 menuCheckLockTAZs->remHotKey(parseHotKey(
't'));
1510 menuCheckLockWires->remHotKey(parseHotKey(
'w'));
1511 menuCheckLockPolygons->remHotKey(parseHotKey(
'p'));
1512 menuCheckLockPOIs->remHotKey(parseHotKey(
'o'));
1513 menuCheckLockJpsWalkableAreas->remHotKey(parseHotKey(
'n'));
1514 menuCheckLockJpsObstacles->remHotKey(parseHotKey(
'b'));
1516 menuCheckLockRoutes->remHotKey(parseHotKey(
'r'));
1517 menuCheckLockVehicles->remHotKey(parseHotKey(
'v'));
1518 menuCheckLockPersons->remHotKey(parseHotKey(
'p'));
1519 menuCheckLockPersonTrips->remHotKey(parseHotKey(
't'));
1520 menuCheckLockWalks->remHotKey(parseHotKey(
'w'));
1521 menuCheckLockRides->remHotKey(parseHotKey(
'd'));
1522 menuCheckLockContainers->remHotKey(parseHotKey(
'c'));
1523 menuCheckLockTransports->remHotKey(parseHotKey(
'n'));
1524 menuCheckLockTranships->remHotKey(parseHotKey(
'h'));
1525 menuCheckLockStops->remHotKey(parseHotKey(
's'));
1527 menuCheckLockEdgeDatas->remHotKey(parseHotKey(
'e'));
1528 menuCheckLockEdgeRelDatas->remHotKey(parseHotKey(
'd'));
1529 menuCheckLockEdgeTAZRels->remHotKey(parseHotKey(
't'));
1535 menuCheckLockJunctions->enable();
1536 menuCheckLockEdges->enable();
1537 menuCheckLockLanes->enable();
1538 menuCheckLockConnections->enable();
1539 menuCheckLockCrossings->enable();
1540 menuCheckLockWalkingAreas->enable();
1541 menuCheckLockAdditionals->enable();
1542 menuCheckLockTAZs->enable();
1543 menuCheckLockWires->enable();
1544 menuCheckLockPolygons->enable();
1545 menuCheckLockPOIs->enable();
1546 menuCheckLockJpsWalkableAreas->enable();
1547 menuCheckLockJpsObstacles->enable();
1549 menuCheckLockJunctions->addHotKey(parseHotKey(
'j'));
1550 menuCheckLockEdges->addHotKey(parseHotKey(
'e'));
1551 menuCheckLockLanes->addHotKey(parseHotKey(
'l'));
1552 menuCheckLockConnections->addHotKey(parseHotKey(
'c'));
1553 menuCheckLockCrossings->addHotKey(parseHotKey(
'r'));
1554 menuCheckLockWalkingAreas->addHotKey(parseHotKey(
'g'));
1555 menuCheckLockAdditionals->addHotKey(parseHotKey(
'a'));
1556 menuCheckLockTAZs->addHotKey(parseHotKey(
't'));
1557 menuCheckLockWires->addHotKey(parseHotKey(
'w'));
1558 menuCheckLockPolygons->addHotKey(parseHotKey(
'p'));
1559 menuCheckLockPOIs->addHotKey(parseHotKey(
'o'));
1560 menuCheckLockJpsWalkableAreas->addHotKey(parseHotKey(
'n'));
1561 menuCheckLockJpsObstacles->addHotKey(parseHotKey(
'b'));
1563 menuCheckLockJunctions->show();
1564 menuCheckLockEdges->show();
1565 menuCheckLockLanes->show();
1566 menuCheckLockConnections->show();
1567 menuCheckLockCrossings->show();
1568 menuCheckLockWalkingAreas->show();
1569 menuCheckLockAdditionals->show();
1570 menuCheckLockTAZs->show();
1571 menuCheckLockWires->show();
1572 menuCheckLockPolygons->show();
1573 menuCheckLockPOIs->show();
1574 menuCheckLockJpsWalkableAreas->show();
1575 menuCheckLockJpsObstacles->show();
1582 menuCheckLockJunctions->disable();
1583 menuCheckLockEdges->disable();
1584 menuCheckLockLanes->disable();
1585 menuCheckLockConnections->disable();
1586 menuCheckLockCrossings->disable();
1587 menuCheckLockWalkingAreas->disable();
1588 menuCheckLockAdditionals->disable();
1589 menuCheckLockTAZs->disable();
1590 menuCheckLockPolygons->disable();
1591 menuCheckLockPOIs->disable();
1592 menuCheckLockJpsWalkableAreas->disable();
1593 menuCheckLockJpsObstacles->disable();
1595 menuCheckLockJunctions->hide();
1596 menuCheckLockEdges->hide();
1597 menuCheckLockLanes->hide();
1598 menuCheckLockConnections->hide();
1599 menuCheckLockCrossings->hide();
1600 menuCheckLockWalkingAreas->hide();
1601 menuCheckLockAdditionals->hide();
1602 menuCheckLockTAZs->hide();
1603 menuCheckLockWires->hide();
1604 menuCheckLockPolygons->hide();
1605 menuCheckLockPOIs->hide();
1606 menuCheckLockJpsWalkableAreas->hide();
1607 menuCheckLockJpsObstacles->hide();
1614 menuCheckLockRoutes->enable();
1615 menuCheckLockVehicles->enable();
1616 menuCheckLockPersons->enable();
1617 menuCheckLockPersonTrips->enable();
1618 menuCheckLockWalks->enable();
1619 menuCheckLockRides->enable();
1620 menuCheckLockContainers->enable();
1621 menuCheckLockTransports->enable();
1622 menuCheckLockTranships->enable();
1623 menuCheckLockStops->enable();
1625 menuCheckLockRoutes->addHotKey(parseHotKey(
'r'));
1626 menuCheckLockVehicles->addHotKey(parseHotKey(
'v'));
1627 menuCheckLockPersons->addHotKey(parseHotKey(
'p'));
1628 menuCheckLockPersonTrips->addHotKey(parseHotKey(
't'));
1629 menuCheckLockWalks->addHotKey(parseHotKey(
'w'));
1630 menuCheckLockRides->addHotKey(parseHotKey(
'd'));
1631 menuCheckLockContainers->addHotKey(parseHotKey(
'c'));
1632 menuCheckLockTransports->addHotKey(parseHotKey(
'n'));
1633 menuCheckLockTranships->addHotKey(parseHotKey(
'h'));
1634 menuCheckLockStops->addHotKey(parseHotKey(
's'));
1636 menuCheckLockRoutes->show();
1637 menuCheckLockVehicles->show();
1638 menuCheckLockPersons->show();
1639 menuCheckLockPersonTrips->show();
1640 menuCheckLockWalks->show();
1641 menuCheckLockRides->show();
1642 menuCheckLockContainers->show();
1643 menuCheckLockTransports->show();
1644 menuCheckLockTranships->show();
1645 menuCheckLockStops->show();
1652 menuCheckLockRoutes->disable();
1653 menuCheckLockVehicles->disable();
1654 menuCheckLockPersons->disable();
1655 menuCheckLockPersonTrips->disable();
1656 menuCheckLockWalks->disable();
1657 menuCheckLockRides->disable();
1658 menuCheckLockContainers->disable();
1659 menuCheckLockTransports->disable();
1660 menuCheckLockTranships->disable();
1661 menuCheckLockStops->disable();
1663 menuCheckLockRoutes->hide();
1664 menuCheckLockVehicles->hide();
1665 menuCheckLockPersons->hide();
1666 menuCheckLockPersonTrips->hide();
1667 menuCheckLockWalks->hide();
1668 menuCheckLockRides->hide();
1669 menuCheckLockContainers->hide();
1670 menuCheckLockTransports->hide();
1671 menuCheckLockTranships->hide();
1672 menuCheckLockStops->hide();
1679 menuCheckLockEdgeDatas->enable();
1680 menuCheckLockEdgeRelDatas->enable();
1681 menuCheckLockEdgeTAZRels->enable();
1683 menuCheckLockEdgeDatas->addHotKey(parseHotKey(
'e'));
1684 menuCheckLockEdgeRelDatas->addHotKey(parseHotKey(
'd'));
1685 menuCheckLockEdgeTAZRels->addHotKey(parseHotKey(
't'));
1687 menuCheckLockEdgeDatas->show();
1688 menuCheckLockEdgeRelDatas->show();
1689 menuCheckLockEdgeTAZRels->show();
1696 menuCheckLockEdgeDatas->disable();
1697 menuCheckLockEdgeRelDatas->disable();
1698 menuCheckLockEdgeTAZRels->disable();
1700 menuCheckLockEdgeDatas->hide();
1701 menuCheckLockEdgeRelDatas->hide();
1702 menuCheckLockEdgeTAZRels->hide();
1708 menuCheckLockJunctions->setCheck(TRUE);
1709 menuCheckLockEdges->setCheck(TRUE);
1710 menuCheckLockLanes->setCheck(TRUE);
1711 menuCheckLockConnections->setCheck(TRUE);
1712 menuCheckLockCrossings->setCheck(TRUE);
1713 menuCheckLockWalkingAreas->setCheck(TRUE);
1714 menuCheckLockAdditionals->setCheck(TRUE);
1715 menuCheckLockTAZs->setCheck(TRUE);
1716 menuCheckLockWires->setCheck(TRUE);
1717 menuCheckLockPolygons->setCheck(TRUE);
1718 menuCheckLockPOIs->setCheck(TRUE);
1719 menuCheckLockJpsWalkableAreas->setCheck(TRUE);
1720 menuCheckLockJpsObstacles->setCheck(TRUE);
1721 menuCheckLockRoutes->setCheck(TRUE);
1722 menuCheckLockVehicles->setCheck(TRUE);
1723 menuCheckLockPersons->setCheck(TRUE);
1724 menuCheckLockPersonTrips->setCheck(TRUE);
1725 menuCheckLockWalks->setCheck(TRUE);
1726 menuCheckLockRides->setCheck(TRUE);
1727 menuCheckLockContainers->setCheck(TRUE);
1728 menuCheckLockTransports->setCheck(TRUE);
1729 menuCheckLockTranships->setCheck(TRUE);
1730 menuCheckLockStops->setCheck(TRUE);
1731 menuCheckLockEdgeDatas->setCheck(TRUE);
1732 menuCheckLockEdgeRelDatas->setCheck(TRUE);
1733 menuCheckLockEdgeTAZRels->setCheck(TRUE);
1739 menuCheckLockJunctions->setCheck(FALSE);
1740 menuCheckLockEdges->setCheck(FALSE);
1741 menuCheckLockLanes->setCheck(FALSE);
1742 menuCheckLockConnections->setCheck(FALSE);
1743 menuCheckLockCrossings->setCheck(FALSE);
1744 menuCheckLockWalkingAreas->setCheck(FALSE);
1745 menuCheckLockAdditionals->setCheck(FALSE);
1746 menuCheckLockTAZs->setCheck(FALSE);
1747 menuCheckLockWires->setCheck(FALSE);
1748 menuCheckLockPolygons->setCheck(FALSE);
1749 menuCheckLockPOIs->setCheck(FALSE);
1750 menuCheckLockJpsWalkableAreas->setCheck(FALSE);
1751 menuCheckLockJpsObstacles->setCheck(FALSE);
1752 menuCheckLockRoutes->setCheck(FALSE);
1753 menuCheckLockVehicles->setCheck(FALSE);
1754 menuCheckLockPersons->setCheck(FALSE);
1755 menuCheckLockPersonTrips->setCheck(FALSE);
1756 menuCheckLockWalks->setCheck(FALSE);
1757 menuCheckLockRides->setCheck(FALSE);
1758 menuCheckLockContainers->setCheck(FALSE);
1759 menuCheckLockTransports->setCheck(FALSE);
1760 menuCheckLockTranships->setCheck(FALSE);
1761 menuCheckLockStops->setCheck(FALSE);
1762 menuCheckLockEdgeDatas->setCheck(FALSE);
1763 menuCheckLockEdgeRelDatas->setCheck(FALSE);
1764 menuCheckLockEdgeTAZRels->setCheck(FALSE);
1772 menuCheckLockJunctions->setCheck(value);
1774 menuCheckLockEdges->setCheck(value);
1776 menuCheckLockLanes->setCheck(value);
1778 menuCheckLockConnections->setCheck(value);
1780 menuCheckLockCrossings->setCheck(value);
1782 menuCheckLockWalkingAreas->setCheck(value);
1784 menuCheckLockAdditionals->setCheck(value);
1786 menuCheckLockTAZs->setCheck(value);
1788 menuCheckLockWires->setCheck(value);
1790 menuCheckLockPolygons->setCheck(value);
1792 menuCheckLockJpsWalkableAreas->setCheck(value);
1794 menuCheckLockJpsObstacles->setCheck(value);
1798 menuCheckLockPOIs->setCheck(value);
1800 menuCheckLockRoutes->setCheck(value);
1802 menuCheckLockVehicles->setCheck(value);
1804 menuCheckLockPersons->setCheck(value);
1806 menuCheckLockPersonTrips->setCheck(value);
1808 menuCheckLockWalks->setCheck(value);
1810 menuCheckLockRides->setCheck(value);
1812 menuCheckLockContainers->setCheck(value);
1814 menuCheckLockTransports->setCheck(value);
1816 menuCheckLockTranships->setCheck(value);
1820 menuCheckLockStops->setCheck(value);
1822 menuCheckLockEdgeDatas->setCheck(value);
1824 menuCheckLockEdgeRelDatas->setCheck(value);
1826 menuCheckLockEdgeTAZRels->setCheck(value);
1833 FXuint code = 0, mods = 0;
1834 if (Unicode::isAlphaNumeric(character)) {
1836 code = fxucs2keysym(Unicode::toLower(character));
1838 return MKUINT(code, mods);
1846 myApplicationWindow(applicationWindow) {
1854 TL(
"Compute Junctions"),
"F5",
TL(
"Compute junction shape and logic."),
1857 TL(
"Compute Junctions with volatile options"),
"Shift+F5",
TL(
"Compute junction shape and logic using volatile junctions."),
1860 TL(
"Clean Junctions"),
"F6",
TL(
"Remove solitary junctions."),
1863 TL(
"Join Selected Junctions"),
"F7",
TL(
"Join selected junctions into a single junction."),
1866 TL(
"Clean invalid crossings"),
"F8",
TL(
"Clear invalid crossings."),
1869 mySeparatorCheckBox =
new FXMenuSeparator(processingMenu);
1872 TL(
"Recompute Network in Data Mode"),
"",
"",
1875 menuCheckRecomputeDataMode->setCheck(myApplicationWindow->getApp()->reg().readBoolEntry(
"NETEDIT",
"RecomputeData",
true));
1878 TL(
"Compute demand"),
"F5",
TL(
"Computes demand elements."),
1881 TL(
"Clean routes"),
"F6",
TL(
"Removes routes without vehicles."),
1884 TL(
"Join routes"),
"F7",
TL(
"Joins routes with the same edges."),
1887 TL(
"Adjust person plans"),
"Shift+F7",
TL(
"Adjust person plans (start/end positions, arrival positions, etc.)"),
1890 TL(
"Clean invalid route elements"),
"F8",
TL(
"Clear elements with an invalid path (routes, Trips, Flows...)."),
1893 myOptionsSeparator =
new FXMenuSeparator(processingMenu);
1896 TL(
"Sumo options"),
"Shift+F10",
TL(
"Configure sumo Options."),
1899 myOptionsSeparator =
new FXMenuSeparator(processingMenu);
1902 TL(
"Options"),
"F10",
TL(
"Configure netedit Options."),
1910 computeNetwork->enable();
1911 computeNetworkVolatile->enable();
1912 cleanJunctions->enable();
1913 joinJunctions->enable();
1914 clearInvalidCrossings->enable();
1915 mySeparatorCheckBox->enable();
1916 menuCheckRecomputeDataMode->enable();
1918 computeNetwork->show();
1919 computeNetworkVolatile->show();
1920 cleanJunctions->show();
1921 joinJunctions->show();
1922 clearInvalidCrossings->show();
1923 mySeparatorCheckBox->show();
1924 menuCheckRecomputeDataMode->show();
1931 computeNetwork->disable();
1932 computeNetworkVolatile->disable();
1933 cleanJunctions->disable();
1934 joinJunctions->disable();
1935 clearInvalidCrossings->disable();
1937 computeNetwork->hide();
1938 computeNetworkVolatile->hide();
1939 cleanJunctions->hide();
1940 joinJunctions->hide();
1941 clearInvalidCrossings->hide();
1948 computeDemand->enable();
1949 cleanRoutes->enable();
1950 joinRoutes->enable();
1951 adjustPersonPlans->enable();
1952 clearInvalidDemandElements->enable();
1954 computeDemand->show();
1955 cleanRoutes->show();
1957 adjustPersonPlans->show();
1958 clearInvalidDemandElements->show();
1965 computeDemand->disable();
1966 cleanRoutes->disable();
1967 joinRoutes->disable();
1968 adjustPersonPlans->disable();
1969 clearInvalidDemandElements->disable();
1971 computeDemand->hide();
1972 cleanRoutes->hide();
1974 adjustPersonPlans->hide();
1975 clearInvalidDemandElements->hide();
1993 myOptionsSeparator->show();
1999 myOptionsSeparator->hide();
2007 myApplicationWindow(applicationWindow) {
2015 TL(
"&Junctions"),
"Shift+J",
TL(
"Open a dialog for locating a Junction."),
2018 TL(
"&Edges"),
"Shift+E",
TL(
"Open a dialog for locating an Edge."),
2021 TL(
"&WalkingAreas"),
"Shift+W",
TL(
"Open a dialog for locating a Walking Area."),
2024 TL(
"&Vehicles"),
"Shift+V",
TL(
"Open a dialog for locating a Vehicle."),
2027 TL(
"&Persons"),
"Shift+P",
TL(
"Open a dialog for locating a Person."),
2030 TL(
"&Containers"),
"Shift+C",
TL(
"Open a dialog for locating a Container."),
2033 TL(
"&Route"),
"Shift+R",
TL(
"Open a dialog for locating a Route."),
2036 TL(
"&Stops"),
"Shift+S",
TL(
"Open a dialog for locating a Stop."),
2039 TL(
"&TLS"),
"Shift+T",
TL(
"Open a dialog for locating a Traffic Light."),
2042 TL(
"&Additional"),
"Shift+A",
TL(
"Open a dialog for locating an Additional Structure."),
2045 TL(
"P&oI"),
"Shift+O",
TL(
"Open a dialog for locating a Point of Interest."),
2048 TL(
"Po&lygon"),
"Shift+L",
TL(
"Open a dialog for locating a Polygon."),
2057 myApplicationWindow(applicationWindow) {
2063 for (
const auto& tool : myPythonTools) {
2071 const std::map<std::string, FXMenuPane*>& menuPaneToolMaps) {
2074 for (
const auto& templateTool : templateTools) {
2075 if (templateTool.name ==
"netdiff") {
2076 myPythonTools.push_back(
new GNENetDiffTool(myApplicationWindow, templateTool.pythonPath,
2077 menuPaneToolMaps.at(templateTool.subfolder)));
2078 }
else if (menuPaneToolMaps.count(templateTool.subfolder) > 0) {
2079 myPythonTools.push_back(
new GNEPythonTool(myApplicationWindow, templateTool.pythonPath,
2080 templateTool.templateStr, menuPaneToolMaps.at(templateTool.subfolder)));
2082 myPythonTools.push_back(
new GNEPythonTool(myApplicationWindow, templateTool.pythonPath,
2083 templateTool.templateStr, toolsMenu));
2092 for (
const auto& tool : myPythonTools) {
2093 if (tool->getMenuCommand() == menuCommand) {
2105 for (
const auto& tool : myPythonTools) {
2106 if (tool->getMenuCommand() == menuCommand) {
2118 for (
const auto& tool : myPythonTools) {
2119 if (tool->getMenuCommand() == menuCommand) {
2121 tool->postProcessing();
2133 myApplicationWindow(applicationWindow) {
2142 TL(
"Show Status Line"),
TL(
"Toggle this Status Bar on/off."),
2143 statusbar, FXWindow::ID_TOGGLESHOWN);
2145 TL(
"Show Message Window"),
TL(
"Toggle the Message Window on/off."),
2146 messageWindow, FXWindow::ID_TOGGLESHOWN);
2147 new FXMenuSeparator(windowsMenu);
2149 TL(
"Clear Message Window"),
"",
TL(
"Clear the Message Window."),
2158 myApplicationWindow(applicationWindow) {
2167 new FXMenuSeparator(helpMenu);
2176 new FXMenuSeparator(helpMenu);
2186 myApplicationWindow(applicationWindow) {
2192 networkMode->show();
2200 showSupermodeCommands();
2214 TL(
"&Network"),
"F2",
TL(
"Select network mode."),
2217 TL(
"&Demand"),
"F3",
TL(
"Select demand mode."),
2220 TL(
"&Data"),
"F4",
TL(
"Select data mode."),
2229 myApplicationWindow(applicationWindow),
2230 mySumoConfigFile(sumoConfigFile) {
2238 auto& sumoOptions = myApplicationWindow->getSumoOptions();
2240 sumoOptions.resetDefault();
2241 neteditOptions.resetDefault();
2243 sumoOptions.resetWritable();
2244 neteditOptions.resetWritable();
2246 XERCES_CPP_NAMESPACE::SAXParser parser;
2247 parser.setValidationScheme(XERCES_CPP_NAMESPACE::SAXParser::Val_Never);
2248 parser.setDisableDefaultEntityResolution(
true);
2252 parser.setDocumentHandler(&handler);
2253 parser.setErrorHandler(&handler);
2257 WRITE_WARNING(
TLF(
"There are invalid options in sumo configuration '%'.", mySumoConfigFile));
2259 }
catch (
const XERCES_CPP_NAMESPACE::XMLException& e) {
2264 sumoOptions.relocateFiles(mySumoConfigFile);
2268 neteditOptions.resetWritable();
2269 if (sumoOptions.getString(
"net-file").size() > 0) {
2270 myApplicationWindow->getFileBucketHandler()->setDefaultFilenameFile(
FileBucket::Type::NETWORK, sumoOptions.getString(
"net-file"));
2272 WRITE_ERROR(
TLF(
"No network defined in sumo configuration '%'.", mySumoConfigFile));
2275 neteditOptions.set(
"additional-files", sumoOptions.getString(
"additional-files"));
2276 neteditOptions.set(
"route-files", sumoOptions.getString(
"route-files"));
2285 myNetconvertConfigFile(sumoConfigFile) {
2294 neteditOptions.resetDefault();
2295 neteditOptions.resetWritable();
2297 XERCES_CPP_NAMESPACE::SAXParser parser;
2298 parser.setValidationScheme(XERCES_CPP_NAMESPACE::SAXParser::Val_Never);
2299 parser.setDisableDefaultEntityResolution(
true);
2303 parser.setDocumentHandler(&handler);
2304 parser.setErrorHandler(&handler);
2308 WRITE_WARNING(
TLF(
"There are invalid options in netconvert configuration '%'.", myNetconvertConfigFile));
2310 }
catch (
const XERCES_CPP_NAMESPACE::XMLException& e) {
2315 neteditOptions.relocateFiles(myNetconvertConfigFile);
2317 neteditOptions.resetWritable();
2327 myApplicationWindow(applicationWindow),
2328 myNeteditConfigFile(neteditConfigFile) {
2337 const bool ignoreAdditionalElements = neteditOptions.getBool(
"ignore.additionalelements");
2338 const bool ignoreRouteElements = neteditOptions.getBool(
"ignore.routeelements");
2340 neteditOptions.resetDefault();
2342 neteditOptions.resetWritable();
2344 XERCES_CPP_NAMESPACE::SAXParser parser;
2345 parser.setValidationScheme(XERCES_CPP_NAMESPACE::SAXParser::Val_Never);
2346 parser.setDisableDefaultEntityResolution(
true);
2350 parser.setDocumentHandler(&handler);
2351 parser.setErrorHandler(&handler);
2355 WRITE_WARNING(
TLF(
"There are invalid options in netedit configuration '%'.", myNeteditConfigFile));
2357 }
catch (
const XERCES_CPP_NAMESPACE::XMLException& e) {
2362 neteditOptions.relocateFiles(myNeteditConfigFile);
2365 myApplicationWindow->getFileBucketHandler()->setDefaultFilenameFile(
FileBucket::Type::SUMO_CONFIG, neteditOptions.getString(
"sumocfg-file"));
2366 myApplicationWindow->getFileBucketHandler()->setDefaultFilenameFile(
FileBucket::Type::NETWORK, neteditOptions.getString(
"sumo-net-file"));
2367 myApplicationWindow->getFileBucketHandler()->setDefaultFilenameFile(
FileBucket::Type::TLS, neteditOptions.getString(
"tls-file"));
2368 myApplicationWindow->getFileBucketHandler()->setDefaultFilenameFile(
FileBucket::Type::EDGETYPE, neteditOptions.getString(
"edgetypes-file"));
2370 neteditOptions.resetWritable();
2372 if (ignoreAdditionalElements) {
2373 neteditOptions.resetDefault(
"additional-files");
2375 if (ignoreRouteElements) {
2376 neteditOptions.resetDefault(
"route-files");
2388 myApplicationWindow(applicationWindow),
2389 myNeteditOptions(neteditOptions),
2390 mySumoOptions(sumoOptions) {
2403 for (
auto& bucketMap : myBuckets) {
2404 for (
auto& bucket : bucketMap.second) {
2445 auto defaultBucket = getDefaultBucket(type);
2449 for (
auto& bucket : myBuckets.at(type)) {
2450 if (bucket->getFilename() == filename) {
2462 const auto bucketType = getDefaultBucket(type)->getType();
2466 auto bucket =
new FileBucket(bucketType, filename);
2467 myBuckets.at(bucketType).push_back(bucket);
2491 for (
auto& bucket : myBuckets.at(type)) {
2492 if (bucket->getFilename() == filename) {
2507 if (isFilenameDefined(type)) {
2508 return getDefaultFolder(type);
2518 if (isFilenameDefined(type)) {
2519 return getDefaultFilename(type) + sufix;
2528 return myBuckets.at(type).front();
2535 for (
auto& bucketMap : myBuckets) {
2536 for (
auto& bucket : bucketMap.second) {
2537 if ((bucket->getFilename() == filename) && (bucket->getType() == type)) {
2545 if (getDefaultFilename(type).empty() && (filename.size() > 0)) {
2546 setDefaultFilenameFile(type, filename);
2547 return getDefaultBucket(type);
2550 auto bucket =
new FileBucket(type, filename);
2551 myBuckets.at(type).push_back(bucket);
2560const std::vector<FileBucket*>&
2562 return myBuckets.at(type);
2568 return myBuckets.at(type).front()->getFilename();
2574 std::string prefix = getDefaultFilename(type);
2577 if (prefix.empty()) {
2579 }
else if ((prefix.back() ==
'\'') ||
2580 (prefix.back() ==
'\\') ||
2581 (prefix.back() ==
'/')) {
2594 myBuckets.at(type).front()->setFilename(filename);
2602 return (myBuckets.at(type).front()->getFilename().size() > 0);
2608 for (
const auto& bucketPair : myBuckets) {
2609 bucketPair.second.front()->setFilename(
"");
2630 myNeteditOptions.resetWritable();
2631 mySumoOptions.resetWritable();
2633 const bool sumoAdditionals = (myApplicationWindow->getEditMenuCommands().loadAdditionalsInSUMOGUI->getCheck() == TRUE);
2634 const bool sumoDemandElements = (myApplicationWindow->getEditMenuCommands().loadDemandInSUMOGUI->getCheck() == TRUE);
2636 if (sumoconfig.size() > 0) {
2637 myNeteditOptions.set(
"sumocfg-file", sumoconfig);
2639 myNeteditOptions.resetDefault(
"sumocfg-file");
2642 if (neteditconfig.size() > 0) {
2643 myNeteditOptions.set(
"configuration-file", neteditconfig);
2645 myNeteditOptions.resetDefault(
"configuration-file");
2648 if (networkFile.size() > 0) {
2649 myNeteditOptions.set(
"sumo-net-file", networkFile);
2650 mySumoOptions.set(
"net-file", networkFile);
2652 myNeteditOptions.resetDefault(
"sumo-net-file");
2653 mySumoOptions.resetDefault(
"net-file");
2656 if (additional.size() > 0) {
2657 myNeteditOptions.set(
"additional-files", additional);
2659 myNeteditOptions.resetDefault(
"additional-files");
2662 if (demandFile.size() > 0) {
2663 myNeteditOptions.set(
"route-files", demandFile);
2665 myNeteditOptions.resetDefault(
"route-files");
2668 if (sumoDemandElements && (demandFile.size() > 0)) {
2669 mySumoOptions.set(
"route-files", demandFile);
2671 mySumoOptions.resetDefault(
"route-files");
2674 if (data.size() > 0) {
2675 myNeteditOptions.set(
"data-files", data);
2677 myNeteditOptions.resetDefault(
"data-files");
2680 if (meanData.size() > 0) {
2681 myNeteditOptions.set(
"meandata-files", meanData);
2683 myNeteditOptions.resetDefault(
"meandata-files");
2686 if (sumoAdditionals && (additionalMeanData.size() > 0)) {
2687 mySumoOptions.set(
"additional-files", additionalMeanData);
2689 mySumoOptions.resetDefault(
"additional-files");
2692 if (edgeType.size() > 0) {
2693 myNeteditOptions.set(
"edgetypes-file", edgeType);
2695 myNeteditOptions.resetDefault(
"edgetypes-file");
2698 if (tls.size() > 0) {
2699 myNeteditOptions.set(
"tls-file", tls);
2701 myNeteditOptions.resetDefault(
"tls-file");
2714 for (
const auto& type : types) {
2715 for (
const auto& bucket : myBuckets.at(type)) {
2716 if ((bucket->getFilename().size() > 0) && (bucket->isDefaultBucket() || (bucket->getNumElements() > 0))) {
2717 result.append(bucket->getFilename() +
",");
2722 if (result.size() > 0) {
2733 size_t bucketIndex = 0;
2734 while (bucketIndex < myBuckets.at(type).size()) {
2735 auto bucket = myBuckets.at(type).at(bucketIndex);
2736 if (bucket->isEmpty() && (bucket->isDefaultBucket() ==
false)) {
2738 myBuckets.at(type).erase(myBuckets.at(type).begin() + bucketIndex);
2749 std::string filename = getDefaultFilename(type);
2750 if (filename.size() > 0) {
2751 if (filename.back() ==
'.') {
2752 filename.pop_back();
2754 for (
const auto& invalidExtension : invalidExtensions) {
2901 if (str.length() < suffix.length()) {
2904 return str.compare(str.length() - suffix.length(), suffix.length(), suffix) == 0;
Supermode
@brie enum for supermodes
@ NETWORK
Network mode (Edges, junctions, etc..)
@ DATA
Data mode (edgeData, LaneData etc..)
@ DEMAND
Demand mode (Routes, Vehicles etc..)
@ MID_GNE_NETWORKVIEWOPTIONS_AUTOOPPOSITEEDGES
automatically create opposite edge
@ MID_GNE_NETGENERATE
netgenerate dialog
@ MID_HOTKEY_SHIFT_F10_SUMOOPTIONSMENU
open SUMO options menu (used in netedit)
@ MID_HOTKEY_SHIFT_F7_ADJUST_PERSON_PLANS
Adjust person plans (start und end positions, arrival positions, etc.)
@ MID_HOTKEY_SHIFT_F5_COMPUTEJUNCTIONS_VOLATILE
compute junctions with volatile options
@ MID_HOTKEY_CTRL_SHIFT_B_SAVEDATAELEMENTS
save Data Elements
@ MID_HOTKEY_F3_SUPERMODE_DEMAND
select demand supermode in netedit
@ MID_GNE_UNDOLISTDIALOG
open undo list dialog
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWALLPERSONPLANS
show all person plans
@ MID_GNE_UNLOCK_ALLELEMENTS
unlock all element
@ MID_HOTKEY_SHIFT_S_LOCATESTOP
Locate stop - button.
@ MID_HOTKEY_CTRL_T_OPENNETEDIT_OPENSUMO
Open current SUMO simulation/network in netedit, or current netedit simulation/network in SUMO.
@ MID_GNE_DATAVIEWOPTIONS_TAZRELDRAWING
toggle TAZRel drawing
@ MID_GNE_TOGGLE_COMPUTE_NETWORK_DATA
enable/disable computing after switchin between supermodes
@ MID_GNE_TOOLBARFILE_SAVEADDITIONALELEMENTS_UNIFIED
save additionals unified
@ MID_TOOLBAREDIT_LOADADDITIONALS
load additionals in sumo-gui/netedit after press ctrl+T
@ MID_HOTKEY_U_MODE_DECAL_TYPEDISTRIBUTION
hotkey for mode decal AND type distribution
@ MID_GNE_NETWORKVIEWOPTIONS_DRAWSPREADVEHICLES
Draw vehicles in begin position or spread in lane.
@ MID_HOTKEY_CTRL_Y_REDO
Undo.
@ MID_HOTKEY_CTRL_SHIFT_H_SAVEEDGETYPES
save Edge Types
@ MID_GNE_NETWORKVIEWOPTIONS_MOVEELEVATION
move elevation instead of x,y
@ MID_GNE_TOOLBARFILE_RELOAD_EDGETYPES
reload edge types
@ MID_GNE_NETWORKVIEWOPTIONS_HIDECONNECTIONS
hide connections
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWCONNECTIONS
show connections
@ MID_GNE_DATAVIEWOPTIONS_TAZRELONLYTO
toggle draw TAZRel only to
@ MID_HOTKEY_CTRL_W_CLOSESIMULATION
Close simulation - ID.
@ MID_GNE_LOCK_ALLELEMENTS
lock all element
@ MID_HOTKEY_F7_JOIN_SELECTEDJUNCTIONS_ROUTES
join selected junctions in network mode and normalice demand element ids in demand mode
@ MID_HOTKEY_CTRL_D_SINGLESIMULATIONSTEP_OPENDEMANDELEMENTS
Perform a single simulation step in SUMO and open Demand Elements in netedit.
@ MID_HOTKEY_F5_COMPUTE_NETWORK_DEMAND
compute Network in network mode and Demand elements in demand mode
@ MID_HOTKEY_CTRL_O_OPENSIMULATION_OPENNETWORK
Open simulation in SUMO and open network in netedit.
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWTAZELEMENTS
show TAZ elements
@ MID_GNE_DEMANDVIEWOPTIONS_LOCKPERSON
lock person
@ MID_HOTKEY_Z_MODE_TAZ_TAZREL
hotkey for mode editing TAZ and TAZRel
@ MID_HOTKEY_F9_EDIT_VIEWSCHEME
open edit scheme menu
@ MID_GNE_DEMANDVIEWOPTIONS_TOGGLEDRAWJUNCTIONSHAPE
toggle draw junction shape
@ MID_GNE_LOCK_SELECTEDELEMENTS
lock selected element
@ MID_GNE_TOOLBARFILE_SAVESUMOCONFIG_AS
save SUMOConfig as
@ MID_GNE_TOOLBARFILE_RELOAD_TLSPROGRAMS
reload TLS Programs
@ MID_HOTKEY_A_MODE_STARTSIMULATION_ADDITIONALS_STOPS
hotkey for start simulation in SUMO and set editing mode additionals AND stops in netedit
@ MID_GNE_TOOLBARFILE_OPENMEANDATAELEMENTS
open meanData file
@ MID_CHANGELOG
changelog button
@ MID_GNE_TOOLBARFILE_OPENFOREIGN
open foreign network
@ MID_GNE_TOOLBARFILE_RELOAD_NETEDITCONFIG
reload neteditConfig
@ MID_HOTKEY_CTRL_B_EDITBREAKPOINT_OPENDATAELEMENTS
Edit simulation breakpoints in SUMO and open Data Elements in netedit.
@ MID_TOOLBAREDIT_LOADDEMAND
load demand in sumo-gui/netedit after press ctrl+T
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWGRID
show grid
@ MID_HOTKEY_F1_ONLINEDOCUMENTATION
open online documentation
@ MID_HOTKEY_CTRL_SHIFT_D_SAVEDEMANDELEMENTS
Save Demand Elements.
@ MID_HOTKEY_CTRL_R_RELOAD
Reload the previously loaded simulation.
@ MID_HOTKEY_CTRL_S_STOPSIMULATION_SAVENETWORK
Stop the simulation in SUMO and save network in netedit.
@ MID_HOTKEY_D_MODE_SINGLESIMULATIONSTEP_DELETE
hotkey for perform a single simulation step in SUMO and set delete mode in netedit
@ MID_GNE_NETWORKVIEWOPTIONS_CHAINEDGES
create edges in chain mode
@ MID_HOTKEY_F10_OPTIONSMENU
open options menu
@ MID_HOTKEY_F11_FRONTELEMENT
set/clear front element
@ MID_HOTKEY_F8_CLEANINVALID_CROSSINGS_DEMANDELEMENTS
clean invalid crossings in network mode and demand elements in demand mode
@ MID_GNE_DATAVIEWOPTIONS_SHOWDEMANDELEMENTS
show demand elements
@ MID_GNE_TOOLBARFILE_RELOAD_MEANDATAELEMENTS
reload meanDatas
@ MID_GNE_TOOLBARFILE_SAVEMEANDATAELEMENTS_UNIFIED
save meanDatas unified
@ MID_HOTKEY_CTRL_A_STARTSIMULATION_OPENADDITIONALELEMENTS
Start the simulation in SUMO and open Additionals Elements in netedit.
@ MID_HOTKEY_C_MODE_CONNECT_CONTAINER
hotkey for mode connecting lanes AND container
@ MID_HOTKEY_H_MODE_PROHIBITION_CONTAINERPLAN
hotkey for mode prohibition AND container plan
@ MID_HOTKEY_SHIFT_O_LOCATEPOI
Locate poi - button.
@ MID_HOTKEY_W_MODE_WIRE_ROUTEDISTRIBUTION
hotkey for mode editing overhead wires AND route distributions
@ MID_HOTKEY_T_MODE_TLS_TYPE
hotkey for mode editing TLS AND Vehicle Types
@ MID_GNE_DEMANDVIEWOPTIONS_HIDESHAPES
hide shapes
@ MID_GNE_TOGGLE_UNDOREDO
enable/disable undo-redo
@ MID_HOTKEY_SHIFT_A_LOCATEADDITIONAL
Locate additional structure - button.
@ MID_GNE_TOOLBARFILE_SAVETLSPROGRAMS_AS
save TLS Programs as
@ MID_GNE_DATAVIEWOPTIONS_SHOWADDITIONALS
show additionals
@ MID_HOTKEY_SHIFT_R_LOCATEROUTE
Locate route - button.
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWBUBBLES
show junctions as bubbles
@ MID_HOTKEY_SHIFT_W_LOCATEWALKINGAREA
Locate edge - button.
@ MID_GNE_TOOLBARFILE_RELOAD_DEMANDELEMENTS
reload demand elements
@ MID_GNE_NETWORKVIEWOPTIONS_EXTENDSELECTION
extend selection
@ MID_HOTKEY_CTRL_I_EDITVIEWPORT
Open viewport editor.
@ MID_RECENTFILE
Loads a file previously loaded.
@ MID_HOTKEY_S_MODE_STOPSIMULATION_SELECT
hotkey for stop simulation in SUMO and set select mode in netedit
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWSUBADDITIONALS
show sub-additionals
@ MID_HOTKEY_SHIFT_C_LOCATECONTAINER
Locate container - button.
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWALLCONTAINERPLANS
show all container plans
@ MID_HOTKEY_CTRL_SHIFT_N_NEWWINDOW
open a new window (SUMO AND netedit)
@ MID_HOTKEY_SHIFT_V_LOCATEVEHICLE
Locate vehicle - button.
@ MID_HOTKEY_F4_SUPERMODE_DATA
select data supermode in netedit
@ MID_HOTKEY_SHIFT_L_LOCATEPOLY
Locate polygons - button.
@ MID_HOTKEY_F6_CLEAN_SOLITARYJUNCTIONS_UNUSEDROUTES
clean junctions without edges in network mode and unused routes in demand mode
@ MID_HOTKEY_CTRL_K_OPENTLSPROGRAMS
Load file with TLS Programs.
@ MID_GNE_LOCK_ELEMENT
lock element (general, used if we press directly the menuCommand in the toolbar)
@ MID_GNE_TOOLBARFILE_SAVENETEDITCONFIG_AS
save neteditConfig as
@ MID_HOTKEY_SHIFT_E_LOCATEEDGE
Locate edge - button.
@ MID_CLEARMESSAGEWINDOW
Clear simulation output.
@ MID_HOTKEY_R_MODE_CROSSING_ROUTE_EDGERELDATA
hotkey for mode editing crossing, routes and edge rel datas
@ MID_TUTORIAL
tutorial button
@ MID_GNE_TOGGLE_UNDOREDO_LOADING
enable/disable undo-redo during loading
@ MID_GNE_DATAVIEWOPTIONS_TAZDRAWFILL
toggle draw TAZ fill
@ MID_HOTKEY_L_MODE_PERSONPLAN
hotkey for mode person plan
@ MID_HOTKEY_V_MODE_VEHICLE
hotkey for mode create vehicles
@ MID_HOTKEY_SHIFT_P_LOCATEPERSON
Locate person - button.
@ MID_GNE_TOOLBARFILE_SAVEDATAELEMENTS_UNIFIED
save data elements unified
@ MID_HOTKEY_I_MODE_INSPECT
hotkey for mode inspecting object attributes
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWDEMANDELEMENTS
show demand elements
@ MID_HOTKEY_SHIFT_J_LOCATEJUNCTION
Locate junction - button.
@ MID_HOTKEY_CTRL_SHIFT_E_SAVENETEDITCONFIG
save netedit Config
@ MID_GNE_TOOLBARFILE_SAVEEDGETYPES_AS
save edgeTypes as
@ MID_HOTKEYS
hotkeys button
@ MID_GNE_DEMANDVIEWOPTIONS_HIDENONINSPECTED
hide non-inspected demand element
@ MID_GNE_TOOLBARFILE_RELOADNETWORK
reload only network
@ MID_GNE_NETWORKVIEWOPTIONS_MERGEAUTOMATICALLY
don't ask before merging junctions
@ MID_HOTKEY_CTRL_SHIFT_M_SAVEMEANDATAELEMENTS
save Mean Datas
@ MID_GNE_NETWORKVIEWOPTIONS_CHANGEALLPHASES
change all phases
@ MID_GNE_DATAVIEWOPTIONS_SHOWSHAPES
show shapes
@ MID_HOTKEY_E_MODE_EDGE_EDGEDATA
hotkey for mode adding edges AND edgeDatas
@ MID_GNE_DATAVIEWOPTIONS_TAZRELONLYFROM
toggle draw TAZRel only from
@ MID_GNE_TOOLBARFILE_RELOAD_SUMOCONFIG
reload SUMOConfig
@ MID_GNE_NETWORKVIEWOPTIONS_TOGGLEDRAWJUNCTIONSHAPE
toggle draw junction shape
@ MID_HOTKEY_CTRL_SHIFT_O_OPENNETCONVERTFILE
open Netconvert file
@ MID_HOTKEY_CTRL_M_OPENSUMOCONFIG
open sumo config
@ MID_GNE_TOOLBARFILE_SAVENETWORK_AS
save network as
@ MID_GNE_DEMANDVIEWOPTIONS_DRAWSPREADVEHICLES
Draw vehicles in begin position or spread in lane.
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWOVERLAPPEDROUTES
show overlapped routes
@ MID_HOTKEY_CTRL_Z_UNDO
Redo.
@ MID_GNE_TOOLBARFILE_SAVEDEMANDELEMENTS_UNIFIED
save demand elements unified
@ MID_FEEDBACK
feedback button
@ MID_HOTKEY_CTRL_H_APPSETTINGS_OPENEDGETYPES
open app setting dialog in SUMO and open edge type files in netedit
@ MID_HOTKEY_CTRL_SHIFT_S_SAVESUMOCONFIG
save SUMOConfig (SUMO AND netedit)
@ MID_HOTKEY_F12_ABOUT
open about dialog
@ MID_HOTKEY_CTRL_E_EDITSELECTION_LOADNETEDITCONFIG
Edit selection in SUMO and load neteditConfig in netedit.
@ MID_GNE_TOOLBARFILE_RELOAD_DATAELEMENTS
reload data elements
@ MID_HOTKEY_CTRL_SHIFT_K_SAVETLS
save TLS Programs
@ MID_HOTKEY_SHIFT_T_LOCATETLS
Locate TLS - button.
@ MID_HOTKEY_M_MODE_MOVE_MEANDATA
hotkey for mode moving element AND mean data
@ MID_HOTKEY_F2_SUPERMODE_NETWORK
select network supermode in netedit
@ MID_GNE_DEMANDVIEWOPTIONS_LOCKCONTAINER
lock container
@ MID_HOTKEY_CTRL_N_OPENNETWORK_NEWNETWORK
open network in SUMO and create new empty network in netedit
@ MID_GNE_TOOLBARFILE_RELOAD_ADDITIONALELEMENTS
reload additionals
@ MID_GNE_NETWORKVIEWOPTIONS_SELECTEDGES
select edges
@ MID_GNE_SAVEJOINEDJUNCTIONS
save joined junctions
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWTRIPS
show all trips
@ MID_GNE_NETWORKVIEWOPTIONS_TOGGLEGRID
show grid
@ MID_GNE_TOOLBARFILE_SAVEJUPEDSIMELEMENTS_AS
save JuPedSim as
@ MID_HOTKEY_P_MODE_POLYGON_PERSON
hotkey for mode creating polygons
@ MID_HOTKEY_CTRL_L_SAVEASPLAINXML
save network as plain XML
@ MID_HOTKEY_CTRL_SHIFT_A_SAVEADDITIONALELEMENTS
Save Additional Elements.
#define GUIDesignToolbarMenuBarNetedit
design for top toolbar (file, edit, processing...) used only in netedit (due supermodes buttons)
#define GUIDesignToolBarGrip
design for toolbar grip (used to change the position of toolbar with mouse)
#define GUIDesignToolBar
design for default toolbar
#define GUIDesignToolBarRaisedNext
design for first toolbar shell positioned in the next position of dock
#define GUIDesignToolBarRaisedSupermodes
design for toolbar supermodes (grip + buttons)
#define GUIDesignToolBarRaisedSame
design for toolbar
@ DATAMODE_CHECKBOX_SHOWADDITIONALS
@ NETWORKMODE_CHECKBOX_BUBBLES
@ DATAMODE_CHECKBOX_TAZRELONLYFROM
@ SAVE_ADDITIONALELEMENTS
@ DEMANDMODE_CHECKBOX_HIDENONINSPECTEDDEMANDELEMENTS
@ NETWORKMODE_CHECKBOX_HIDECONNECTIONS
@ DEMANDMODE_CHECKBOX_SHOWTRIPS
@ COMMONMODE_CHECKBOX_TOGGLEDRAWJUNCTIONSHAPE
@ DATAMODE_CHECKBOX_SHOWSHAPES
@ NETWORKMODE_CHECKBOX_SELECTEDGES
@ COMMONMODE_CHECKBOX_SHOWDEMANDELEMENTS
@ DEMANDMODE_CHECKBOX_LOCKPERSON
@ NETWORKMODE_CHECKBOX_MERGEAUTOMATICALLY
@ NETWORKMODE_CHECKBOX_APPLYTOALLPHASES
@ DATAMODE_CHECKBOX_TAZRELONLYTO
@ NETWORKMODE_CHECKBOX_AUTOSELECTJUNCTIONS
@ DATAMODE_CHECKBOX_TAZRELDRAWING
@ NETWORKMODE_CHECKBOX_SHOWCONNECTIONS
@ DEMANDMODE_CHECKBOX_SHOWPERSONPLANS
@ DEMANDMODE_CHECKBOX_HIDESHAPES
@ DATAMODE_CHECKBOX_TAZDRAWFILL
@ NETWORKMODE_CHECKBOX_ELEVATION
@ COMMONMODE_CHECKBOX_SPREADVEHICLE
@ DEMANDMODE_CHECKBOX_LOCKCONTAINER
@ NETWORKMODE_CHECKBOX_SHOWSUBADDITIONALS
@ NETWORKMODE_CHECKBOX_SHOWTAZELEMENTS
@ NETWORKMODE_CHECKBOX_CHAIN
@ DEMANDMODE_CHECKBOX_SHOWOVERLAPPEDROUTES
@ COMMONMODE_CHECKBOX_TOGGLEGRID
@ DEMANDMODE_CHECKBOX_SHOWCONTAINERPLANS
@ NETWORKMODE_CHECKBOX_TWOWAY
#define WRITE_WARNING(msg)
@ SUMO_TAG_EDGEREL
a relation between two edges
@ SUMO_TAG_POI
begin/end of the description of a Point of interest
@ GNE_TAG_POIGEO
Point of interest over view with GEO attributes.
@ SUMO_TAG_CONNECTION
connectioon between two lanes
@ SUMO_TAG_WALKINGAREA
walking area for pedestrians
@ SUMO_TAG_JUNCTION
begin/end of the description of a junction
@ SUMO_TAG_CROSSING
crossing between edges for pedestrians
@ SUMO_TAG_POLY
begin/end of the description of a polygon
@ SUMO_TAG_LANE
begin/end of the description of a single lane
@ GNE_TAG_POILANE
Point of interest over Lane.
@ GNE_TAG_JPS_OBSTACLE
polygon used for draw juPedSim obstacles
@ SUMO_TAG_TAZREL
a relation between two TAZs
@ GNE_TAG_JPS_WALKABLEAREA
polygon used for draw juPedSim walkable areas
@ SUMO_TAG_EDGE
begin/end of the description of an edge
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
void removeElement(const bool isTemplate)
remove element
void addElement(const bool isTemplate)
function related with Elements
Type
Files that this bucket can save.
static const std::vector< FileBucket::Type > types
vector with all types managed in this get bucket handler
static const std::vector< FileBucket::Type > prefixes
vector with all types and prefixes managed in this get bucket handler
std::string parseFilenames(const std::vector< FileBucket::Type > types) const
parse filenames
std::string getConfigDirectory() const
get current config directory (if we defined a netedit, sumo or netconvert config)
~FileBucketHandler()
destructor
void resetDefaultFilenames()
brief set default files for all buckets
std::string getDefaultFilename(const FileBucket::Type type) const
functions related with filenames
const std::vector< FileBucket * > & getFileBuckets(const FileBucket::Type type) const
get vector with all fileBuckets related with the given file type
std::map< FileBucket::Type, std::vector< FileBucket * > > myBuckets
map with the buckets
bool isFilenameDefined(const FileBucket::Type type) const
check if at least we have an additional file defined
void unregisterAC(const GNEAttributeCarrier *AC)
delete AC
void updateOptions()
update options
std::string getConfigFilePrefix(const std::string &sufix) const
get current config patter (if we defined a netedit, sumo or netconvert config)
std::string getDefaultFolder(const FileBucket::Type type) const
get default folder associated with the given tipe
FileBucket * getDefaultBucket(const FileBucket::Type type) const
functions related with buckets
std::string getPrefix(FileBucket::Type type, const std::vector< std::string > invalidExtensions) const
get prefix of the given filename
void registerAC(const GNEAttributeCarrier *AC)
register AC
FileBucket * updateAC(const GNEAttributeCarrier *AC, const std::string &filename)
update filename vinculated with this AC
bool checkFilename(const GNEAttributeCarrier *AC, const std::string &filename) const
check if the given filename can be assigned to the given AC
FileBucketHandler(GNEApplicationWindow *applicationWindow, OptionsCont &neteditOptions, OptionsCont &sumoOptions)
constructor
void removeEmptyBuckets()
removed empty buckets
FileBucket * getBucket(const FileBucket::Type type, const std::string &filename, const bool create)
get bucket
void setDefaultFilenameFile(const FileBucket::Type type, const std::string &filename)
brief set default additional file
bool loadNetconvertConfig()
load netconvert config
GNENetconvertConfigHandler(const std::string &file)
Constructor.
GNENeteditConfigHandler(GNEApplicationWindow *applicationWindow, const std::string &neteditConfigFile)
Constructor.
bool loadNeteditConfig()
load netedit config
GNESumoConfigHandler(GNEApplicationWindow *applicationWindow, const std::string &sumoConfigFile)
Constructor.
bool loadSumoConfig()
load SUMO config
virtual FileBucket * getFileBucket() const =0
get reference to fileBucket in which save this AC
const std::string getID() const override
get ID (all Attribute Carriers have one)
bool isTemplate() const
check if this AC is template
const GNETagProperties * getTagProperty() const
get tagProperty associated with this Attribute Carrier
bool isPlanTransport() const
return true if tag correspond to a transport
bool isContainer() const
return true if tag correspond to a container element
bool isTAZElement() const
return true if tag correspond to a TAZ element
bool isNetworkElement() const
network elements
bool isRoute() const
return true if tag correspond to a route element
bool isVehicle() const
return true if tag correspond to a vehicle element
bool isPlanStopContainer() const
return true if tag correspond to a container stop plan
SumoXMLTag getTag() const
get Tag vinculated with this attribute Property
bool isPlanPersonTrip() const
return true if tag correspond to a person trip plan
bool isFileCompatible(FileBucket::Type file) const
file
bool isWireElement() const
return true if tag correspond to a Wire element
bool saveInParentFile() const
element is saved in the parent file
bool isPlanRide() const
return true if tag correspond to a ride plan
bool isAdditionalElement() const
return true if tag correspond to an additional element (note: this include TAZ, shapes and wires)
bool isPlanStopPerson() const
return true if tag correspond to a person stop plan
bool isVehicleStop() const
return true if tag correspond to a vehicle stop element
bool isPerson() const
return true if tag correspond to a person element
bool isPlanWalk() const
return true if tag correspond to a walk plan
bool isPlanTranship() const
return true if tag correspond to a tranship
long onCmdToggleShowDemandElementsNetwork(FXObject *, FXSelector, void *)
toggle show demand elements (network)
const GNEViewNetHelper::DataViewOptions & getDataViewOptions() const
get data view options
long onCmdToggleShowDemandElementsData(FXObject *, FXSelector, void *)
toggle show demand elements (data)
long onCmdToggleTAZDrawFill(FXObject *, FXSelector, void *)
toggle TAZdrawFill
long onCmdToggleDrawSpreadVehicles(FXObject *, FXSelector, void *)
toggle draw vehicles in begin position or spread in lane
long onCmdToggleShowConnections(FXObject *, FXSelector, void *)
toggle show connections
long onCmdToggleShowTAZElements(FXObject *, FXSelector, void *)
toggle show TAZ elements
long onCmdToggleMoveElevation(FXObject *, FXSelector, void *)
toggle move elevation
long onCmdToggleShowAllPersonPlans(FXObject *, FXSelector, void *)
toggle show all person plans in super mode demand
long onCmdToggleTAZRelOnlyTo(FXObject *, FXSelector, void *)
toggle TAZRez only to
const GNEViewNetHelper::NetworkViewOptions & getNetworkViewOptions() const
get network view options
long onCmdToggleChainEdges(FXObject *, FXSelector, void *)
toggle chain edges
long onCmdToggleLockContainer(FXObject *, FXSelector, void *)
toggle lock container in super mode demand
long onCmdToggleShowGrid(FXObject *, FXSelector, void *)
toggle show grid
long onCmdToggleHideNonInspecteDemandElements(FXObject *, FXSelector, void *)
toggle hide non inspected demand elements
long onCmdToggleDrawJunctionShape(FXObject *, FXSelector, void *)
toggle draw junction shape
long onCmdToggleShowShapes(FXObject *, FXSelector, void *)
toggle show shapes in super mode data
long onCmdToggleMergeAutomatically(FXObject *, FXSelector, void *)
toggle warn for merge
long onCmdToggleExtendSelection(FXObject *, FXSelector, void *)
toggle extend selection
long onCmdToggleShowOverlappedRoutes(FXObject *, FXSelector, void *)
toggle hide non inspected demand elements
long onCmdToggleAutoOppositeEdge(FXObject *, FXSelector, void *)
toggle autoOpposite edge
long onCmdToggleChangeAllPhases(FXObject *, FXSelector, void *)
toggle change all phases
long onCmdToggleTAZRelDrawing(FXObject *, FXSelector, void *)
toggle TAZRel drawing
long onCmdToggleShowJunctionBubbles(FXObject *, FXSelector, void *)
toggle show junction bubbles
long onCmdToggleShowAdditionalSubElements(FXObject *, FXSelector, void *)
toggle show additional sub-elements
long onCmdToggleShowAllContainerPlans(FXObject *, FXSelector, void *)
toggle show all container plans in super mode demand
long onCmdToggleTAZRelOnlyFrom(FXObject *, FXSelector, void *)
toggle TAZRez only from
long onCmdToggleShowAdditionals(FXObject *, FXSelector, void *)
toggle show additionals in super mode data
long onCmdToggleLockPerson(FXObject *, FXSelector, void *)
toggle lock person in super mode demand
long onCmdToggleSelectEdges(FXObject *, FXSelector, void *)
toggle select edges
long onCmdToggleShowTrips(FXObject *, FXSelector, void *)
toggle show all trips in super mode demand
long onCmdToggleHideShapes(FXObject *, FXSelector, void *)
toggle hide shapes in super mode demand
const GNEViewNetHelper::DemandViewOptions & getDemandViewOptions() const
get demand view options
long onCmdToggleHideConnections(FXObject *, FXSelector, void *)
toggle hide connections
static MFXMenuCheckIcon * buildFXMenuCheckboxIcon(FXComposite *p, const std::string &text, const std::string &shortcut, const std::string &info, FXIcon *icon, FXObject *tgt, FXSelector sel)
build menu checkbox with icon
static FXMenuCommand * buildFXMenuCommandRecentFile(FXComposite *p, const std::string &text, FXObject *tgt, FXSelector sel)
build menu command (for recent files)
static FXMenuCheck * buildFXMenuCheckbox(FXComposite *p, const std::string &text, const std::string &info, FXObject *tgt, FXSelector sel)
build menu checkbox
static FXMenuCommand * buildFXMenuCommand(FXComposite *p, const std::string &text, FXIcon *icon, FXObject *tgt, FXSelector sel, const bool disable=false)
build menu command
static FXMenuCommand * buildFXMenuCommandShortcut(FXComposite *p, const std::string &text, const std::string &shortcut, const std::string &info, FXIcon *icon, FXObject *tgt, FXSelector sel)
build menu command
static FXIcon * getIcon(const GUIIcon which)
returns a icon previously defined in the enum GUIIcon
A logging window for the gui.
A storage for options typed value containers)
static OptionsCont & getOptions()
Retrieves the options.
A SAX-Handler for loading options.
bool errorOccurred() const
Returns the information whether an error occurred.
static std::string replace(std::string str, const std::string &what, const std::string &by)
Replaces all occurrences of the second string by the third string within the first string.
static std::string transcode(const XMLCh *const data, int length=-1)
converts a 0-terminated XMLCh* array (usually UTF-16, stemming from Xerces) into std::string in UTF-8
static std::string transcodeToLocal(const std::string &utf8String)
convert a string from UTF-8 to the local codepage
void hideDataViewOptionsMenuChecks()
hide all options menu checks
void buildDataViewOptionsMenuChecks(FXMenuPane *editMenu)
build menu checks
DataViewOptions(GNEApplicationWindow *applicationWindow)
default constructor
void updateShortcuts()
update shortcuts (alt+X)
DemandViewOptions(GNEApplicationWindow *applicationWindow)
default constructor
void hideDemandViewOptionsMenuChecks()
hide all options menu checks
void buildDemandViewOptionsMenuChecks(FXMenuPane *editMenu)
build menu checks
void updateShortcuts()
update shortcuts (alt+X)
void hideNetworkViewOptionsMenuChecks()
hide all options menu checks
NetworkViewOptions(GNEApplicationWindow *applicationWindow)
default constructor
void updateShortcuts()
update shortcuts (alt+X)
void buildNetworkViewOptionsMenuChecks(FXMenuPane *editMenu)
build menu checks
EditMenuCommands(GNEApplicationWindow *applicationWindow)
constructor
DemandViewOptions demandViewOptions
demand view options
NetworkViewOptions networkViewOptions
network view options
void buildUndoRedoMenuCommands(FXMenuPane *editMenu)
build undo-redo menu commands
DataViewOptions dataViewOptions
data view options
void buildViewMenuCommands(FXMenuPane *editMenu)
build view menu commands
void buildOpenSUMOMenuCommands(FXMenuPane *editMenu)
build open sumo menu commands
void buildFrontElementMenuCommand(FXMenuPane *editMenu)
build front element commands
GNEApplicationWindow * myApplicationWindow
pointer to current GNEApplicationWindow
void setJuPedSimView()
set JuPedSim view
void setDefaultView()
set default view
void buildEdgeTypeSection(FXMenuPane *menuPane)
build edge type section
void buildDemandSection(FXMenuPane *menuPane)
build demand section
void buildFileMenuCommands(FXMenuPane *fileMenu, FXMenuPane *fileMenuNEEDITConfig, FXMenuPane *fileMenuSumoConfig, FXMenuPane *fileMenuTLS, FXMenuPane *fileMenuEdgeTypes, FXMenuPane *fileMenuAdditionals, FXMenuPane *fileMenuDemandElements, FXMenuPane *fileMenuDataElements, FXMenuPane *fileMenuMeanDataElements)
build menu commands
FileMenuCommands(GNEApplicationWindow *applicationWindow)
constructor
void buildDataSection(FXMenuPane *menuPane)
build data section
void buildTrafficLightSection(FXMenuPane *menuPane)
build traffic light section
void enableMenuCascades()
enable menu cascades
void buildAdditionalSection(FXMenuPane *menuPane)
build additional section
void buildMeanDataSection(FXMenuPane *menuPane)
build meanData section
void disableMenuCascades()
disable menu cascades
void buildNeteditConfigSection(FXMenuPane *menuPane)
build netedit config section
void buildSumoConfigSection(FXMenuPane *menuPane)
build SUMO Config section
void buildHelpMenuCommands(FXMenuPane *helpMenu)
build menu commands
HelpMenuCommands(GNEApplicationWindow *applicationWindow)
constructor
void buildLocateMenuCommands(FXMenuPane *locateMenu)
build menu commands
LocateMenuCommands(GNEApplicationWindow *applicationWindow)
constructor
void buildLockMenuCommands(FXMenuPane *editMenu)
build menu commands
void hideNetworkLockMenuCommands()
show network processing menu commands
void removeHotkeys()
remove hotkeys
void hideDemandLockMenuCommands()
show demand processing menu commands
void hideDataLockMenuCommands()
show data processing menu commands
void showDataLockMenuCommands()
show data processing menu commands
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 unlockAll()
unlock all
LockMenuCommands(GNEApplicationWindow *applicationWindow)
constructor
void editLocking(const GNEAttributeCarrier *AC, const FXbool value)
lock or unlock object based in a tag property
void buildCommonMenuCommands(FXMenuPane *modesMenu)
build menu commands
CommonMenuCommands(const ModesMenuCommands *modesMenuCommandsParent)
constructor
void buildDataMenuCommands(FXMenuPane *modesMenu)
build menu commands
void hideDataMenuCommands()
hide all menu commands
DataMenuCommands(const ModesMenuCommands *modesMenuCommandsParent)
constructor
void showDataMenuCommands()
show all menu commands
void buildDemandMenuCommands(FXMenuPane *modesMenu)
build menu commands
void showDemandMenuCommands()
show all menu commands
DemandMenuCommands(const ModesMenuCommands *modesMenuCommandsParent)
constructor
void hideDemandMenuCommands()
hide all menu commands
void buildNetworkMenuCommands(FXMenuPane *modesMenu)
build menu commands
void hideNetworkMenuCommands()
hide all menu commands
NetworkMenuCommands(const ModesMenuCommands *modesMenuCommandsParent)
constructor
void showNetworkMenuCommands()
show all menu commands
struct for modes menu commands
CommonMenuCommands commonMenuCommands
Common Menu Commands.
ModesMenuCommands(GNEApplicationWindow *applicationWindow)
constructor
void buildModesMenuCommands(FXMenuPane *modesMenu)
build modes menu commands
DemandMenuCommands demandMenuCommands
Demand Menu Commands.
void setDefaultView(Supermode supermode)
set default view
GNEApplicationWindow * myApplicationWindow
pointer to current GNEApplicationWindow
void setJuPedSimView(Supermode supermode)
set JuPedSim view
DataMenuCommands dataMenuCommands
Data Menu Commands.
NetworkMenuCommands networkMenuCommands
Network Menu Commands.
void showDataProcessingMenuCommands()
show data processing menu commands
void showDemandProcessingMenuCommands()
show demand processing menu commands
void showSeparator()
show separator
void hideSeparator()
hide separator
void hideDemandProcessingMenuCommands()
show demand processing menu commands
void hideDataProcessingMenuCommands()
show data processing menu commands
void buildProcessingMenuCommands(FXMenuPane *processingMenu)
build menu commands
ProcessingMenuCommands(GNEApplicationWindow *applicationWindow)
constructor
void showNetworkProcessingMenuCommands()
show network processing menu commands
void hideNetworkProcessingMenuCommands()
show network processing menu commands
SupermodeCommands(GNEApplicationWindow *applicationWindow)
constructor
void buildSupermodeCommands(FXMenuPane *editMenu)
build menu commands
void showSupermodeCommands()
show all menu commands
void setJuPedSimView()
set JuPedSim view
void setDefaultView()
set default view
WindowsMenuCommands(GNEApplicationWindow *applicationWindow)
constructor
void buildWindowsMenuCommands(FXMenuPane *windowsMenu, FXStatusBar *statusbar, GUIMessageWindow *messageWindow)
build menu commands
static bool toggleEditOptionsDemand(GNEViewNet *viewNet, const MFXCheckableButton *menuCheck, FXObject *obj, FXSelector sel)
toggle edit options Demand menu commands (called in GNEApplicationWindow::onCmdToggleEditOptions)
static bool toggleEditOptionsData(GNEViewNet *viewNet, const MFXCheckableButton *menuCheck, FXObject *obj, FXSelector sel)
toggle edit options Data menu commands (called in GNEApplicationWindow::onCmdToggleEditOptions)
static bool stringEndsWith(const std::string &str, const std::string &suffix)
check if a string ends with another string
static bool toggleEditOptionsNetwork(GNEViewNet *viewNet, const MFXCheckableButton *menuCheck, 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 * menuCheckMergeAutomatically
checkable button to we should't warn about merging junctions
MFXCheckableButton * menuCheckShowJunctionBubble
checkable button to show connection as bubble in "Move" mode.
MFXCheckableButton * menuCheckShowAdditionalSubElements
checkable button to show additional sub-elements
MFXCheckableButton * menuCheckChangeAllPhases
checkable button to set change all phases
MFXCheckableButton * menuCheckExtendSelection
checkable button to extend to edge nodes