404FXIMPLEMENT(
GNEApplicationWindow, FXMainWindow, GNEApplicationWindowMap, ARRAYNUMBER(GNEApplicationWindowMap))
414#pragma warning(disable: 4355)
419 myConfigPattern(configPattern),
420 myToolbarsGrip(this),
422 myFileMenuCommands(this),
423 myModesMenuCommands(this),
424 myEditMenuCommands(this),
425 myLockMenuCommands(this),
426 myProcessingMenuCommands(this),
427 myLocateMenuCommands(this),
428 myToolsMenuCommands(this),
429 myWindowsMenuCommands(this),
430 mySupermodeCommands(this),
431 myTitlePrefix(
"NETEDIT " VERSION_STRING) {
440 a->setTooltipTime(1000000000);
441 a->setTooltipPause(1000000000);
452 WRITE_ERROR(
TL(
"DEBUG: GNEApplicationWindow::dependentBuild called twice"));
508 gCurrentFolder = getApp()->reg().readStringEntry(
"SETTINGS",
"basedir",
"");
510 FXMainWindow::create();
524 FXint textWidth = getApp()->getNormalFont()->getTextWidth(
"8", 1) * 22;
530 myOnlineMaps[
"GeoHack"] =
"https://geohack.toolforge.org/geohack.php?params=%lat;%lon_scale:1000";
531 myOnlineMaps[
"GoogleSat"] =
"https://www.google.com/maps?ll=%lat,%lon&t=h&z=18";
532 myOnlineMaps[
"OSM"] =
"https://www.openstreetmap.org/?mlat=%lat&mlon=%lon&zoom=18&layers=M";
535 show(PLACEMENT_DEFAULT);
537 if (getApp()->reg().readIntEntry(
"SETTINGS",
"maximized", 0) == 1) {
589 getApp()->reg().writeStringEntry(
"SETTINGS",
"basedir",
gCurrentFolder.text());
591 getApp()->reg().writeIntEntry(
"SETTINGS",
"maximized", 1);
593 getApp()->reg().writeIntEntry(
"SETTINGS",
"maximized", 0);
633 FXFileDialog opendialog(
this,
TL(
"Open Netconvert Configuration"));
635 opendialog.setSelectMode(SELECTFILE_EXISTING);
640 if (opendialog.execute()) {
642 std::string file = opendialog.getFilename().text();
656 FXFileDialog opendialog(
this,
TL(
"Open Network"));
658 opendialog.setSelectMode(SELECTFILE_EXISTING);
659 opendialog.setPatternList(
"SUMO nets (*.net.xml,*.net.xml.gz)\nAll files (*)");
663 if (opendialog.execute()) {
665 const std::string file = opendialog.getFilename().text();
700 FXFileDialog opendialog(
this,
TL(
"Import Foreign Network"));
702 opendialog.setSelectMode(SELECTFILE_EXISTING);
703 FXString osmPattern(
"OSM net (*.osm.xml,*.osm)");
704 opendialog.setPatternText(0, osmPattern);
708 if (opendialog.execute()) {
710 std::string file = opendialog.getFilename().text();
714 if (osmPattern.contains(opendialog.getPattern())) {
717 oc.
set(
"osm-files", file);
718 oc.
set(
"geometry.remove",
"true");
719 oc.
set(
"ramps.guess",
"true");
720 oc.
set(
"junctions.join",
"true");
721 oc.
set(
"tls.guess-signals",
"true");
722 oc.
set(
"tls.discard-simple",
"true");
724 throw ProcessError(
"Attempted to import unknown file format '" + file +
"'.");
730 if (wizard->execute()) {
745 FXFileDialog opendialog(
this,
TL(
"Open SUMOConfig file"));
747 opendialog.setSelectMode(SELECTFILE_EXISTING);
748 opendialog.setPatternList(
"SUMOConfig files (*.sumocfg)\nAll files (*)");
752 if (opendialog.execute()) {
756 std::string file = opendialog.getFilename().text();
766 if (!confighandler.
parse()) {
784 if (file.size() > 0) {
790 if (!confighandler.
parse()) {
817 FXFileDialog opendialog(
this,
TL(
"Open TLS Programs file"));
819 opendialog.setSelectMode(SELECTFILE_EXISTING);
820 opendialog.setPatternList(
"TLSProgram files (*.xml,*.xml.gz)\nAll files (*)");
824 if (opendialog.execute()) {
828 std::string file = opendialog.getFilename().text();
879 FXFileDialog opendialog(
this,
TL(
"Load edgeType file"));
881 opendialog.setSelectMode(SELECTFILE_EXISTING);
882 opendialog.setPatternList(
"*.xml,*.xml.gz");
886 if (opendialog.execute()) {
898 for (
const auto& auxEdgeType : typeContainerAux) {
902 for (
const auto& laneType : auxEdgeType.second->laneTypeDefinitions) {
931 for (
const auto& auxEdgeType : typeContainerAux) {
935 for (
const auto& laneType : auxEdgeType.second->laneTypeDefinitions) {
967 myStatusbar->getStatusLine()->setText(
TL(
"Already loading!"));
971 std::string file((
const char*)fileData);
973 if (file.find(
".netccfg") != std::string::npos) {
1132 sender->handle(
this,
myAmLoading ? FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE),
nullptr);
1147 WRITE_DEBUG(
"Toggle load additionals in sumo-gui");
1167 about->show(PLACEMENT_OWNER);
1175 FXEvent*
event = (FXEvent*)ptr;
1177 setDNDData(FROM_CLIPBOARD, event->target,
string);
1221 if (ec->
net ==
nullptr) {
1233 GNEViewParent* viewParent =
new GNEViewParent(
myMDIClient,
myMDIMenu,
"NETEDIT VIEW",
this,
nullptr,
myNet, ec->
isNewNet,
myUndoList,
nullptr, MDI_TRACKING, 10, 10, 300, 200);
1235 viewParent->maximize();
1256 off.
set(getApp()->reg().readRealEntry(
"viewport",
"x"), getApp()->reg().readRealEntry(
"viewport",
"y"), getApp()->reg().readRealEntry(
"viewport",
"z"));
1261 getApp()->endWaitCursor();
1266 std::vector<std::string> additionalFiles = oc.
getStringVector(
"additional-files");
1270 bool errorCreatingElement =
false;
1272 for (
const auto& additionalFile : additionalFiles) {
1273 WRITE_MESSAGE(
"loading additionals and shapes from '" + additionalFile +
"'");
1279 if (!handler.
parse()) {
1280 WRITE_ERROR(
"Loading of " + additionalFile +
" failed.");
1284 oc.
set(
"additional-files", additionalFile);
1290 errorCreatingElement =
true;
1294 if (errorCreatingElement) {
1305 std::vector<std::string> demandElementsFiles = oc.
getStringVector(
"route-files");
1309 bool errorCreatingElement =
false;
1311 for (
const auto& demandElementsFile : demandElementsFiles) {
1312 WRITE_MESSAGE(
"Loading demand elements from '" + demandElementsFile +
"'");
1316 if (!handler.
parse()) {
1317 WRITE_ERROR(
"Loading of " + demandElementsFile +
" failed.");
1321 oc.
set(
"route-files", demandElementsFile);
1327 errorCreatingElement =
true;
1331 if (errorCreatingElement) {
1342 std::vector<std::string> dataElementsFiles = oc.
getStringVector(
"data-files");
1350 for (
const auto& dataElementsFile : dataElementsFiles) {
1351 WRITE_MESSAGE(
"Loading data elements from '" + dataElementsFile +
"'");
1355 if (!dataHandler.
parse()) {
1356 WRITE_ERROR(
"Loading of " + dataElementsFile +
" failed.");
1360 oc.
set(
"data-files", dataElementsFile);
1377 if (oc.
isSet(
"additionals-output")) {
1380 oc.
set(
"additional-files", oc.
getString(
"additionals-output"));
1383 if (oc.
isSet(
"demandelements-output")) {
1386 oc.
set(
"route-files", oc.
getString(
"demandelements-output"));
1389 if (oc.
isSet(
"dataelements-output")) {
1392 oc.
set(
"data-files", oc.
getString(
"dataelements-output"));
1423 myFileMenu =
new FXMenuPane(
this, LAYOUT_FIX_HEIGHT);
1437 TL(
"&Quit"),
"Ctrl+Q",
TL(
"Quit the Application."),
1521 getApp()->beginWaitCursor();
1638 if (
myNet !=
nullptr) {
1655 return getApp()->getDefaultCursor(DEF_ARROW_CURSOR);
1663 oc.
set(
"offset.disable-normalization",
"true");
1676 myStatusbar->getStatusLine()->setText(statusBarText.c_str());
1677 myStatusbar->getStatusLine()->setNormalText(statusBarText.c_str());
1688 std::string additionalsSavePath = oc.
getString(
"additional-files");
1689 std::string demandElementsSavePath = oc.
getString(
"route-files");
1690 std::string dataElementsSavePath = oc.
getString(
"data-files");
1692 WRITE_DEBUG(
"Opening FXMessageBox 'Volatile Recomputing'");
1694 answer = FXMessageBox::question(
myNet->
getViewNet()->getApp(), MBOX_YES_NO,
TL(
"Recompute with volatile options"),
1695 "Changes produced in the net due a recomputing with volatile options cannot be undone. Continue?");
1699 WRITE_DEBUG(
"Closed FXMessageBox 'Volatile Recomputing' with 'No'");
1700 }
else if (answer == 4) {
1701 WRITE_DEBUG(
"Closed FXMessageBox 'Volatile Recomputing' with 'ESC'");
1707 WRITE_DEBUG(
"Closed FXMessageBox 'Volatile Recomputing' with 'Yes'");
1711 if (oc.
getString(
"additional-files") ==
"") {
1713 WRITE_DEBUG(
"Opening FXMessageBox 'Save additionals before recomputing'");
1715 answer = FXMessageBox::question(
myNet->
getViewNet()->getApp(), MBOX_YES_NO,
TL(
"Save additionals before recomputing with volatile options"),
1716 "Would you like to save additionals before recomputing?");
1720 WRITE_DEBUG(
"Closed FXMessageBox 'Save additionals before recomputing' with 'No'");
1721 }
else if (answer == 4) {
1722 WRITE_DEBUG(
"Closed FXMessageBox 'Save additionals before recomputing' with 'ESC'");
1726 WRITE_DEBUG(
"Closed FXMessageBox 'Save additionals before recomputing' with 'Yes'");
1729 TL(
"Save demand element file"),
".xml",
1735 if (fileWithExtension !=
"") {
1738 oc.
set(
"additional-files", fileWithExtension);
1740 additionalsSavePath = oc.
getString(
"additional-files");
1745 if (oc.
getString(
"additional-files") ==
"") {
1747 additionalsSavePath = FXSystem::getTempDirectory().text() + std::string(
"/tmpAdditionalsNetedit.xml");
1750 getApp()->beginWaitCursor();
1755 WRITE_DEBUG(
"Opening FXMessageBox 'Error saving additionals before recomputing'");
1757 FXMessageBox::error(
this, MBOX_OK,
TL(
"Saving additionals in temporary folder failed!"),
"%s", e.what());
1759 WRITE_DEBUG(
"Closed FXMessageBox 'Error saving additionals before recomputing' with 'OK'");
1763 getApp()->endWaitCursor();
1768 additionalsSavePath =
"";
1773 if (oc.
getString(
"route-files") ==
"") {
1775 WRITE_DEBUG(
"Opening FXMessageBox 'Save demand elements before recomputing'");
1777 answer = FXMessageBox::question(
myNet->
getViewNet()->getApp(), MBOX_YES_NO,
TL(
"Save demand elements before recomputing with volatile options"),
1778 "Would you like to save demand elements before recomputing?");
1782 WRITE_DEBUG(
"Closed FXMessageBox 'Save demand elements before recomputing' with 'No'");
1783 }
else if (answer == 4) {
1784 WRITE_DEBUG(
"Closed FXMessageBox 'Save demand elements before recomputing' with 'ESC'");
1788 WRITE_DEBUG(
"Closed FXMessageBox 'Save demand elements before recomputing' with 'Yes'");
1791 TL(
"Save demand element file"),
".rou.xml",
1797 if (fileWithExtension !=
"") {
1800 oc.
set(
"route-files", fileWithExtension);
1802 demandElementsSavePath = oc.
getString(
"route-files");
1807 if (oc.
getString(
"route-files") ==
"") {
1809 demandElementsSavePath = FXSystem::getTempDirectory().text() + std::string(
"/tmpDemandElementsNetedit.xml");
1812 getApp()->beginWaitCursor();
1817 WRITE_DEBUG(
"Opening FXMessageBox 'Error saving demand elements before recomputing'");
1819 FXMessageBox::error(
this, MBOX_OK,
TL(
"Saving demand elements in temporary folder failed!"),
"%s", e.what());
1821 WRITE_DEBUG(
"Closed FXMessageBox 'Error saving demand elements before recomputing' with 'OK'");
1825 getApp()->endWaitCursor();
1830 demandElementsSavePath =
"";
1837 WRITE_DEBUG(
"Opening FXMessageBox 'Save data elements before recomputing'");
1839 answer = FXMessageBox::question(
myNet->
getViewNet()->getApp(), MBOX_YES_NO,
TL(
"Save data elements before recomputing with volatile options"),
1840 "Would you like to save data elements before recomputing?");
1844 WRITE_DEBUG(
"Closed FXMessageBox 'Save data elements before recomputing' with 'No'");
1845 }
else if (answer == 4) {
1846 WRITE_DEBUG(
"Closed FXMessageBox 'Save data elements before recomputing' with 'ESC'");
1850 WRITE_DEBUG(
"Closed FXMessageBox 'Save data elements before recomputing' with 'Yes'");
1853 TL(
"Save data element file"),
".rou.xml",
1859 if (fileWithExtension !=
"") {
1862 oc.
set(
"data-files", fileWithExtension);
1864 dataElementsSavePath = oc.
getString(
"data-files");
1871 dataElementsSavePath = FXSystem::getTempDirectory().text() + std::string(
"/tmpDataElementsNetedit.xml");
1874 getApp()->beginWaitCursor();
1879 WRITE_DEBUG(
"Opening FXMessageBox 'Error saving data elements before recomputing'");
1881 FXMessageBox::error(
this, MBOX_OK,
TL(
"Saving data elements in temporary folder failed!"),
"%s", e.what());
1883 WRITE_DEBUG(
"Closed FXMessageBox 'Error saving data elements before recomputing' with 'OK'");
1887 getApp()->endWaitCursor();
1892 dataElementsSavePath =
"";
1895 myNet->
computeNetwork(
this,
true,
true, additionalsSavePath, demandElementsSavePath, dataElementsSavePath);
2055 switch (FXSELID(sel)) {
2064 WRITE_DEBUG(
"Keys Shift + F5 (Compute with volatile options) pressed");
2079 WRITE_DEBUG(
"Key F8 (Clean invalid crossings) pressed");
2087 switch (FXSELID(sel)) {
2096 WRITE_DEBUG(
"Key F6 (RemoveUnusedRoutes) pressed");
2106 WRITE_DEBUG(
"Key F7 (AdjustPersonPlans) pressed");
2111 WRITE_DEBUG(
"Key F8 (CleanInvalidDemandElements) pressed");
2125 FXRegistry reg(
"SUMO netedit",
"netedit");
2126 std::string netedit =
"netedit";
2127 const char* sumoPath = getenv(
"SUMO_HOME");
2128 if (sumoPath !=
nullptr) {
2129 std::string newPath = std::string(sumoPath) +
"/bin/netedit";
2131 netedit =
"\"" + newPath +
"\"";
2134 std::string cmd = netedit;
2140 cmd =
"start /B \"\" " + cmd;
2182 FXRegistry reg(
"SUMO GUI",
"sumo-gui");
2188 std::string sumogui =
"sumo-gui";
2189 const char* sumoPath = getenv(
"SUMO_HOME");
2190 if (sumoPath !=
nullptr) {
2191 std::string newPath = std::string(sumoPath) +
"/bin/sumo-gui";
2193 sumogui =
"\"" + newPath +
"\"";
2202 cmd +=
" -a \"" + oc.
getString(
"additional-files") +
"\"";
2206 cmd +=
" -r \"" + oc.
getString(
"route-files") +
"\"";
2211 cmd +=
" --junction-taz";
2218 cmd =
"start /B \"\" " + cmd;
2354 sender->handle(
this,
myViewNet ? FXSEL(SEL_COMMAND, ID_ENABLE) : FXSEL(SEL_COMMAND, ID_DISABLE),
nullptr);
2393 WRITE_DEBUG(
"Disabled grid throught Ctrl+g hotkey");
2396 WRITE_DEBUG(
"Enabled grid throught Ctrl+g hotkey");
2412 WRITE_DEBUG(
"Disabled draw junction shape throught Ctrl+j hotkey");
2415 WRITE_DEBUG(
"Enabled draw junction shape throught Ctrl+j hotkey");
2452 if ((numericalKeyPressed < 0) || (numericalKeyPressed > 10)) {
2456 std::vector<MFXCheckableButton*> visibleMenuCommands;
2462 if (numericalKeyPressed >= (
int)visibleMenuCommands.size()) {
2467 visibleMenuCommands.at(numericalKeyPressed), numericalKeyPressed, obj, sel)) {
2470 visibleMenuCommands.at(numericalKeyPressed), numericalKeyPressed, obj, sel)) {
2473 visibleMenuCommands.at(numericalKeyPressed), numericalKeyPressed, obj, sel)) {
2506 return getApp()->reg().writeBoolEntry(
"NETEDIT",
"RecomputeData",
true);
2508 return getApp()->reg().writeBoolEntry(
"NETEDIT",
"RecomputeData",
false);
2525 if (wizard->execute()) {
2615 sender->handle(
this, FXSEL(SEL_COMMAND, ID_ENABLE),
nullptr);
2617 sender->handle(
this, FXSEL(SEL_COMMAND, ID_DISABLE),
nullptr);
2663 WRITE_DEBUG(
"Key Ctrl+F1 (Set Template) pressed");
2675 WRITE_DEBUG(
"Key Ctrl+F2 (Copy Template) pressed");
2687 WRITE_DEBUG(
"Key Ctrl+F3 (Clear Template) pressed");
2700 const std::string netExtension =
".net.xml";
2701 const std::string zipNetExtension = netExtension +
".gz";
2702 const std::string wildcard = (netExtension +
"\n*" + zipNetExtension);
2705 TL(
"Save Network as"), wildcard.c_str(),
2709 std::string fileWithExtension = file.text();
2711 const size_t pos = fileWithExtension.find(wildcard);
2712 if (pos != std::string::npos) {
2714 fileWithExtension.erase(pos, wildcard.length());
2722 if (fileWithExtension !=
"") {
2725 oc.
set(
"output-file", fileWithExtension);
2740 if (oc.
getString(
"output-file").size() > 0) {
2746 TL(
"Save plain-xml edge-file (other names will be deduced from this)"),
"",
2751 std::string prefix = file.text();
2754 prefix = prefix.substr(0, prefix.size() - 8);
2757 prefix = prefix.substr(0, prefix.size() - 1);
2759 getApp()->beginWaitCursor();
2764 WRITE_DEBUG(
"Opening FXMessageBox 'Error saving plainXML'");
2766 FXMessageBox::error(
this, MBOX_OK,
TL(
"Saving plain xml failed!"),
"%s", e.what());
2768 WRITE_DEBUG(
"Closed FXMessageBox 'Error saving plainXML' with 'OK'");
2772 getApp()->endWaitCursor();
2787 if (oc.
getString(
"output-file").size() > 0) {
2793 TL(
"Save joined-junctions"),
".nod.xml",
2799 if (fileWithExtension !=
"") {
2800 getApp()->beginWaitCursor();
2805 WRITE_DEBUG(
"Opening FXMessageBox 'error saving joined'");
2807 FXMessageBox::error(
this, MBOX_OK,
TL(
"Saving joined junctions failed!"),
"%s", e.what());
2809 WRITE_DEBUG(
"Closed FXMessageBox 'error saving joined' with 'OK'");
2813 getApp()->endWaitCursor();
2832 return sender->handle(
this, FXSEL(SEL_COMMAND, ID_ENABLE),
nullptr);
2841 return sender->handle(
this, FXSEL(SEL_COMMAND, ID_DISABLE),
nullptr);
2850 return sender->handle(
this, FXSEL(SEL_COMMAND, ID_ENABLE),
nullptr);
2852 return sender->handle(
this, FXSEL(SEL_COMMAND, ID_DISABLE),
nullptr);
2861 return sender->handle(
this, FXSEL(SEL_COMMAND, ID_ENABLE),
nullptr);
2863 return sender->handle(
this, FXSEL(SEL_COMMAND, ID_DISABLE),
nullptr);
2871 return sender->handle(
this, FXSEL(SEL_COMMAND, ID_DISABLE),
nullptr);
2873 return sender->handle(
this, FXSEL(SEL_COMMAND, ID_ENABLE),
nullptr);
2880 bool enable =
false;
2895 sender->handle(
this, enable ? FXSEL(SEL_COMMAND, ID_ENABLE) : FXSEL(SEL_COMMAND, ID_DISABLE),
nullptr);
2902 return sender->handle(
this, ((
myNet ==
nullptr) ||
myNet->
isNetSaved()) ? FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE),
nullptr);
2908 if (
myNet ==
nullptr) {
2909 return sender->handle(
this, FXSEL(SEL_COMMAND, ID_DISABLE),
nullptr);
2911 return sender->handle(
this, FXSEL(SEL_COMMAND, ID_DISABLE),
nullptr);
2913 return sender->handle(
this,
myNet->
isAdditionalsSaved() ? FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE),
nullptr);
2926 return sender->handle(
this, ((
myNet ==
nullptr) ||
myNet->
isDemandElementsSaved()) ? FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE),
nullptr);
2938 return sender->handle(
this, ((
myNet ==
nullptr) ||
myNet->
isDataElementsSaved()) ? FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE),
nullptr);
2967 return sender->handle(
this, FXSEL(SEL_COMMAND, ID_DISABLE),
nullptr);
2970 return sender->handle(
this, FXSEL(SEL_COMMAND, ID_DISABLE),
nullptr);
2973 return sender->handle(
this, FXSEL(SEL_COMMAND, ID_ENABLE),
nullptr);
2977 return sender->handle(
this, FXSEL(SEL_COMMAND, ID_DISABLE),
nullptr);
2987 switch (FXSELID(sel)) {
3077 switch (FXSELID(sel)) {
3242 menuCheck->enable();
3244 menuCheck->disable();
3262 menuCheck->enable();
3264 menuCheck->disable();
3373 getApp()->beginWaitCursor();
3376 std::vector<GNENetworkElement*> invalidNetworkElements;
3379 if (edge.second->isNetworkElementValid() ==
false) {
3380 invalidNetworkElements.push_back(edge.second);
3384 if (crossing->isNetworkElementValid() ==
false) {
3385 invalidNetworkElements.push_back(crossing);
3389 if (invalidNetworkElements.size() > 0) {
3393 if (fixNetworkElementsDialog.execute() == 0) {
3402 WRITE_DEBUG(
"network elements saved after dialog");
3412 WRITE_DEBUG(
"Opening FXMessageBox 'error saving network'");
3414 FXMessageBox::error(
this, MBOX_OK,
TL(
"Saving Network failed!"),
"%s", e.what());
3416 WRITE_DEBUG(
"Closed FXMessageBox 'error saving network' with 'OK'");
3422 getApp()->endWaitCursor();
3439 if (oc.
getString(
"SUMOConfig-output").empty()) {
3443 if (oc.
getString(
"output-file").size() > 0) {
3449 TL(
"Save SUMOConfig"),
".sumocfg",
3461 oc.
set(
"SUMOConfig-output", fileWithExtension);
3465 getApp()->beginWaitCursor();
3470 getApp()->endWaitCursor();
3487 if (oc.
getString(
"output-file").size() > 0) {
3493 TL(
"Save SUMOConfig"),
".sumocfg",
3505 oc.
set(
"SUMOConfig-output", fileWithExtension);
3508 getApp()->beginWaitCursor();
3511 getApp()->endWaitCursor();
3522 sender->handle(
this, FXSEL(SEL_COMMAND, ID_ENABLE),
nullptr);
3524 sender->handle(
this, FXSEL(SEL_COMMAND, ID_DISABLE),
nullptr);
3537 if (oc.
getString(
"TLSPrograms-output").empty()) {
3541 if (oc.
getString(
"output-file").size() > 0) {
3547 TL(
"Save TLS Programs"),
".xml",
3559 oc.
set(
"TLSPrograms-output", fileWithExtension);
3563 getApp()->beginWaitCursor();
3571 WRITE_DEBUG(
"Opening FXMessageBox 'error saving TLS Programs'");
3573 FXMessageBox::error(
this, MBOX_OK,
TL(
"Saving TLS Programs failed!"),
"%s", e.what());
3575 WRITE_DEBUG(
"Closed FXMessageBox 'error saving TLS Programs' with 'OK'");
3578 getApp()->endWaitCursor();
3592 sender->handle(
this, FXSEL(SEL_COMMAND, ID_ENABLE),
nullptr);
3594 sender->handle(
this, FXSEL(SEL_COMMAND, ID_DISABLE),
nullptr);
3607 if (oc.
getString(
"edgeTypes-output").empty()) {
3611 if (oc.
getString(
"output-file").size() > 0) {
3617 TL(
"Save edgeType file"),
".xml",
3629 oc.
set(
"edgeTypes-output", fileWithExtension);
3633 getApp()->beginWaitCursor();
3640 WRITE_DEBUG(
"Opening FXMessageBox 'error saving edgeTypes'");
3642 FXMessageBox::error(
this, MBOX_OK,
TL(
"Saving edgeTypes failed!"),
"%s", e.what());
3644 WRITE_DEBUG(
"Closed FXMessageBox 'error saving edgeTypes' with 'OK'");
3647 getApp()->endWaitCursor();
3661 sender->handle(
this, FXSEL(SEL_COMMAND, ID_ENABLE),
nullptr);
3663 sender->handle(
this, FXSEL(SEL_COMMAND, ID_DISABLE),
nullptr);
3676 if (oc.
getString(
"output-file").size() > 0) {
3682 TL(
"Save TLS Programs as"),
".xml",
3688 if (fileWithExtension !=
"") {
3707 if (oc.
getString(
"output-file").size() > 0) {
3713 TL(
"Save edgeType file as"),
".xml",
3719 if (fileWithExtension !=
"") {
3734 sender->handle(
this, FXSEL(SEL_COMMAND, ID_ENABLE),
nullptr);
3736 sender->handle(
this, FXSEL(SEL_COMMAND, ID_DISABLE),
nullptr);
3747 FXFileDialog opendialog(
this,
TL(
"Open Additionals file"));
3749 opendialog.setSelectMode(SELECTFILE_EXISTING);
3750 opendialog.setPatternList(
"XML files (*.xml,*.xml.gz)\nAll files (*)");
3754 if (opendialog.execute()) {
3758 bool overwriteElements =
false;
3769 overwriteElements =
true;
3778 std::string file = opendialog.getFilename().text();
3786 if (!generalHandler.
parse()) {
3805 oc.
set(
"additional-files", opendialog.getFilename().text());
3827 if (!generalHandler.
parse()) {
3857 if (oc.
getString(
"additional-files").empty()) {
3861 if (oc.
getString(
"output-file").size() > 0) {
3867 TL(
"Save Additionals file"),
".xml",
3873 if (fileWithExtension !=
"") {
3876 oc.
set(
"additional-files", fileWithExtension);
3883 getApp()->beginWaitCursor();
3892 WRITE_DEBUG(
"Opening FXMessageBox 'error saving additionals'");
3894 FXMessageBox::error(
this, MBOX_OK,
TL(
"Saving additionals failed!"),
"%s", e.what());
3896 WRITE_DEBUG(
"Closed FXMessageBox 'error saving additionals' with 'OK'");
3899 getApp()->endWaitCursor();
3916 if (oc.
getString(
"output-file").size() > 0) {
3922 TL(
"Save Additionals file as"),
".xml",
3928 if (fileWithExtension !=
"") {
3948 FXFileDialog opendialog(
this,
TL(
"Open demand element file"));
3950 opendialog.setSelectMode(SELECTFILE_EXISTING);
3951 opendialog.setPatternList(
"XML files (*.xml,*.xml.gz)\nDemand files (*rou.xml,*rou.xml.gz)\nAll files (*)");
3955 if (opendialog.execute()) {
3959 bool overwriteElements =
false;
3970 overwriteElements =
true;
3979 std::string file = opendialog.getFilename().text();
3987 if (!handler.
parse()) {
4006 oc.
set(
"route-files", opendialog.getFilename().text());
4028 if (!handler.
parse()) {
4058 if (oc.
getString(
"route-files").empty()) {
4062 if (oc.
getString(
"output-file").size() > 0) {
4068 TL(
"Save demand element file"),
".rou.xml",
4074 if (fileWithExtension !=
"") {
4077 oc.
set(
"route-files", fileWithExtension);
4084 getApp()->beginWaitCursor();
4091 WRITE_DEBUG(
"Opening FXMessageBox 'error saving demand elements'");
4093 FXMessageBox::error(
this, MBOX_OK,
TL(
"Saving demand elements failed!"),
"%s", e.what());
4095 WRITE_DEBUG(
"Closed FXMessageBox 'error saving demand elements' with 'OK'");
4098 getApp()->endWaitCursor();
4115 if (oc.
getString(
"output-file").size() > 0) {
4121 TL(
"Save demand element file as"),
".rou.xml",
4127 if (fileWithExtension !=
"") {
4147 FXFileDialog opendialog(
this,
TL(
"Open data element file"));
4149 opendialog.setSelectMode(SELECTFILE_EXISTING);
4150 opendialog.setPatternList(
"XML files (*.xml,*.xml.gz)\nData files (*dat.xml,*dat.xml.gz)\nAll files (*)");
4154 if (opendialog.execute()) {
4160 const auto answer = FXMessageBox::question(
myNet->
getViewNet()->getApp(), MBOX_YES_NO,
TL(
"Load same data file"),
4161 "Selected data file was already loaded. Continue?");
4165 WRITE_DEBUG(
"Closed FXMessageBox 'Load same data file' with 'No'");
4166 }
else if (answer == 4) {
4167 WRITE_DEBUG(
"Closed FXMessageBox 'Load same data file' with 'ESC'");
4178 std::string file = opendialog.getFilename().text();
4188 if (!dataHandler.
parse()) {
4206 oc.
set(
"data-files", opendialog.getFilename().text());
4230 if (!dataHandler.
parse()) {
4267 if (oc.
getString(
"data-files").empty()) {
4271 if (oc.
getString(
"output-file").size() > 0) {
4277 TL(
"Save data element file"),
".xml",
4283 if (fileWithExtension !=
"") {
4286 oc.
set(
"data-files", fileWithExtension);
4293 getApp()->beginWaitCursor();
4300 WRITE_DEBUG(
"Opening FXMessageBox 'error saving data elements'");
4302 FXMessageBox::error(
this, MBOX_OK,
TL(
"Saving data elements failed!"),
"%s", e.what());
4304 WRITE_DEBUG(
"Closed FXMessageBox 'error saving data elements' with 'OK'");
4307 getApp()->endWaitCursor();
4324 if (oc.
getString(
"output-file").size() > 0) {
4330 TL(
"Save data element file as"),
".xml",
4336 if (fileWithExtension !=
"") {
4356 WRITE_DEBUG(
"Opening FXMessageBox 'Confirm " + operation +
" network'");
4358 answer = FXMessageBox::question(getApp(), MBOX_QUIT_SAVE_CANCEL,
4359 (
"Confirm " + operation +
" Network").c_str(),
"%s",
4360 (
"You have unsaved changes in the network. Do you wish to " + operation +
" and discard all changes?").c_str());
4364 if (answer == MBOX_CLICKED_QUIT) {
4366 WRITE_DEBUG(
"Closed FXMessageBox 'Confirm " + operation +
" network' with 'Quit'");
4376 }
else if (answer == MBOX_CLICKED_SAVE) {
4392 WRITE_DEBUG(
"Closed FXMessageBox 'Confirm " + operation +
" network' with 'No'");
4393 }
else if (answer == 4) {
4394 WRITE_DEBUG(
"Closed FXMessageBox 'Confirm " + operation +
" network' with 'ESC'");
4418 WRITE_DEBUG(
"Opening FXMessageBox 'Save additionals before " + operation +
"'");
4420 FXuint answer = FXMessageBox::question(getApp(), MBOX_QUIT_SAVE_CANCEL,
4421 (
"Save additionals before " + operation).c_str(),
"%s",
4422 (
"You have unsaved additionals. Do you wish to " + operation +
" and discard all changes?").c_str());
4426 if (answer == MBOX_CLICKED_QUIT) {
4427 WRITE_DEBUG(
"Closed FXMessageBox 'Save additionals before " + operation +
"' with 'Quit'");
4430 }
else if (answer == MBOX_CLICKED_SAVE) {
4432 WRITE_DEBUG(
"Closed FXMessageBox 'Save additionals before " + operation +
"' with 'Yes'");
4443 WRITE_DEBUG(
"Closed FXMessageBox 'Save additionals before " + operation +
"' with 'No'");
4444 }
else if (answer == 4) {
4445 WRITE_DEBUG(
"Closed FXMessageBox 'Save additionals before " + operation +
"' with 'ESC'");
4461 WRITE_DEBUG(
"Opening FXMessageBox 'Save demand elements before " + operation +
"'");
4463 FXuint answer = FXMessageBox::question(getApp(), MBOX_QUIT_SAVE_CANCEL,
4464 (
"Save demand elements before " + operation).c_str(),
"%s",
4465 (
"You have unsaved demand elements. Do you wish to " + operation +
" and discard all changes?").c_str());
4469 if (answer == MBOX_CLICKED_QUIT) {
4470 WRITE_DEBUG(
"Closed FXMessageBox 'Save demand elements before " + operation +
"' with 'Quit'");
4473 }
else if (answer == MBOX_CLICKED_SAVE) {
4475 WRITE_DEBUG(
"Closed FXMessageBox 'Save demand elements before " + operation +
"' with 'Yes'");
4486 WRITE_DEBUG(
"Closed FXMessageBox 'Save demand elements before " + operation +
"' with 'No'");
4487 }
else if (answer == 4) {
4488 WRITE_DEBUG(
"Closed FXMessageBox 'Save demand elements before " + operation +
"' with 'ESC'");
4504 WRITE_DEBUG(
"Opening FXMessageBox 'Save data elements before " + operation +
"'");
4506 FXuint answer = FXMessageBox::question(getApp(), MBOX_QUIT_SAVE_CANCEL,
4507 (
"Save data elements before " + operation).c_str(),
"%s",
4508 (
"You have unsaved data elements. Do you wish to " + operation +
" and discard all changes?").c_str());
4512 if (answer == MBOX_CLICKED_QUIT) {
4513 WRITE_DEBUG(
"Closed FXMessageBox 'Save data elements before " + operation +
"' with 'Quit'");
4516 }
else if (answer == MBOX_CLICKED_SAVE) {
4518 WRITE_DEBUG(
"Closed FXMessageBox 'Save data elements before " + operation +
"' with 'Yes'");
4529 WRITE_DEBUG(
"Closed FXMessageBox 'Save data elements before " + operation +
"' with 'No'");
4530 }
else if (answer == 4) {
4531 WRITE_DEBUG(
"Closed FXMessageBox 'Save data elements before " + operation +
"' with 'ESC'");
4546 std::string newFolder = folder;
4551 if (newFolder.empty()) {
4554 }
else if ((newFolder.back() ==
'\'') || (newFolder.back() ==
'\\') ||
4555 (newFolder.back() ==
'/') ) {
4559 newFolder.pop_back();
4563 if (newFolder.empty()) {
4566 return FXString(newFolder.c_str());
4695#pragma warning(push)
4697#pragma warning(disable: 4355)
4700 myToolbarsGrip(this),
4701 myMenuBarFile(this),
4702 myFileMenuCommands(this),
4703 myModesMenuCommands(this),
4704 myEditMenuCommands(this),
4705 myLockMenuCommands(nullptr),
4706 myProcessingMenuCommands(this),
4707 myLocateMenuCommands(this),
4708 myToolsMenuCommands(this),
4709 myWindowsMenuCommands(this),
4710 mySupermodeCommands(this) {
4719 const long handled = FXMainWindow::onKeyPress(o, sel, eventData);
4720 if (handled == 0 &&
myMDIClient->numChildren() > 0) {
4732 const long handled = FXMainWindow::onKeyRelease(o, sel, eventData);
4733 if (handled == 0 &&
myMDIClient->numChildren() > 0) {
FXDEFMAP(GNEApplicationWindow) GNEApplicationWindowMap[]
@ DATA_SELECT
mode for selecting data elements
@ DATA_INSPECT
mode for inspecting data elements
@ DATA_DELETE
mode for deleting data elements
Supermode
@brie enum for supermodes
@ NETWORK
Network mode (Edges, junctions, etc..)
@ DATA
Data mode (edgeData, LaneData etc..)
@ DEMAND
Demand mode (Routes, Vehicles etc..)
@ NETWORK_DELETE
mode for deleting network elements
@ NETWORK_MOVE
mode for moving network elements
@ NETWORK_SELECT
mode for selecting network elements
@ NETWORK_INSPECT
mode for inspecting network elements
@ NETWORK_CONNECT
mode for connecting lanes
@ DEMAND_INSPECT
mode for inspecting demand elements
@ DEMAND_DELETE
mode for deleting demand elements
@ DEMAND_SELECT
mode for selecting demand elements
@ DEMAND_MOVE
mode for moving demand elements
@ MID_GNE_TOOLBAREDIT_LOADADDITIONALS
load additionals in SUMO-GUI after press ctrl+T
@ MID_GNE_NETWORKVIEWOPTIONS_AUTOOPPOSITEEDGES
automatically create opposite edge
@ MID_HOTKEY_A_MODE_ADDITIONAL_STOP
hotkey for mode editing additionals AND stops
@ MID_HOTKEY_SHIFT_F7_ADJUST_PERSON_PLANS
Adjust person plans (start und end positions, arrival positions, etc.)
@ MID_HOTKEY_CTRL_Q_CLOSE
Main window closes.
@ 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_CTRL_SHIFT_M_SAVESUMOCONFIG
save SUMOConfig
@ MID_GNE_DATAVIEWOPTIONS_TAZRELDRAWING
toggle TAZRel drawing
@ MID_GNE_TOGGLE_COMPUTE_NETWORK_DATA
enable/disable computing after switchin between supermodes
@ MID_LOCATEPERSON
Locate person - button.
@ 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_HOTKEY_ALT_9_TOGGLEEDITOPTION
toggle edit option
@ MID_GNE_TOOLBARFILE_RELOAD_EDGETYPES
reload edge types
@ MID_LOCATEJUNCTION
Locate junction - button.
@ MID_GNE_NETWORKVIEWOPTIONS_HIDECONNECTIONS
hide connections
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWCONNECTIONS
show connections
@ MID_GNE_SAVEALLELEMENTS
save all element
@ MID_HOTKEY_ALT_5_TOGGLEEDITOPTION
toggle edit option
@ MID_GNE_TOOLBAREDIT_LOADDEMAND
load demand in SUMO-GUI after press ctrl+T
@ MID_GNE_DATAVIEWOPTIONS_TAZRELONLYTO
toggle draw TAZRel only to
@ MID_OPEN_CONFIG
Open configuration - ID.
@ MID_HOTKEY_M_MODE_MOVE
hotkey for mode moving element
@ MID_HOTKEY_CTRL_W_CLOSESIMULATION
Close simulation - ID.
@ MID_HOTKEY_ALT_2_TOGGLEEDITOPTION
toggle edit option
@ 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_GNE_DATAVIEWOPTIONS_TOGGLEDRAWJUNCTIONSHAPE
toggle draw junction shape
@ MID_GNE_LOCK_MENUTITLE
selector for LockMenuTitle
@ 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_LOCATEPOLY
Locate polygons - button.
@ MID_HOTKEY_CTRL_J_TOGGLEDRAWJUNCTIONSHAPE
toggle draw junction shape
@ MID_GNE_TOOLBARFILE_SAVESUMOCONFIG_AS
save SUMOConfig as
@ MID_GNE_TOOLBARFILE_RELOAD_TLSPROGRAMS
reload TLS Programs
@ MID_HOTKEY_DEL
hot key delete selections or elements
@ MID_HOTKEY_CTRL_N_NEWNETWORK
create new empty network
@ MID_HOTKEY_CTRL_SHIFT_S_SAVENETWORK_AS
save network as
@ MID_CHANGELOG
changelog button
@ MID_GNE_NETWORKVIEWOPTIONS_ASKFORMERGE
ask before merging junctions
@ MID_GNE_TOOLBARFILE_OPENFOREIGN
open foreign network
@ MID_HOTKEY_CTRL_B_EDITBREAKPOINT_OPENDATAELEMENTS
Edit simulation breakpoints in SUMO and open Data Elements in NETEDIT.
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWGRID
show grid
@ MID_HOTKEY_ALT_3_TOGGLEEDITOPTION
toggle edit option
@ 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_SHIFT_V_FORCESAVEDEMANDELEMENTS
Force save demand elements (flag)
@ MID_HOTKEY_CTRL_S_STOPSIMULATION_SAVENETWORK
Stop the simulation in SUMO and save network in NETEDIT.
@ MID_GNE_NETWORKVIEWOPTIONS_CHAINEDGES
create edges in chain mode
@ MID_HOTKEY_ESC
hot key <ESC> abort current edit operation
@ MID_GNE_TOOLBARFILE_SAVEDATA_AS
save data elements as
@ 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_HOTKEY_H_MODE_PROHIBITION_CONTAINERPLAN
hotkey for mode prohibition AND container plan
@ MID_HOTKEY_T_MODE_TLS_TYPE
hotkey for mode editing TLS AND Vehicle Types
@ MID_LOCATEADD
Locate additional structure - button.
@ MID_LOCATEPOI
Locate poi - button.
@ MID_HOTKEY_CTRL_SHIFT_W_FORCESAVEDATAELEMENTS
Force save data elements (flag)
@ MID_GNE_DEMANDVIEWOPTIONS_HIDESHAPES
hide shapes
@ MID_OPEN_NETWORK
Open network - ID.
@ MID_HOTKEY_CTRL_SHIFT_U_FORCESAVEADDITIONALS
Force save additionals (flag)
@ MID_HOTKEY_ALT_4_TOGGLEEDITOPTION
toggle edit option
@ MID_GNE_TOOLBARFILE_SAVETLSPROGRAMS_AS
save TLS Programs as
@ MID_GNE_DATAVIEWOPTIONS_SHOWADDITIONALS
show additionals
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWBUBBLES
show junctions as bubbles
@ MID_GNE_TOOLBARFILE_RELOAD_DEMANDELEMENTS
reload demand elements
@ MID_GNE_NETWORKVIEWOPTIONS_EXTENDSELECTION
extend selection
@ MID_HOTKEY_CTRL_I_EDITVIEWPORT
Open viewport editor.
@ MID_HOTKEY_S_MODE_SELECT
hotkey for mode selecting objects
@ MID_RECENTFILE
Loads a file previously loaded.
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWSUBADDITIONALS
show sub-additionals
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWALLCONTAINERPLANS
show all container plans
@ MID_HOTKEY_CTRL_SHIFT_N_NEWWINDOW
Open a New Window.
@ MID_HOTKEY_F4_SUPERMODE_DATA
select data supermode in NETEDIT
@ MID_HOTKEY_F6_CLEAN_SOLITARYJUNCTIONS_UNUSEDROUTES
clean junctions without edges in network mode and unused routes in demand mode
@ MID_LOCATESTOP
Locate stop - button.
@ MID_HOTKEY_ALT_1_TOGGLEEDITOPTION
toggle edit option
@ MID_HOTKEY_CTRL_K_OPENTLSPROGRAMS
Load file with TLS Programs.
@ MID_GNE_LOCK_ELEMENT
lock element
@ MID_CLEARMESSAGEWINDOW
Clear simulation output.
@ MID_HOTKEY_R_MODE_CROSSING_ROUTE_EDGERELDATA
hotkey for mode editing crossing, routes and edge rel datas
@ MID_HOTKEY_W_MODE_WIRE
hotkey for mode editing overhead wires
@ MID_TUTORIAL
tutorial button
@ MID_HOTKEY_CTRL_G_GAMINGMODE_TOGGLEGRID
Toggle Gaming mode in SUMO and grid in NETEDIT.
@ MID_GNE_DATAVIEWOPTIONS_TAZDRAWFILL
toggle draw TAZ fill
@ MID_HOTKEY_ALT_6_TOGGLEEDITOPTION
toggle edit option
@ MID_HOTKEY_D_MODE_DELETE
hotkey for mode deleting things
@ ID_LOADTHREAD_EVENT
The loading thread.
@ MID_GNE_TOOLBARFILE_RELOAD_ADDITIONALS
reload additionals
@ MID_HOTKEY_V_MODE_VEHICLE
hotkey for mode create vehicles
@ MID_HOTKEY_I_MODE_INSPECT
hotkey for mode inspecting object attributes
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWDEMANDELEMENTS
show demand elements
@ MID_HOTKEY_ALT_0_TOGGLEEDITOPTION
toggle edit option
@ MID_GNE_TOOLBARFILE_SAVEADDITIONALS_AS
save additionals as
@ MID_GNE_TOOLBARFILE_SAVEEDGETYPES_AS
save edgeTypes as
@ MID_HOTKEYS
hotkeys button
@ MID_HOTKEY_C_MODE_CONNECT_PERSONPLAN
hotkey for mode connecting lanes ABD person plan
@ MID_GNE_DEMANDVIEWOPTIONS_HIDENONINSPECTED
hide non-inspected demand element
@ MID_HOTKEY_ALT_F4_CLOSE
Main window closes.
@ MID_HOTKEY_CTRL_SHIFT_A_SAVEADDITIONALS
Save Additional Elements.
@ MID_LOCATEWALKINGAREA
Locate edge - button.
@ MID_LOCATEEDGE
Locate edge - button.
@ MID_HOTKEY_G_MODE_CONTAINER
hotkey for mode container
@ MID_HOTKEY_SHIFT_F2_TEMPLATE_COPY
copy template
@ MID_GNE_NETWORKVIEWOPTIONS_CHANGEALLPHASES
change all phases
@ MID_HOTKEY_CTRL_A_STARTSIMULATION_OPENADDITIONALS
Start the simulation in SUMO and open Additionals Elements in NETEDIT.
@ 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_HOTKEY_ALT_8_TOGGLEEDITOPTION
toggle edit option
@ MID_GNE_TOOLBARTOOLS_NETDIFF
call tool netdiff
@ MID_LOCATEVEHICLE
Locate vehicle - button.
@ MID_LOCATETLS
Locate TLS - button.
@ MID_GNE_TOOLBARFILE_RELOAD_SUMOCONFIG
reload SUMOConfig
@ MID_GNE_NETWORKVIEWOPTIONS_TOGGLEDRAWJUNCTIONSHAPE
toggle draw junction shape
@ MID_GNE_RECOMPUTINGNEEDED
check if recomputing is needed
@ MID_HOTKEY_CTRL_M_OPENSUMOCONFIG
open sumo config
@ MID_GNE_TOOLBARFILE_SAVEDEMAND_AS
save demand elements 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_MODESMENUTITLE
selector for ModesMenuTitle
@ MID_HOTKEY_CTRL_SHIFT_T_FORCESAVENETEWORK
Force save network (flag)
@ MID_HOTKEY_BACKSPACE
hot key <Backspace> remove last sub-operation
@ MID_HOTKEY_ALT_7_TOGGLEEDITOPTION
toggle edit option
@ MID_HOTKEY_F12_ABOUT
open about dialog
@ MID_HOTKEY_ENTER
hot key <ENTER> accept current operation
@ MID_GNE_TOOLBARFILE_RELOAD_DATAELEMENTS
reload data elements
@ MID_HOTKEY_CTRL_SHIFT_K_SAVETLS
save TLS Programs
@ MID_HOTKEY_SHIFT_F1_TEMPLATE_SET
set template
@ MID_HOTKEY_F2_SUPERMODE_NETWORK
select network supermode in NETEDIT
@ MID_GNE_DEMANDVIEWOPTIONS_LOCKCONTAINER
lock container
@ MID_HOTKEY_SHIFT_F12_FOCUSUPPERELEMENT
focus upper element of current frame (only used in NETEDIT)
@ MID_HOTKEY_SHIFT_F3_TEMPLATE_CLEAR
clear template
@ MID_GNE_NETWORKVIEWOPTIONS_SELECTEDGES
select edges
@ MID_HOTKEY_CTRL_H_OPENEDGETYPES
open edge type files
@ MID_GNE_SAVEJOINEDJUNCTIONS
save joined junctions
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWTRIPS
show all trips
@ MID_GNE_NETWORKVIEWOPTIONS_TOGGLEGRID
show grid
@ MID_LOCATEROUTE
Locate route - button.
@ MID_HOTKEY_P_MODE_POLYGON_PERSON
hotkey for mode creating polygons
@ MID_HOTKEY_CTRL_L_SAVEASPLAINXML
save network as plain XML
@ MID_GNE_TOOLBAREDIT_COMPUTEPATHMANAGER
compute path manager
@ MID_HOTKEY_CTRL_T_OPENSUMONETEDIT
Open current network in SUMO or in NETEDIT.
@ MID_WINDOW
Main window-ID.
GUICompleteSchemeStorage gSchemeStorage
#define GUIDesignButtonStatusBarFixed
button rectangular with thick and raise frame with a width of 100
#define GUIDesignHorizontalFrameStatusBar
Horizontal frame used in status bar.
#define GUIDesignLabelStatusBar
label used in statusBar
#define GUIDesignSplitter
#define GUIDesignSplitterMDI
MDI Splitter.
#define GUIDesignStatusBar
design used in status bar
@ MESSAGE_OCCURRED
send when a message occured
@ GLDEBUG_OCCURRED
send when a gldebug occured
@ ERROR_OCCURRED
send when a error occured
@ SIMULATION_LOADED
send when a simulation has been loaded
@ DEBUG_OCCURRED
send when a debug occured
@ WARNING_OCCURRED
send when a warning occured
GUISelectedStorage gSelected
A global holder of selected objects.
FXString gCurrentFolder
The folder used as last.
#define WRITE_MESSAGE(msg)
@ GNE_TAG_TRIP_JUNCTIONS
a trip between junctions (used in NETEDIT)
@ GNE_TAG_FLOW_JUNCTIONS
a flow between junctions (used in NETEDIT)
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
bool isErrorCreatingElement() const
get flag for check if a element wasn't created
void setSelector(FXSelector sel)
set the selector
void setTarget(FXObject *tgt)
set the target
static std::string addExtension(const std::string &path, const std::string &extension)
Add an extension to the given file path.
static bool isReadable(std::string path)
Checks whether the given file is readable.
static void resetFont()
to be called when the font context is invalidated
The application's "About" - dialog.
void create()
Creates the widget.
The main window of the Netedit.
long onCmdReloadSUMOConfig(FXObject *, FXSelector, void *)
called when the command/FXCall reload SUMOConfig is executed
long onCmdSaveAsNetwork(FXObject *, FXSelector, void *)
called when the command/FXCall save network as is executed
long onCmdSaveAdditionals(FXObject *, FXSelector, void *)
called when the command/FXCall save additionals is executed
GNEApplicationWindowHelper::SupermodeCommands mySupermodeCommands
Supermode Commands.
long onCmdSaveTLSProgramsAs(FXObject *, FXSelector, void *)
called when the command/FXCall save TLSPrograms as is executed
FXMenuTitle * myModesMenuTitle
menu title for modes
void create()
Creates the main window (required by FOX)
long onCmdToggleDrawJunctionShape(FXObject *, FXSelector, void *)
called if the user press key combination Ctrl + J to toggle draw junction shape
GNEApplicationWindowHelper::WindowsMenuCommands myWindowsMenuCommands
Windows Menu Commands.
GNELoadThread * myLoadThread
the thread that loads the network
void clearUndoList()
clear undo list
GNENet * myNet
we are responsible for the net
long onCmdSaveEdgeTypes(FXObject *, FXSelector, void *)
called when the command/FXCall save edge types is executed
long onCmdOpenUndoListDialog(FXObject *, FXSelector, void *)
void handleEvent_Message(GUIEvent *e)
handle event of type message
long onCmdOpenSUMOConfig(FXObject *, FXSelector, void *)
called when the command/FXCall open SUMOConfig is executed
bool continueWithUnsavedDemandElementChanges(const std::string &operation)
warns about unsaved changes in demand elements and gives the user the option to abort
long onCmdReloadDataElements(FXObject *, FXSelector, void *)
called when the command/FXCall reload data elements is executed
long onCmdLoadAdditionalsInSUMOGUI(FXObject *, FXSelector, void *)
called when user toggle windows checkbox "load additionals"
long onCmdOpenTLSPrograms(FXObject *, FXSelector, void *)
called when the command/FXCall open TLS programs is executed
long onUpdComputePathManager(FXObject *obj, FXSelector sel, void *ptr)
called when the update/FXCall compute path manager is executed
void updateControls()
update control contents after undo/redo or recompute
GNEApplicationWindowHelper::LockMenuCommands myLockMenuCommands
Lock Menu Commands.
FXMenuPane * myFileMenuSUMOConfig
long computeJunctionWithVolatileOptions()
called if the user selects Processing->compute junctions with volatile options
long onCmdNewNetwork(FXObject *, FXSelector, void *)
called when the command/FXCall new network is executed
GNEApplicationWindow()
FOX needs this for static members.
long onClipboardRequest(FXObject *sender, FXSelector sel, void *ptr)
called when the command/FXCall clipboard request is executed
FXMenuPane * myFileMenuAdditionals
long onCmdSaveSUMOConfig(FXObject *, FXSelector, void *)
called when the command/FXCall save SUMOConfig is executed
long onUpdSaveNetwork(FXObject *, FXSelector, void *)
called when the update/FXCall save network is executed
std::string myUndoRedoListEnabled
string to check if undo/redo list is enabled (a String is used to keep the disabling reason)
long onUpdSaveEdgeTypesAs(FXObject *, FXSelector, void *)
called when the command/FXCall save edgeTypes as is updated
std::string myConfigPattern
Input file pattern.
long onUpdReloadDataElements(FXObject *, FXSelector, void *)
called when the command/FXCall reload data elements is updated
long onCmdClose(FXObject *, FXSelector, void *)
called when the command/FXCall close is executed
long onCmdEditViewport(FXObject *, FXSelector, void *)
Called on menu Edit->Viewport.
long onCmdToggleViewOption(FXObject *, FXSelector, void *)
toggle viewOption
FXEX::MFXThreadEvent myLoadThreadEvent
io-event with the load-thread
void enableSaveAdditionalsMenu()
enable save additionals
long onCmdToggleEditOptions(FXObject *, FXSelector, void *)
called if the user press key combination Alt + <0-9>
GNEApplicationWindowHelper::MenuBarFile myMenuBarFile
MenuBarFile.
long onCmdOpenAdditionals(FXObject *, FXSelector, void *)
called when the command/FXCall open additionals is executed
long onCmdForceSaveDataElements(FXObject *sender, FXSelector sel, void *ptr)
force save data elements (flag)
long onCmdForceSaveAdditionals(FXObject *sender, FXSelector sel, void *ptr)
force save additionals (flag)
long onUpdSaveSUMOConfig(FXObject *, FXSelector, void *)
called when the command/FXCall save SUMOConfig is updated
long onUpdRedo(FXObject *obj, FXSelector sel, void *ptr)
called when the update/FXCall redo is executed
long onUpdReload(FXObject *, FXSelector, void *)
called when the update/FXCall reload is executed
GNEApplicationWindowHelper::ProcessingMenuCommands myProcessingMenuCommands
Processing Menu Commands.
long onUpdSaveAdditionalsAs(FXObject *, FXSelector, void *)
called when the update/FXCall save additionals as is executed
GNEApplicationWindowHelper::EditMenuCommands & getEditMenuCommands()
getEdit Menu Commands (needed for show/hide menu commands)
void setStatusBarText(const std::string &statusBarText)
set text of the statusBar
FXMenuPane * myProcessingMenu
GNEUndoList * myUndoList
the one and only undo list
long onUpdSaveDataElements(FXObject *, FXSelector, void *)
called when the update/FXCall save data elements is executed
long onCmdPaste(FXObject *, FXSelector, void *)
long onCmdSaveAsPlainXML(FXObject *, FXSelector, void *)
called when the command/FXCall save as plain xml is executed
void disableSaveDemandElementsMenu()
disable save demand elements
long onUpdSaveDemandElementsAs(FXObject *, FXSelector, void *)
called when the update/FXCall save demand elements as is executed
long onCmdOpenNetwork(FXObject *, FXSelector, void *)
called when the command/FXCall open network is executed
long onUpdReloadSUMOConfig(FXObject *, FXSelector, void *)
called when the command/FXCall reload SUMOConfig is updated
void closeAllWindows()
this method closes all windows and deletes the current simulation */
long onCmdForceSaveNetwork(FXObject *sender, FXSelector sel, void *ptr)
force save network (flag)
long onCmdComputePathManager(FXObject *, FXSelector, void *)
bool continueWithUnsavedDataElementChanges(const std::string &operation)
warns about unsaved changes in data elements and gives the user the option to abort
long onCmdCopyTemplate(FXObject *, FXSelector, void *)
void enableSaveDataElementsMenu()
enable save data elements
FXString getFolder(const std::string &folder) const
extract folder
long onLoadThreadEvent(FXObject *, FXSelector, void *)
called when the command/FXCall load thread is executed
long onUpdRequireRecomputing(FXObject *sender, FXSelector sel, void *ptr)
update label for requiere recomputing
FXMDIMenu * myMDIMenu
The menu used for the MDI-windows.
long onCmdReloadDemandElements(FXObject *, FXSelector, void *)
called when the command/FXCall reload demand elements is executed
long onUpdSaveDemandElements(FXObject *, FXSelector, void *)
called when the update/FXCall save demand elements is executed
void loadConfigOrNet(const std::string file, bool isNet, bool isReload=false, bool useStartupOptions=false, bool newNet=false)
starts to load a netimport configuration or a network */
long onUpdReloadAdditionals(FXObject *, FXSelector, void *)
called when the command/FXCall reload additionals is updated
SUMOTime getCurrentSimTime() const
get current simulation time (pure virtual but we don't need it)
long onCmdOptions(FXObject *, FXSelector, void *)
called if the user selects Processing->Configure Options
long onCmdReloadEdgeTypes(FXObject *, FXSelector, void *)
called when the command/FXCall reload edge types is executed
long onCmdLockAllElements(FXObject *, FXSelector sel, void *)
called when user press lock all elements button
long onKeyPress(FXObject *o, FXSelector sel, void *data)
called when a key is pressed
void disableSaveAdditionalsMenu()
disable save additionals
long onCmdQuit(FXObject *, FXSelector, void *)
Called by FOX if the application shall be closed.
FXMenuPane * myFileMenuTLS
long onCmdSaveEdgeTypesAs(FXObject *, FXSelector, void *)
called when the command/FXCall save edgeTypes as is executed
long onCmdClearMsgWindow(FXObject *, FXSelector, void *)
called when the command/FXCall clear message windows is executed
long onCmdLockElements(FXObject *, FXSelector sel, void *)
called when user press a lock menu check
MFXButtonTooltip * myRequireRecomputingButton
Button used for show if recomputing is needed.
long onCmdClearTemplate(FXObject *, FXSelector, void *)
MFXSynchQue< GUIEvent * > myEvents
List of got requests.
GNEUndoList * getUndoList()
get pointer to undoList
long onUpdNeedsFrontElement(FXObject *, FXSelector, void *)
called when the update/FXCall needs front element is executed
long onCmdProcessButton(FXObject *, FXSelector sel, void *)
called when user press a process button (or a shortcut)
FXMenuTitle * myLockMenuTitle
menu title for lock
void loadOptionOnStartup()
load net on startup
GNEViewNet * getViewNet()
get pointer to viewNet
long onCmdSaveAdditionalsAs(FXObject *, FXSelector, void *)
called when the command/FXCall save additionals as is executed
GNEUndoListDialog * getUndoListDialog()
get pointer to undoList dialog
GNEApplicationWindowHelper::LocateMenuCommands myLocateMenuCommands
Locate Menu Commands.
bool continueWithUnsavedChanges(const std::string &operation)
warns about unsaved changes and gives the user the option to abort
long onCmdUndo(FXObject *, FXSelector, void *)
called when user press Ctrl+Z
long onCmdAbout(FXObject *, FXSelector, void *)
called when the command/FXCall show about dialog is executed
long onUpdReloadEdgeTypes(FXObject *, FXSelector, void *)
called when the command/FXCall reload edge types is updated
long onCmdToggleGrid(FXObject *, FXSelector, void *)
called if the user press key combination Ctrl + G to toggle grid
void dependentBuild()
build dependent
long onUpdSaveDataElementsAs(FXObject *, FXSelector, void *)
called when the update/FXCall save data elements as is executed
FXMenuPane * myFileMenuDemandElements
void loadNet(const std::string &file)
load network
long onCmdEditChosen(FXObject *, FXSelector, void *)
called when the command/FXCall edit chosen is executed
long onUpdReloadTLSPrograms(FXObject *, FXSelector, void *)
called when the command/FXCall reload TLS programs is updated
GNEApplicationWindowHelper::EditMenuCommands myEditMenuCommands
Edit Menu Commands.
long onCmdForceSaveDemandElements(FXObject *sender, FXSelector sel, void *ptr)
force save demand elements (flag)
long onCmdSetSuperMode(FXObject *sender, FXSelector sel, void *ptr)
called if the user hits an edit-supermode hotkey
~GNEApplicationWindow()
Destructor.
long onCmdAbort(FXObject *sender, FXSelector sel, void *ptr)
called if the user hits esc
GNEViewNet * myViewNet
pointer to current view net
long onCmdReloadAdditionals(FXObject *, FXSelector, void *)
called when the command/FXCall reload additionals is executed
long onUpdOpenUndoListDialog(FXObject *, FXSelector, void *)
long onUpdNeedsNetworkElement(FXObject *, FXSelector, void *)
called when the update/FXCall needs at least one newtork element is executed
const FXString myTitlePrefix
the prefix for the window title
void enableSaveTLSProgramsMenu()
enable save TLS Programs
double getTrackerInterval() const
get current tracker interval (pure virtual but we don't need it)
long onCmdReload(FXObject *, FXSelector, void *)
called when the command/FXCall reload is executed
void disableSaveDataElementsMenu()
disable save data elements
void fillMenuBar()
Builds the menu bar.
long onCmdFocusFrame(FXObject *sender, FXSelector sel, void *ptr)
called if the user hits key combination for focus on frame
GNEApplicationWindowHelper::LockMenuCommands & getLockMenuCommands()
get lock Menu Commands
long onCmdHelp(FXObject *sender, FXSelector sel, void *ptr)
called if the user selects help->Documentation
long onUpdRequireViewNet(FXObject *sender, FXSelector sel, void *ptr)
enable or disable sender object depending if viewNet exist
long onCmdSaveDemandElements(FXObject *, FXSelector, void *)
called when the command/FXCall save demand elements is executed
long onCmdCut(FXObject *, FXSelector, void *)
called when user press Ctrl+Z
long onCmdNewWindow(FXObject *, FXSelector, void *)
long onCmdOpenEdgeTypes(FXObject *, FXSelector, void *)
called when the command/FXCall open edgeType is executed
bool myReloading
information whether the gui is currently reloading
FXMenuPane * myWindowMenu
void enableSaveDemandElementsMenu()
enable save demand elements
long onCmdLoadDemandInSUMOGUI(FXObject *, FXSelector, void *)
called when user toggle windows checkbox "load demand"
long onUpdLockMenuTitle(FXObject *, FXSelector sel, void *)
enable or disable lock menu title
bool myAmLoading
information whether the gui is currently loading and the load-options shall be greyed out
long onCmdOpenConfiguration(FXObject *, FXSelector, void *)
called when the command/FXCall open configuration is executed
long onUpdSaveAdditionals(FXObject *, FXSelector, void *)
called when the update/FXCall save additionals is executed
long onCmdSaveDemandElementsAs(FXObject *, FXSelector, void *)
called when the command/FXCall save demand elements as is executed
long onCmdReloadTLSPrograms(FXObject *, FXSelector, void *)
called when the command/FXCall reload TLS programs is executed
long onCmdSaveDataElementsAs(FXObject *, FXSelector, void *)
called when the command/FXCall save data elements as is executed
GNEApplicationWindowHelper::FileMenuCommands myFileMenuCommands
File Menu Commands.
long onCmdSaveAllElements(FXObject *, FXSelector, void *)
called when the command/FXCall save all elements is executed
long onCmdOpenRecent(FXObject *, FXSelector, void *)
called when the command/FXCall open recent is executed
long onCmdChangelog(FXObject *sender, FXSelector sel, void *ptr)
called if the user selects help->Changelog
long onUpdOpen(FXObject *, FXSelector, void *)
called when the command/FXCall on update open executed
long onCmdSetMode(FXObject *sender, FXSelector sel, void *ptr)
called if the user hits an edit-mode hotkey
bool myHadDependentBuild
check if had dependent build
long onCmdBackspace(FXObject *sender, FXSelector sel, void *ptr)
called if the user hits backspace
void updateRecomputingLabel()
update recomputing label
void handleEvent_NetworkLoaded(GUIEvent *e)
handle event of type Network loaded
long onCmdCopy(FXObject *, FXSelector, void *)
long onCmdOpenSUMOGUI(FXObject *sender, FXSelector sel, void *ptr)
called if the user hints ctrl + T
long onUpdSaveAllElements(FXObject *, FXSelector, void *)
called when the update/FXCall save all elements is executed
void disableUndoRedo(const std::string &reason)
disable undo-redo giving a string with the reason
long onCmdOpenDemandElements(FXObject *, FXSelector, void *)
called when the command/FXCall open demand is executed
long onCmdToogleComputeNetworkData(FXObject *, FXSelector, void *)
called when toogle checkbox compute network when swichting between supermodes
void enableUndoRedo()
disable undo-redo
bool continueWithUnsavedAdditionalChanges(const std::string &operation)
warns about unsaved changes in additionals and gives the user the option to abort
long onUpdToggleViewOption(FXObject *, FXSelector, void *)
update viewOption
GNEApplicationWindowHelper::ToolsMenuCommands myToolsMenuCommands
Tools Menu Commands.
long onCmdUnlockAllElements(FXObject *, FXSelector sel, void *)
called when user press unlock all elements button
const std::string & isUndoRedoEnabled() const
check if undo-redo is enabled
long onUpdNeedsNetwork(FXObject *, FXSelector, void *)
called when the update/FXCall needs network is executed
GNEApplicationWindowHelper::ToolbarsGrip & getToolbarsGrip()
get ToolbarsGrip
FXMenuPane * myLocatorMenu
long onCmdSaveDataElements(FXObject *, FXSelector, void *)
called when the command/FXCall save data elements is executed
long onCmdLocate(FXObject *, FXSelector, void *)
called when the command/FXCall locate is executed
long onCmdDel(FXObject *sender, FXSelector sel, void *ptr)
called if the user hits del
long onCmdHotkeys(FXObject *sender, FXSelector sel, void *ptr)
called if the user selects help->Hotkeys
long onCmdOpenDataElements(FXObject *, FXSelector, void *)
called when the command/FXCall open data is executed
void updateSuperModeMenuCommands(const Supermode supermode)
update FXMenuCommands depending of supermode
long onCmdToolNetDiff(FXObject *, FXSelector, void *)
called when the command/FXCall run NetDiff is executed
long onCmdSetFrontElement(FXObject *, FXSelector, void *)
called if the user call set front element
GNEUndoListDialog * myUndoListDialog
undoList dialog
long onUpdReloadDemandElements(FXObject *, FXSelector, void *)
called when the command/FXCall reload demand elements is updated
long onCmdEnter(FXObject *sender, FXSelector sel, void *ptr)
called if the user hits enter
FXCursor * getDefaultCursor()
get default cursor
long onCmdSetTemplate(FXObject *, FXSelector, void *)
long onCmdTutorial(FXObject *sender, FXSelector sel, void *ptr)
called if the user selects help->Tutorial
long onCmdRedo(FXObject *, FXSelector, void *)
long onUpdUndo(FXObject *obj, FXSelector sel, void *ptr)
called when the update/FXCall undo is executed
const GNEApplicationWindowHelper::ProcessingMenuCommands & getProcessingMenuCommands() const
get processing Menu Commands
GUIMessageWindow * myMessageWindow
A window to display messages, warnings and error in.
FXSplitter * myMainSplitter
The splitter that divides the main window into view and the log window.
long onCmdLockSelectElements(FXObject *, FXSelector sel, void *)
called when user press lock select elements button
long onCmdSaveTLSPrograms(FXObject *, FXSelector, void *)
called when the command/FXCall save TLSPrograms is executed
long onUpdSaveEdgeTypes(FXObject *, FXSelector, void *)
called when the command/FXCall save edge types is updated
long onCmdSaveJoined(FXObject *, FXSelector, void *)
called when the command/FXCall save joined is executed
long onCmdSaveNetwork(FXObject *, FXSelector, void *)
called when the command/FXCall save network is executed
FXMenuPane * myFileMenu
the submenus
GNEApplicationWindowHelper::ToolbarsGrip myToolbarsGrip
Toolbars Grip.
FXMenuPane * myFileMenuEdgeTypes
FXMenuPane * myFileMenuDataElements
long onKeyRelease(FXObject *o, FXSelector sel, void *data)
called when a key is released
GNEApplicationWindowHelper::ModesMenuCommands myModesMenuCommands
Modes Menu Commands.
long onUpdSaveTLSPrograms(FXObject *, FXSelector, void *)
called when the command/FXCall save TLSPrograms is updated
FXGLCanvas * getBuildGLCanvas() const
get build GL Canvas (must be implemented in all children)
long onCmdEditViewScheme(FXObject *, FXSelector, void *)
Called on menu Edit->Visualization.
long onCmdOpenForeign(FXObject *, FXSelector, void *)
called when the command/FXCall open foreign is executed
long onCmdSaveSUMOConfigAs(FXObject *, FXSelector, void *)
called when the command/FXCall save SUMOConfig as is executed
void refreshEdgeTypeSelector()
refresh edge type selector
EdgeTypeSelector * getEdgeTypeSelector() const
get edgeType selector
void addLaneType(GNELaneType *laneType)
add laneType
const bool viewportFromRegistry
whether loading viewport from registry
const std::string file
the name of the loaded file
const bool isNewNet
flag for new net
GNENet *const net
the loaded net
const std::string settingsFile
the name of the settings file to load
Dialog fix network elements.
virtual void updateFrameAfterUndoRedo()
function called after undo/redo in the current frame (can be reimplemented in frame children)
bool isErrorCreatingElement() const
get flag for check if a element wasn't created
bool isSelectingParent() const
check if we're selecting a new parent
void refreshNeteditAttributesEditor(bool forceRefresh)
refresh netedit attributes
void stopSelectParent()
stop select new parent
void clearTemplate()
clear template (used by shortcut)
void setTemplate()
set template (used by shortcut)
void copyTemplate()
copy template (used by shortcut)
void inspectSingleElement(GNEAttributeCarrier *AC)
Inspect a single element.
TemplateEditor * getTemplateEditor() const
get template editor
GNEInspectorFrame::NeteditAttributesEditor * getNeteditAttributesEditor() const
get Netedit Attributes editor
void loadConfigOrNet(const std::string &file, const bool isNet, const bool useStartupOptions, const bool newNet=false)
begins the loading of a netconvert configuration or a a network
static void fillOptions(OptionsCont &oc)
clears and initializes the OptionsCont
static void setDefaultOptions(OptionsCont &oc)
sets required options for proper functioning
const std::map< SumoXMLTag, std::set< GNEDemandElement * > > & getDemandElements() const
get demand elements
const std::set< GNEDataSet * > & getDataSets() const
get demand elements
const std::map< std::string, GNEEdge * > & getEdges() const
map with the ID and pointer to edges of net
int getNumberOfDemandElements() const
Return the number of demand elements.
int getNumberOfAdditionals() const
get number of additionals
const std::set< GNECrossing * > & getCrossings() const
get crossings
const std::map< std::string, GNEJunction * > & getJunctions() const
get junctions
const std::map< std::string, GNEEdgeType * > & getEdgeTypes() const
map with the ID and pointer to edgeTypes of net
void clearAdditionalElements(GNEUndoList *undoList)
clear additionals
void removeSolitaryJunctions(GNEUndoList *undoList)
removes junctions that have no edges
void saveJoined(OptionsCont &oc, const std::string &filename)
save log of joined junctions (and nothing else)
bool joinSelectedJunctions(GNEUndoList *undoList)
join selected junctions
void saveDemandElements(const std::string &filename)
save demand element elements of the network
void saveTLSPrograms(const std::string &filename)
save TLS Programs elements of the network
bool isNetSaved() const
return if net has to be saved
void savePlain(OptionsCont &oc, const std::string &prefix)
save plain xml representation of the network (and nothing else)
void requireSaveNet(bool value)
inform that net has to be saved
void saveEdgeTypes(const std::string &filename)
save edgeTypes elements of the network
void clearDemandElements(GNEUndoList *undoList)
clear demand elements
void adjustPersonPlans(GNEUndoList *undoList)
adjust person plans
void requireSaveAdditionals(bool value)
inform that additionals has to be saved
void cleanInvalidDemandElements(GNEUndoList *undoList)
clean invalid demand elements
void cleanUnusedRoutes(GNEUndoList *undoList)
clean unused routes
GNENetHelper::AttributeCarriers * getAttributeCarriers() const
get all attribute carriers used in this net
void computeNetwork(GNEApplicationWindow *window, bool force=false, bool volatileOptions=false, std::string additionalPath="", std::string demandPath="", std::string dataPath="")
trigger full netbuild computation param[in] window The window to inform about delay param[in] force W...
bool isAdditionalsSaved() const
check if additionals are saved
void disableUpdateData()
disable update data elements after inserting or removing an element in net
bool isNetRecomputed() const
check if net require recomputing
bool cleanInvalidCrossings(GNEUndoList *undoList)
clear invalid crossings
void joinRoutes(GNEUndoList *undoList)
join routes
void requireSaveDemandElements(bool value)
inform that demand elements has to be saved
GNEPathManager * getPathManager()
get path manager
void requireSaveDataElements(bool value)
inform that data sets has to be saved
void saveDataElements(const std::string &filename)
save data set elements of the network
void saveAdditionals(const std::string &filename)
save additional elements of the network
void saveNetwork(OptionsCont &oc)
save the network
bool isDataElementsSaved() const
check if data sets are saved
GNEViewNet * getViewNet() const
get view net
void computeDemandElements(GNEApplicationWindow *window)
compute demand elements param[in] window The window to inform about delay
bool isDemandElementsSaved() const
check if demand elements are saved
Dialog for edit rerouters.
Result getResult() const
get result
void updatePathCalculator()
update path calculator (called when SuperModes Demand or Data is selected)
bool isPathCalculatorUpdated() const
check if pathCalculator is updated
PathCalculator * getPathCalculator()
obtain instance of PathCalculator
bool isChangesPending() const
return true if there is changes to save
const std::vector< CurrentTAZ::TAZEdgeColor > & getEdgeAndTAZChildrenSelected() const
get map with edge and TAZChildren
void clearSelectedEdges()
clear current TAZ children
TAZSelectionStatistics * getTAZSelectionStatisticsModule() const
get TAZ Selection Statistics modul
TAZSaveChanges * getTAZSaveChangesModule() const
get TAZ Save Changes modul
bool parseTLSPrograms(const std::string &file)
parse TLS Programs from a file
Dialog for edit rerouters.
bool shown() const
check if dialog is shown
void setFocus()
Move the focus to this window.
void end()
End undo command sub-group. If the sub-group is still empty, it will be deleted; otherwise,...
void undo()
undo the last command group
long onUpdUndo(FXObject *, FXSelector, void *)
event after Undo
void begin(GUIIcon icon, const std::string &description)
Begin undo command sub-group with current supermode. This begins a new group of commands that are tre...
void abortAllChangeGroups()
reverts and discards ALL active chained change groups
Supermode getRedoSupermode() const
get redo supermode
long onUpdRedo(FXObject *, FXSelector, void *)
event after Redo
Supermode getUndoSupermode() const
get undo supermode
void redo()
redo the last command group
void add(GNEChange *command, bool doit=false, bool merge=true)
Add new command, executing it if desired. The new command will be merged with the previous command if...
void updateFlags()
update flags
long onCmdToggleShowDemandElementsNetwork(FXObject *, FXSelector, void *)
toggle show demand elements (network)
const GNEViewNetHelper::DataViewOptions & getDataViewOptions() const
get data view options
GNENet * getNet() const
get the net object
const GNEAttributeCarrier * getFrontAttributeCarrier() const
get front attributeCarrier
void hotkeyBackSpace()
handle backspace keypress
const GNEViewNetHelper::EditModes & getEditModes() const
get edit modes
void setFrontAttributeCarrier(GNEAttributeCarrier *AC)
set front attributeCarrier
long onCmdToggleShowDemandElementsData(FXObject *, FXSelector, void *)
toggle show demand elements (data)
void abortOperation(bool clearSelection=true)
abort current edition operation
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
void hotkeyFocusFrame()
handle focus frame keypress
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
GNEViewParent * getViewParent() const
get the net object
long onCmdToggleDrawJunctionShape(FXObject *, FXSelector, void *)
toggle draw junction shape
long onCmdToggleShowShapes(FXObject *, FXSelector, void *)
toggle show shapes in super mode data
GNEUndoList * getUndoList() const
get the undoList object
void saveVisualizationSettings() const
long onCmdSetSupermode(FXObject *, FXSelector sel, void *)
long onCmdToggleExtendSelection(FXObject *, FXSelector, void *)
toggle extend selection
bool aksChangeSupermode(const std::string &operation, Supermode expectedSupermode)
ask about change supermode
long onCmdSetMode(FXObject *, FXSelector sel, void *)
called when user press a mode button (Network or demand)
void hotkeyEnter()
handle enter keypress
void forceSupermodeNetwork()
set supermode Network (used after load/create new network)
const std::vector< GNEAttributeCarrier * > & getInspectedAttributeCarriers() const
get inspected attribute carriers
long onCmdToggleShowOverlappedRoutes(FXObject *, FXSelector, void *)
toggle hide non inspected demand elements
long onCmdToggleAutoOppositeEdge(FXObject *, FXSelector, void *)
toggle autoOpposite edge
GNEViewNetHelper::LockManager & getLockManager()
get lock manager
void updateControls()
update control contents after undo/redo or recompute
void hotkeyDel()
handle del keypress
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
void updateViewNet() const
Mark the entire GNEViewNet to be repainted later.
long onCmdToggleHideConnections(FXObject *, FXSelector, void *)
toggle hide connections
A single child window which contains a view of the simulation area.
void updateUndoRedoButtons()
update toolbar undo/redo buttons (called when user press Ctrl+Z/Y)
long onKeyPress(FXObject *o, FXSelector sel, void *data)
Called when user press a key.
GNETAZFrame * getTAZFrame() const
get frame for NETWORK_TAZ
GNETLSEditorFrame * getTLSEditorFrame() const
get frame for NETWORK_TLS
GNEInspectorFrame * getInspectorFrame() const
get frame for inspect elements
GNECreateEdgeFrame * getCreateEdgeFrame() const
get frame for NETWORK_CREATEEDGE
GNEFrame * getCurrentShownFrame() const
get current frame (note: it can be null)
long onCmdLocate(FXObject *, FXSelector, void *)
locator-callback
long onKeyRelease(FXObject *o, FXSelector sel, void *data)
Called when user releases a key.
void saveViewport(const double x, const double y, const double z, const double rot)
Makes the given viewport the default.
static void initCursors(FXApp *a)
Initiate GUICursorSubSys.
static FXMenuTitle * buildFXMenuTitle(FXComposite *p, const std::string &text, FXIcon *icon, FXMenuPane *menuPane)
build menu title
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
Editor for the list of chosen objects.
const std::string & getMsg() const
Returns the message.
GUIEventType getOwnType() const
returns the event type
GUISUMOAbstractView * getView() const
return GUISUMOAbstractView
static FXIcon * getIcon(const GUIIcon which)
returns a icon previously defined in the enum GUIIcon
static void initIcons(FXApp *a)
Initiate GUIIconSubSys.
static void close()
close GUIIconSubSys
void setWindowSizeAndPos()
perform initial window positioning and sizing according to user options / previous call
std::vector< FXMainWindow * > myTrackerWindows
list of tracker windows
FXLabel * myCartesianCoordinate
Labels for the current cartesian, geo-coordinate and test coordinates.
std::map< std::string, std::string > myOnlineMaps
online mapping services for the context menu
MFXStaticToolTip * myStaticTooltipMenu
static toolTip used in menus
FXMDIClient * myMDIClient
The multi view panel.
FXHorizontalFrame * myGeoFrame
FXHorizontalFrame * myTestFrame
FXHorizontalFrame * myCartesianFrame
FXLabel * myTestCoordinate
FXMutex myTrackerLock
A lock to make the removal and addition of trackers secure.
void storeWindowSizeAndPos()
record window position and size in registry
FXLabel * myGeoCoordinate
FXStatusBar * myStatusbar
The status bar.
FXGLVisual * myGLVisual
The gl-visual used.
std::vector< GUIGlChildWindow * > myGLWindows
list of GLWindows
A logging window for the gui.
void addSeparator()
Adds a a separator to this log window.
void unregisterMsgHandlers()
unregister message handlers
void clear()
Clears the window.
void appendMsg(GUIEventType eType, const std::string &msg)
Adds new text to the window.
void registerMsgHandlers()
register message handlers
virtual double getXPos() const =0
Returns the x-offset of the field to show stored in this changer.
virtual double getYPos() const =0
Returns the y-offset of the field to show stored in this changer.
virtual double getZPos() const =0
Returns the camera height corresponding to the current zoom factor.
void addDecals(const std::vector< Decal > &decals)
add decals
void showViewschemeEditor()
show viewsscheme editor
virtual void showViewportEditor()
show viewport editor
const GUIVisualizationSettings & getVisualisationSettings() const
get visualization settings (read only)
GUIPerspectiveChanger & getChanger() const
get changer
virtual void setViewportFromToRot(const Position &lookFrom, const Position &lookAt, double rotation)
applies the given viewport settings
void destroyPopup()
destroys the popup
An XML-handler for visualisation schemes.
const std::vector< std::string > & addSettings(GUISUMOAbstractView *view=0) const
Adds the parsed settings to the global list of settings.
void applyViewport(GUISUMOAbstractView *view) const
Sets the viewport which has been parsed.
void setSnapshots(GUISUMOAbstractView *view) const
Makes a snapshot if it has been parsed.
const std::vector< GUISUMOAbstractView::Decal > & getDecals() const
Returns the parsed decals.
static void buildNETEDITAccelerators(GNEApplicationWindow *GNEApp)
build NETEDIT Accelerators
static void close()
close GUITextureSubSys
static void resetTextures()
Reset textures.
static void initTextures(FXApp *a)
Initiate GUITextureSubSys for textures.
static std::string clipped
bool drawJunctionShape
whether the shape of the junction should be drawn
bool showGrid
Information whether a grid shall be shown.
static void resetLoaded()
resets loaded location elements
static FXint fxexecute(FXString link)
static FXString getFilename2Write(FXWindow *parent, const FXString &header, const FXString &extension, FXIcon *icon, FXString ¤tFolder)
Returns the file name to write.
static FXString getTitleText(const FXString &appname, FXString filename="")
Returns the title text in dependance to an optional file name.
static bool checkOptions()
Checks set options from the OptionsCont-singleton for being valid.
A storage for available edgeTypes of edges.
int size() const
Returns the number of known edgeTypes.
static bool checkOptions()
Checks set options from the OptionsCont-singleton for being valid.
static bool load(SUMOSAXHandler *handler, const std::vector< std::string > &files, const std::string &type, const bool stringParse=false)
Importer for edge type information stored in XML.
static bool checkOptions()
Checks set options from the OptionsCont-singleton for being valid.
A storage for options typed value containers)
bool isSet(const std::string &name, bool failOnNonExistant=true) const
Returns the information whether the named option is set.
std::string getString(const std::string &name) const
Returns the string-value of the named option (only for Option_String)
bool isDefault(const std::string &name) const
Returns the information whether the named option has still the default value.
bool set(const std::string &name, const std::string &value, const bool append=false)
Sets the given value for the named option.
bool getBool(const std::string &name) const
Returns the boolean-value of the named option (only for Option_Bool)
const StringVector & getStringVector(const std::string &name) const
Returns the list of string-value of the named option (only for Option_StringVector)
void resetWritable()
Resets all options to be writeable.
static OptionsCont & getOptions()
Retrieves the options.
A point in 2D or 3D with translation and scaling methods.
void set(double x, double y)
set positions x and y
double x() const
Returns the x-position.
double y() const
Returns the y-position.
static bool endsWith(const std::string &str, const std::string suffix)
Checks whether a given string ends with the suffix.
static unsigned long runHiddenCommand(const std::string &cmd)
run a shell command without popping up any windows (particuarly on win32)
static bool checkOptions()
checks shared options and sets StdDefs
static void setValidation(const std::string &validationScheme, const std::string &netValidationScheme, const std::string &routeValidationScheme)
Enables or disables validation.
void hideDataViewOptionsMenuChecks()
hide all options menu checks
void buildDataViewOptionsMenuChecks(FXMenuPane *editMenu)
build menu checks
void hideDemandViewOptionsMenuChecks()
hide all options menu checks
void buildDemandViewOptionsMenuChecks(FXMenuPane *editMenu)
build menu checks
void hideNetworkViewOptionsMenuChecks()
hide all options menu checks
void buildNetworkViewOptionsMenuChecks(FXMenuPane *editMenu)
build menu checks
struct for edit menu commands
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
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
void buildFrontElementMenuCommand(FXMenuPane *editMenu)
build front element commands
FXMenuCascade * dataMenuCascade
FXMenuCascade for data.
FXMenuCascade * TLSMenuCascade
FXMenuCascade for TLS.
FXMenuCommand * saveSUMOConfig
FXMenuCommand for enable or disable save SUMOConfig.
FXMenuCommand * saveTLSPrograms
FXMenuCommand for enable or disable save TLS Programs.
FXMenuCascade * demandMenuCascade
FXMenuCascade for demand.
FXMenuCommand * saveEdgeTypes
FXMenuCommand for enable or disable save edgeTypes.
FXMenuCommand * reloadTLSPrograms
FXMenuCommand for reload TLS Programs.
FXMenuCascade * additionalMenuCascade
FXMenuCascade for additional.
FXMenuCommand * saveDemandElementsAs
FXMenuCommand for enable or disable save demand elements as.
FXMenuCommand * saveDataElementsAs
FXMenuCommand for enable or disable save data elements as.
FXMenuCascade * SUMOConfigMenuCascade
FXMenuCascade for SUMOConfig.
FXMenuCommand * saveAdditionals
FXMenuCommand for enable or disable save additionals.
FXMenuCommand * saveDemandElements
FXMenuCommand for enable or disable save demand elements.
FXMenuCommand * reloadSUMOConfig
FXMenuCommand for reload SUMOConfig.
FXMenuCommand * saveDataElements
FXMenuCommand for enable or disable save data elements.
FXMenuCommand * reloadAdditionals
FXMenuCommand for reload additionals.
FXMenuCommand * reloadDataElements
FXMenuCommand for reload data elements.
void buildFileMenuCommands(FXMenuPane *fileMenu, FXMenuPane *fileMenuSUMOConfig, FXMenuPane *fileMenuTLS, FXMenuPane *fileMenuEdgeTypes, FXMenuPane *fileMenuAdditionals, FXMenuPane *fileMenuDemandElements, FXMenuPane *fileMenuDataElements)
build menu commands
FXMenuCommand * reloadDemandElements
FXMenuCommand for reload demand elements.
FXMenuCommand * reloadEdgeTypes
FXMenuCommand for reload Edge Types.
FXMenuCommand * saveAdditionalsAs
FXMenuCommand for enable or disable save additionals As.
FXMenuCascade * edgeTypesMenuCascade
FXMenuCascade for edgeTypes.
void buildLocateMenuCommands(FXMenuPane *locateMenu)
build menu commands
struct for processing menu commands
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
void showDemandLockMenuCommands()
show demand processing menu commands
void unlockAll()
unlock all
void hideDataMenuCommands()
hide all menu commands
void showDataMenuCommands()
show all menu commands
void showDemandMenuCommands()
show all menu commands
void hideDemandMenuCommands()
hide all menu commands
void hideNetworkMenuCommands()
hide all menu commands
void showNetworkMenuCommands()
show all menu commands
void buildModesMenuCommands(FXMenuPane *modesMenu)
build modes menu commands
DemandMenuCommands demandMenuCommands
Demand Menu Commands.
DataMenuCommands dataMenuCommands
Data Menu Commands.
NetworkMenuCommands networkMenuCommands
Network Menu Commands.
struct for processing menu commands
void showDataProcessingMenuCommands()
show data processing menu commands
MFXMenuCheckIcon * menuCheckRecomputeDataMode
checkBox for recomputing when changing data mode
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
void showNetworkProcessingMenuCommands()
show network processing menu commands
void hideNetworkProcessingMenuCommands()
show network processing menu commands
void hideSupermodeCommands()
hide all menu commands
void buildSupermodeCommands(FXMenuPane *editMenu)
build menu commands
void showSupermodeCommands()
show all menu commands
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
void getVisibleDataMenuCommands(std::vector< MFXCheckableButton * > &commands) const
get visible demand menu commands
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.
void getVisibleDemandMenuCommands(std::vector< MFXCheckableButton * > &commands) const
get visible demand menu commands
MFXCheckableButton * menuCheckLockContainer
Lock Container.
DataEditMode dataEditMode
the current Data edit mode
DemandEditMode demandEditMode
the current Demand edit mode
Supermode currentSupermode
the current supermode
NetworkEditMode networkEditMode
the current Network edit mode
bool isCurrentSupermodeDemand() const
@check if current supermode is Demand
bool isCurrentSupermodeData() const
@check if current supermode is Data
bool isCurrentSupermodeNetwork() const
@check if current supermode is Network
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
void getVisibleNetworkMenuCommands(std::vector< MFXCheckableButton * > &commands) const
get visible network menu commands
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