Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
eclipse
GitHub Repository: eclipse/sumo
Path: blob/main/src/netedit/GNEApplicationWindowHelper.cpp
169665 views
1
/****************************************************************************/
2
// Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
3
// Copyright (C) 2001-2025 German Aerospace Center (DLR) and others.
4
// This program and the accompanying materials are made available under the
5
// terms of the Eclipse Public License 2.0 which is available at
6
// https://www.eclipse.org/legal/epl-2.0/
7
// This Source Code may also be made available under the following Secondary
8
// Licenses when the conditions for such availability set forth in the Eclipse
9
// Public License 2.0 are satisfied: GNU General Public License, version 2
10
// or later which is available at
11
// https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
12
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
13
/****************************************************************************/
14
/// @file GNEApplicationWindowHelper.cpp
15
/// @author Jakob Erdmann
16
/// @date Feb 2011
17
///
18
// The main window of Netedit (adapted from GUIApplicationWindow)
19
/****************************************************************************/
20
#include <config.h>
21
22
#include <regex>
23
#include <netedit/dialogs/file/GNEFileDialog.h>
24
#include <netedit/dialogs/tools/GNEPythonToolDialog.h>
25
#include <netedit/dialogs/tools/GNERunPythonToolDialog.h>
26
#include <netedit/elements/GNEAttributeCarrier.h>
27
#include <netedit/GNETagProperties.h>
28
#include <netedit/templates.h>
29
#include <netedit/tools/GNENetDiffTool.h>
30
#include <utils/common/FileHelpers.h>
31
#include <utils/foxtools/MFXMenuCheckIcon.h>
32
#include <utils/gui/div/GUIDesigns.h>
33
#include <utils/handlers/TemplateHandler.h>
34
#include <utils/options/OptionsLoader.h>
35
#include <xercesc/parsers/SAXParser.hpp>
36
#include <xercesc/sax/AttributeList.hpp>
37
#include <xercesc/sax/HandlerBase.hpp>
38
#include <xercesc/sax/SAXException.hpp>
39
#include <xercesc/sax/SAXParseException.hpp>
40
41
#include "GNEApplicationWindow.h"
42
#include "GNEViewNet.h"
43
#include "GNENet.h"
44
45
// ===========================================================================
46
// GNEApplicationWindowHelper::ToolbarsGrip method definitions
47
// ===========================================================================
48
49
GNEApplicationWindowHelper::ToolbarsGrip::ToolbarsGrip(GNEApplicationWindow* applicationWindow) :
50
myApplicationWindow(applicationWindow) {
51
}
52
53
54
void
55
GNEApplicationWindowHelper::ToolbarsGrip::buildMenuToolbarsGrip() {
56
// build menu bar (for File, edit, processing...) using specify design
57
myPythonToolBarShellMenu = new FXToolBarShell(myApplicationWindow, GUIDesignToolBar);
58
menu = new FXMenuBar(myApplicationWindow->getTopDock(), myPythonToolBarShellMenu, GUIDesignToolbarMenuBarNetedit);
59
// declare toolbar grip for menu bar
60
new FXToolBarGrip(menu, menu, FXMenuBar::ID_TOOLBARGRIP, GUIDesignToolBarGrip);
61
}
62
63
64
void
65
GNEApplicationWindowHelper::ToolbarsGrip::buildViewParentToolbarsGrips() {
66
// build toolbar shells
67
myPythonToolBarShellSuperModes = new FXToolBarShell(myApplicationWindow, GUIDesignToolBar);
68
myPythonToolBarShellSaveElements = new FXToolBarShell(myApplicationWindow, GUIDesignToolBar);
69
myPythonToolBarShellTimeFormat = new FXToolBarShell(myApplicationWindow, GUIDesignToolBar);
70
myPythonToolBarShellNavigation = new FXToolBarShell(myApplicationWindow, GUIDesignToolBar);
71
myPythonToolBarShellModes = new FXToolBarShell(myApplicationWindow, GUIDesignToolBar);
72
myPythonToolBarShellIntervalBar = new FXToolBarShell(myApplicationWindow, GUIDesignToolBar);
73
// build menu bars
74
superModes = new FXMenuBar(myApplicationWindow->getTopDock(), myPythonToolBarShellSuperModes, GUIDesignToolBarRaisedSupermodes);
75
saveElements = new FXMenuBar(myApplicationWindow->getTopDock(), myPythonToolBarShellSaveElements, GUIDesignToolBarRaisedNext);
76
timeSwitch = new FXMenuBar(myApplicationWindow->getTopDock(), myPythonToolBarShellTimeFormat, GUIDesignToolBarRaisedSame);
77
navigation = new FXMenuBar(myApplicationWindow->getTopDock(), myPythonToolBarShellNavigation, GUIDesignToolBarRaisedSame);
78
if (OptionsCont::getOptions().getBool("gui-testing")) {
79
modes = new FXMenuBar(myApplicationWindow->getTopDock(), myPythonToolBarShellModes, GUIDesignToolBarRaisedNext);
80
} else {
81
modes = new FXMenuBar(myApplicationWindow->getTopDock(), myPythonToolBarShellModes, GUIDesignToolBarRaisedSame);
82
}
83
intervalBar = new FXMenuBar(myApplicationWindow->getTopDock(), myPythonToolBarShellIntervalBar, GUIDesignToolBarRaisedNext);
84
// build FXToolBarGrip
85
new FXToolBarGrip(superModes, superModes, FXMenuBar::ID_TOOLBARGRIP, GUIDesignToolBarGrip);
86
new FXToolBarGrip(saveElements, saveElements, FXMenuBar::ID_TOOLBARGRIP, GUIDesignToolBarGrip);
87
new FXToolBarGrip(timeSwitch, timeSwitch, FXMenuBar::ID_TOOLBARGRIP, GUIDesignToolBarGrip);
88
new FXToolBarGrip(navigation, navigation, FXMenuBar::ID_TOOLBARGRIP, GUIDesignToolBarGrip);
89
new FXToolBarGrip(modes, modes, FXMenuBar::ID_TOOLBARGRIP, GUIDesignToolBarGrip);
90
new FXToolBarGrip(intervalBar, intervalBar, FXMenuBar::ID_TOOLBARGRIP, GUIDesignToolBarGrip);
91
// create menu bars
92
superModes->create();
93
saveElements->create();
94
timeSwitch->create();
95
navigation->create();
96
modes->create();
97
intervalBar->create();
98
// create toolbar shells
99
myPythonToolBarShellSuperModes->create();
100
myPythonToolBarShellSaveElements->create();
101
myPythonToolBarShellTimeFormat->create();
102
myPythonToolBarShellNavigation->create();
103
myPythonToolBarShellModes->create();
104
myPythonToolBarShellIntervalBar->create();
105
// recalc top dop after creating elements
106
myApplicationWindow->getTopDock()->recalc();
107
}
108
109
110
void
111
GNEApplicationWindowHelper::ToolbarsGrip::destroyParentToolbarsGrips() {
112
// delete Menu bars
113
delete superModes;
114
delete saveElements;
115
delete timeSwitch;
116
delete navigation;
117
delete modes;
118
delete intervalBar;
119
// also delete toolbar shells to avoid floating windows
120
delete myPythonToolBarShellSuperModes;
121
delete myPythonToolBarShellSaveElements;
122
delete myPythonToolBarShellTimeFormat;
123
delete myPythonToolBarShellNavigation;
124
delete myPythonToolBarShellModes;
125
delete myPythonToolBarShellIntervalBar;
126
// recalc top dop after deleting elements
127
myApplicationWindow->getTopDock()->recalc();
128
}
129
130
// ===========================================================================
131
// GNEApplicationWindowHelper::MenuBarFile method definitions
132
// ===========================================================================
133
134
GNEApplicationWindowHelper::MenuBarFile::MenuBarFile(GNEApplicationWindow* applicationWindow) :
135
myRecentNetworks(applicationWindow->getApp(), TL("nets")),
136
myRecentConfigs(applicationWindow->getApp(), TL("configs")),
137
myApplicationWindow(applicationWindow) {
138
}
139
140
141
void
142
GNEApplicationWindowHelper::MenuBarFile::buildRecentNetworkFiles(FXMenuPane* fileMenu, FXMenuPane* fileMenuRecentNetworkFiles) {
143
// for whatever reason, sonar complains in the next line that sep1 may leak, but fox does the cleanup
144
GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentNetworkFiles, "", &myRecentNetworks, FXRecentFiles::ID_FILE_1);
145
GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentNetworkFiles, "", &myRecentNetworks, FXRecentFiles::ID_FILE_2);
146
GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentNetworkFiles, "", &myRecentNetworks, FXRecentFiles::ID_FILE_3);
147
GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentNetworkFiles, "", &myRecentNetworks, FXRecentFiles::ID_FILE_4);
148
GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentNetworkFiles, "", &myRecentNetworks, FXRecentFiles::ID_FILE_5);
149
GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentNetworkFiles, "", &myRecentNetworks, FXRecentFiles::ID_FILE_6);
150
GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentNetworkFiles, "", &myRecentNetworks, FXRecentFiles::ID_FILE_7);
151
GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentNetworkFiles, "", &myRecentNetworks, FXRecentFiles::ID_FILE_8);
152
GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentNetworkFiles, "", &myRecentNetworks, FXRecentFiles::ID_FILE_9);
153
GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentNetworkFiles, "", &myRecentNetworks, FXRecentFiles::ID_FILE_10);
154
new FXMenuSeparator(fileMenuRecentNetworkFiles); // NOSONAR, Fox does the cleanup
155
GUIDesigns::buildFXMenuCommand(fileMenuRecentNetworkFiles, TL("Cl&ear Recent Networks"), nullptr, &myRecentNetworks, FXRecentFiles::ID_CLEAR);
156
GUIDesigns::buildFXMenuCommand(fileMenuRecentNetworkFiles, TL("No Recent Networks"), nullptr, &myRecentNetworks, MFXRecentNetworks::ID_NOFILES);
157
// set target
158
myRecentNetworks.setTarget(myApplicationWindow);
159
myRecentNetworks.setSelector(MID_RECENTFILE);
160
new FXMenuCascade(fileMenu, TL("Recent Networks"), nullptr, fileMenuRecentNetworkFiles);
161
}
162
163
164
void
165
GNEApplicationWindowHelper::MenuBarFile::buildRecentConfigFiles(FXMenuPane* fileMenu, FXMenuPane* fileMenuRecentConfigFiles) {
166
// for whatever reason, sonar complains in the next line that sep1 may leak, but fox does the cleanup
167
GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentConfigFiles, "", &myRecentConfigs, FXRecentFiles::ID_FILE_1);
168
GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentConfigFiles, "", &myRecentConfigs, FXRecentFiles::ID_FILE_2);
169
GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentConfigFiles, "", &myRecentConfigs, FXRecentFiles::ID_FILE_3);
170
GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentConfigFiles, "", &myRecentConfigs, FXRecentFiles::ID_FILE_4);
171
GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentConfigFiles, "", &myRecentConfigs, FXRecentFiles::ID_FILE_5);
172
GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentConfigFiles, "", &myRecentConfigs, FXRecentFiles::ID_FILE_6);
173
GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentConfigFiles, "", &myRecentConfigs, FXRecentFiles::ID_FILE_7);
174
GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentConfigFiles, "", &myRecentConfigs, FXRecentFiles::ID_FILE_8);
175
GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentConfigFiles, "", &myRecentConfigs, FXRecentFiles::ID_FILE_9);
176
GUIDesigns::buildFXMenuCommandRecentFile(fileMenuRecentConfigFiles, "", &myRecentConfigs, FXRecentFiles::ID_FILE_10);
177
new FXMenuSeparator(fileMenuRecentConfigFiles); // NOSONAR, Fox does the cleanup
178
GUIDesigns::buildFXMenuCommand(fileMenuRecentConfigFiles, TL("Cl&ear Recent Configs"), nullptr, &myRecentConfigs, FXRecentFiles::ID_CLEAR);
179
GUIDesigns::buildFXMenuCommand(fileMenuRecentConfigFiles, TL("No Recent Configs"), nullptr, &myRecentConfigs, MFXRecentNetworks::ID_NOFILES);
180
// set target
181
myRecentConfigs.setTarget(myApplicationWindow);
182
myRecentConfigs.setSelector(MID_RECENTFILE);
183
new FXMenuCascade(fileMenu, TL("Recent Configs"), nullptr, fileMenuRecentConfigFiles);
184
}
185
186
// ---------------------------------------------------------------------------
187
// GNEApplicationWindowHelper::FileMenuCommands - methods
188
// ---------------------------------------------------------------------------
189
190
GNEApplicationWindowHelper::FileMenuCommands::FileMenuCommands(GNEApplicationWindow* applicationWindow) :
191
myApplicationWindow(applicationWindow) {
192
}
193
194
195
void
196
GNEApplicationWindowHelper::FileMenuCommands::buildFileMenuCommands(FXMenuPane* fileMenu, FXMenuPane* fileMenuNeteditConfig,
197
FXMenuPane* fileMenuSumoConfig, FXMenuPane* fileMenuTLS, FXMenuPane* fileMenuEdgeTypes, FXMenuPane* fileMenuAdditionals,
198
FXMenuPane* fileMenuDemandElements, FXMenuPane* fileMenuDataElements, FXMenuPane* fileMenuMeanDataElements) {
199
200
GUIDesigns::buildFXMenuCommandShortcut(fileMenu,
201
TL("New Network"), "Ctrl+N", TL("Create a new network."),
202
GUIIconSubSys::getIcon(GUIIcon::NEW_NET), myApplicationWindow, MID_HOTKEY_CTRL_N_OPENNETWORK_NEWNETWORK);
203
204
GUIDesigns::buildFXMenuCommandShortcut(fileMenu,
205
TL("New Window"), "Ctrl+Shift+N", TL("Open a new netedit window."),
206
nullptr, myApplicationWindow, MID_HOTKEY_CTRL_SHIFT_N_NEWWINDOW);
207
208
GUIDesigns::buildFXMenuCommandShortcut(fileMenu,
209
TL("Generate Network"), "", TL("Create network using netgenerate."),
210
GUIIconSubSys::getIcon(GUIIcon::NETGENERATE), myApplicationWindow, MID_GNE_NETGENERATE);
211
212
// load sumo/netedit configs
213
new FXMenuSeparator(fileMenu);
214
215
GUIDesigns::buildFXMenuCommandShortcut(fileMenu,
216
TL("Load Netedit config..."), "Ctrl+E", TL("Load a netedit configuration file."),
217
GUIIconSubSys::getIcon(GUIIcon::OPEN_NETEDITCONFIG), myApplicationWindow, MID_HOTKEY_CTRL_E_EDITSELECTION_LOADNETEDITCONFIG);
218
219
GUIDesigns::buildFXMenuCommandShortcut(fileMenu,
220
TL("Load Sumo config..."), "Ctrl+M", TL("Load a SUMO configuration file."),
221
GUIIconSubSys::getIcon(GUIIcon::OPEN_SUMOCONFIG), myApplicationWindow, MID_HOTKEY_CTRL_M_OPENSUMOCONFIG);
222
223
// load networks
224
new FXMenuSeparator(fileMenu);
225
226
GUIDesigns::buildFXMenuCommandShortcut(fileMenu,
227
TL("Open Network..."), "Ctrl+O", TL("Open a SUMO network."),
228
GUIIconSubSys::getIcon(GUIIcon::OPEN_NET), myApplicationWindow, MID_HOTKEY_CTRL_O_OPENSIMULATION_OPENNETWORK);
229
230
GUIDesigns::buildFXMenuCommandShortcut(fileMenu,
231
TL("Open Netconvert Configuration..."), "Ctrl+Shift+O", TL("Open a configuration file with NETCONVERT options."),
232
GUIIconSubSys::getIcon(GUIIcon::OPEN), myApplicationWindow, MID_HOTKEY_CTRL_SHIFT_O_OPENNETCONVERTFILE);
233
234
GUIDesigns::buildFXMenuCommandShortcut(fileMenu,
235
TL("Import Foreign Network..."), "", TL("Import a foreign network such as OSM."),
236
GUIIconSubSys::getIcon(GUIIcon::OPEN_NET), myApplicationWindow, MID_GNE_TOOLBARFILE_OPENFOREIGN);
237
238
// save networks
239
new FXMenuSeparator(fileMenu);
240
241
GUIDesigns::buildFXMenuCommandShortcut(fileMenu,
242
TL("Save Network"), "Ctrl+S", TL("Save the network."),
243
GUIIconSubSys::getIcon(GUIIcon::SAVE_NETWORKELEMENTS), myApplicationWindow, MID_HOTKEY_CTRL_S_STOPSIMULATION_SAVENETWORK);
244
245
GUIDesigns::buildFXMenuCommandShortcut(fileMenu,
246
TL("Save Network As..."), "", TL("Save the network to another file."),
247
GUIIconSubSys::getIcon(GUIIcon::SAVE_NETWORKELEMENTS), myApplicationWindow, MID_GNE_TOOLBARFILE_SAVENETWORK_AS);
248
249
GUIDesigns::buildFXMenuCommandShortcut(fileMenu,
250
TL("Save Plain XML..."), "Ctrl+L", TL("Save a plain XML representation of the network."),
251
GUIIconSubSys::getIcon(GUIIcon::SAVE), myApplicationWindow, MID_HOTKEY_CTRL_L_SAVEASPLAINXML);
252
253
GUIDesigns::buildFXMenuCommandShortcut(fileMenu,
254
TL("Save Joined Junctions..."), "", TL("Save log of joined junctions (allows reproduction of joins)."),
255
GUIIconSubSys::getIcon(GUIIcon::SAVE), myApplicationWindow, MID_GNE_SAVEJOINEDJUNCTIONS);
256
257
// reload
258
new FXMenuSeparator(fileMenu);
259
260
GUIDesigns::buildFXMenuCommandShortcut(fileMenu,
261
TL("Reload"), "Ctrl+R", TL("Reload the network."),
262
GUIIconSubSys::getIcon(GUIIcon::RELOAD), myApplicationWindow, MID_HOTKEY_CTRL_R_RELOAD);
263
264
GUIDesigns::buildFXMenuCommandShortcut(fileMenu,
265
TL("Reload Network"), "", TL("Reload the network."),
266
GUIIconSubSys::getIcon(GUIIcon::RELOAD), myApplicationWindow, MID_GNE_TOOLBARFILE_RELOADNETWORK);
267
268
new FXMenuSeparator(fileMenu);
269
270
// create netedit config menu options
271
buildNeteditConfigSection(fileMenuNeteditConfig);
272
myNeteditConfigMenuCascade = new FXMenuCascade(fileMenu, TL("Netedit Config"), GUIIconSubSys::getIcon(GUIIcon::NETEDIT_MINI), fileMenuNeteditConfig);
273
274
// create SumoConfig menu options
275
buildSumoConfigSection(fileMenuSumoConfig);
276
mySumoConfigMenuCascade = new FXMenuCascade(fileMenu, TL("Sumo Config"), GUIIconSubSys::getIcon(GUIIcon::SUMO_MINI), fileMenuSumoConfig);
277
278
// create TLS menu options
279
buildTrafficLightSection(fileMenuTLS);
280
myTLSMenuCascade = new FXMenuCascade(fileMenu, TL("Traffic Lights"), GUIIconSubSys::getIcon(GUIIcon::MODETLS), fileMenuTLS);
281
282
// create edgeTypes menu options
283
buildEdgeTypeSection(fileMenuEdgeTypes);
284
myEdgeTypesMenuCascade = new FXMenuCascade(fileMenu, TL("Edge Types"), GUIIconSubSys::getIcon(GUIIcon::MODECREATEEDGE), fileMenuEdgeTypes);
285
286
// create Additionals menu options
287
buildAdditionalSection(fileMenuAdditionals);
288
myAdditionalMenuCascade = new FXMenuCascade(fileMenu, TL("Additionals and Shapes"), GUIIconSubSys::getIcon(GUIIcon::MODEADDITIONAL), fileMenuAdditionals);
289
290
// create DemandElements menu options
291
buildDemandSection(fileMenuDemandElements);
292
myDemandMenuCascade = new FXMenuCascade(fileMenu, TL("Demand Elements"), GUIIconSubSys::getIcon(GUIIcon::SUPERMODEDEMAND), fileMenuDemandElements);
293
294
// create DataElements menu options
295
buildDataSection(fileMenuDataElements);
296
myDataMenuCascade = new FXMenuCascade(fileMenu, TL("Data Elements"), GUIIconSubSys::getIcon(GUIIcon::SUPERMODEDATA), fileMenuDataElements);
297
298
// create MeanDatas menu options
299
buildMeanDataSection(fileMenuMeanDataElements);
300
myMeanDataMenuCascade = new FXMenuCascade(fileMenu, TL("MeanData Elements"), GUIIconSubSys::getIcon(GUIIcon::MODEMEANDATA), fileMenuMeanDataElements);
301
302
// add checkBox for quick load
303
new FXMenuSeparator(fileMenu);
304
menuCheckAllowUndoRedoLoading = GUIDesigns::buildFXMenuCheckbox(fileMenu,
305
TL("Allow undoing element loading"), TL("Allow to undo loading of elements (Slow if a lot of elements are loaded)"),
306
myApplicationWindow, MID_GNE_TOGGLE_UNDOREDO_LOADING);
307
// set default value
308
menuCheckAllowUndoRedoLoading->setCheck(myApplicationWindow->getApp()->reg().readBoolEntry("NETEDIT", "AllowUndoRedoLoading", true));
309
310
// close network
311
new FXMenuSeparator(fileMenu);
312
GUIDesigns::buildFXMenuCommandShortcut(fileMenu,
313
TL("Close"), "Ctrl+W", TL("Close the network."),
314
GUIIconSubSys::getIcon(GUIIcon::CLOSE), myApplicationWindow, MID_HOTKEY_CTRL_W_CLOSESIMULATION);
315
}
316
317
318
void
319
GNEApplicationWindowHelper::FileMenuCommands::enableMenuCascades() {
320
mySumoConfigMenuCascade->enable();
321
myNeteditConfigMenuCascade->enable();
322
myTLSMenuCascade->enable();
323
myEdgeTypesMenuCascade->enable();
324
myAdditionalMenuCascade->enable();
325
myDemandMenuCascade->enable();
326
myDataMenuCascade->enable();
327
myMeanDataMenuCascade->enable();
328
}
329
330
331
void
332
GNEApplicationWindowHelper::FileMenuCommands::disableMenuCascades() {
333
mySumoConfigMenuCascade->disable();
334
myNeteditConfigMenuCascade->disable();
335
myTLSMenuCascade->disable();
336
myEdgeTypesMenuCascade->disable();
337
myAdditionalMenuCascade->disable();
338
myDemandMenuCascade->disable();
339
myDataMenuCascade->disable();
340
myMeanDataMenuCascade->disable();
341
}
342
343
344
void
345
GNEApplicationWindowHelper::FileMenuCommands::setDefaultView() {
346
myTLSMenuCascade->show();
347
myDataMenuCascade->show();
348
myMeanDataMenuCascade->show();
349
}
350
351
352
void
353
GNEApplicationWindowHelper::FileMenuCommands::setJuPedSimView() {
354
myTLSMenuCascade->hide();
355
myDataMenuCascade->hide();
356
myMeanDataMenuCascade->hide();
357
}
358
359
360
void
361
GNEApplicationWindowHelper::FileMenuCommands::buildNeteditConfigSection(FXMenuPane* menuPane) {
362
GUIDesigns::buildFXMenuCommandShortcut(menuPane,
363
TL("Save Netedit Config"), "Ctrl+Shift+E", TL("Save netedit configuration file."),
364
GUIIconSubSys::getIcon(GUIIcon::SAVE_NETEDITCONFIG), myApplicationWindow, MID_HOTKEY_CTRL_SHIFT_E_SAVENETEDITCONFIG);
365
366
GUIDesigns::buildFXMenuCommandShortcut(menuPane,
367
TL("Save Netedit Config As..."), "", TL("Save netedit configuration in a new file."),
368
GUIIconSubSys::getIcon(GUIIcon::SAVE_NETEDITCONFIG), myApplicationWindow, MID_GNE_TOOLBARFILE_SAVENETEDITCONFIG_AS);
369
370
new FXMenuSeparator(menuPane);
371
372
GUIDesigns::buildFXMenuCommandShortcut(menuPane,
373
TL("Reload Netedit Config"), "", TL("Reload netedit configuration."),
374
GUIIconSubSys::getIcon(GUIIcon::RELOAD), myApplicationWindow, MID_GNE_TOOLBARFILE_RELOAD_NETEDITCONFIG);
375
}
376
377
378
void
379
GNEApplicationWindowHelper::FileMenuCommands::buildSumoConfigSection(FXMenuPane* menuPane) {
380
GUIDesigns::buildFXMenuCommandShortcut(menuPane,
381
TL("Save Sumo Config"), "Ctrl+Shift+S", TL("Save sumo configuration file."),
382
GUIIconSubSys::getIcon(GUIIcon::SAVE_SUMOCONFIG), myApplicationWindow, MID_HOTKEY_CTRL_SHIFT_S_SAVESUMOCONFIG);
383
384
GUIDesigns::buildFXMenuCommandShortcut(menuPane,
385
TL("Save Sumo Config As..."), "", TL("Save sumo configuration in a new file."),
386
GUIIconSubSys::getIcon(GUIIcon::SAVE_SUMOCONFIG), myApplicationWindow, MID_GNE_TOOLBARFILE_SAVESUMOCONFIG_AS);
387
388
new FXMenuSeparator(menuPane);
389
390
GUIDesigns::buildFXMenuCommandShortcut(menuPane,
391
TL("Reload Sumo Config"), "", TL("Reload sumo configuration."),
392
GUIIconSubSys::getIcon(GUIIcon::RELOAD), myApplicationWindow, MID_GNE_TOOLBARFILE_RELOAD_SUMOCONFIG);
393
}
394
395
396
void
397
GNEApplicationWindowHelper::FileMenuCommands::buildTrafficLightSection(FXMenuPane* menuPane) {
398
GUIDesigns::buildFXMenuCommandShortcut(menuPane,
399
TL("Load TLS Programs..."), "Ctrl+K", TL("Load programs for traffic lights in the current net."),
400
GUIIconSubSys::getIcon(GUIIcon::OPEN_TLSPROGRAMS), myApplicationWindow, MID_HOTKEY_CTRL_K_OPENTLSPROGRAMS);
401
402
new FXMenuSeparator(menuPane);
403
404
GUIDesigns::buildFXMenuCommandShortcut(menuPane,
405
TL("Save TLS Programs"), "Ctrl+Shift+K", TL("Save all traffic light programs of the current network."),
406
GUIIconSubSys::getIcon(GUIIcon::SAVE), myApplicationWindow, MID_HOTKEY_CTRL_SHIFT_K_SAVETLS);
407
408
GUIDesigns::buildFXMenuCommandShortcut(menuPane,
409
TL("Save TLS Programs As..."), "", TL("Save all traffic light programs of the current network to another file."),
410
GUIIconSubSys::getIcon(GUIIcon::SAVE), myApplicationWindow, MID_GNE_TOOLBARFILE_SAVETLSPROGRAMS_AS);
411
412
new FXMenuSeparator(menuPane);
413
414
GUIDesigns::buildFXMenuCommandShortcut(menuPane,
415
TL("Reload TLS Programs"), "", TL("Reload TLS Programs."),
416
GUIIconSubSys::getIcon(GUIIcon::RELOAD), myApplicationWindow, MID_GNE_TOOLBARFILE_RELOAD_TLSPROGRAMS);
417
}
418
419
420
void
421
GNEApplicationWindowHelper::FileMenuCommands::buildEdgeTypeSection(FXMenuPane* menuPane) {
422
GUIDesigns::buildFXMenuCommandShortcut(menuPane,
423
TL("Load Edge Types..."), "Ctrl+H", TL("Load edge types in the current net."),
424
GUIIconSubSys::getIcon(GUIIcon::OPEN_TLSPROGRAMS), myApplicationWindow, MID_HOTKEY_CTRL_H_APPSETTINGS_OPENEDGETYPES);
425
426
new FXMenuSeparator(menuPane);
427
428
GUIDesigns::buildFXMenuCommandShortcut(menuPane,
429
TL("Save Edge Types"), "Ctrl+Shift+H", TL("Save edge types of the current net."),
430
GUIIconSubSys::getIcon(GUIIcon::SAVE), myApplicationWindow, MID_HOTKEY_CTRL_SHIFT_H_SAVEEDGETYPES);
431
432
GUIDesigns::buildFXMenuCommandShortcut(menuPane,
433
TL("Save Edge Types As..."), "", TL("Save edge types of the current net to another file."),
434
GUIIconSubSys::getIcon(GUIIcon::SAVE), myApplicationWindow, MID_GNE_TOOLBARFILE_SAVEEDGETYPES_AS);
435
436
new FXMenuSeparator(menuPane);
437
438
GUIDesigns::buildFXMenuCommandShortcut(menuPane,
439
TL("Reload edge types"), "", TL("Reload edge types."),
440
GUIIconSubSys::getIcon(GUIIcon::RELOAD), myApplicationWindow, MID_GNE_TOOLBARFILE_RELOAD_EDGETYPES);
441
}
442
443
444
void
445
GNEApplicationWindowHelper::FileMenuCommands::buildAdditionalSection(FXMenuPane* menuPane) {
446
GUIDesigns::buildFXMenuCommandShortcut(menuPane,
447
TL("Load Additionals..."), "Ctrl+A", TL("Load additionals and shapes."),
448
GUIIconSubSys::getIcon(GUIIcon::OPEN_ADDITIONALS), myApplicationWindow, MID_HOTKEY_CTRL_A_STARTSIMULATION_OPENADDITIONALELEMENTS);
449
450
new FXMenuSeparator(menuPane);
451
452
GUIDesigns::buildFXMenuCommandShortcut(menuPane,
453
TL("Save Additionals"), "Ctrl+Shift+A", TL("Save additionals and shapes."),
454
GUIIconSubSys::getIcon(GUIIcon::SAVE_ADDITIONALELEMENTS), myApplicationWindow, MID_HOTKEY_CTRL_SHIFT_A_SAVEADDITIONALELEMENTS);
455
456
GUIDesigns::buildFXMenuCommandShortcut(menuPane,
457
TL("Save Additionals unified as..."), "", TL("Save all additional elements to the chosen file."),
458
GUIIconSubSys::getIcon(GUIIcon::SAVE_ADDITIONALELEMENTS), myApplicationWindow, MID_GNE_TOOLBARFILE_SAVEADDITIONALELEMENTS_UNIFIED);
459
460
GUIDesigns::buildFXMenuCommandShortcut(menuPane,
461
TL("Save JuPedSim Elements as..."), "", TL("Save JuPedSim elements in a separated file."),
462
GUIIconSubSys::getIcon(GUIIcon::SAVE_JUPEDSIMELEMENTS), myApplicationWindow, MID_GNE_TOOLBARFILE_SAVEJUPEDSIMELEMENTS_AS);
463
464
new FXMenuSeparator(menuPane);
465
466
GUIDesigns::buildFXMenuCommandShortcut(menuPane,
467
TL("Reload Additionals"), "", TL("Reload additionals."),
468
GUIIconSubSys::getIcon(GUIIcon::RELOAD), myApplicationWindow, MID_GNE_TOOLBARFILE_RELOAD_ADDITIONALELEMENTS);
469
}
470
471
472
void
473
GNEApplicationWindowHelper::FileMenuCommands::buildDemandSection(FXMenuPane* menuPane) {
474
GUIDesigns::buildFXMenuCommandShortcut(menuPane,
475
TL("Load Demand Elements..."), "Ctrl+D", TL("Load demand elements."),
476
GUIIconSubSys::getIcon(GUIIcon::OPEN_ADDITIONALS), myApplicationWindow, MID_HOTKEY_CTRL_D_SINGLESIMULATIONSTEP_OPENDEMANDELEMENTS);
477
478
new FXMenuSeparator(menuPane);
479
480
GUIDesigns::buildFXMenuCommandShortcut(menuPane,
481
TL("Save Demand Elements"), "Ctrl+Shift+D", TL("Save demand elements."),
482
GUIIconSubSys::getIcon(GUIIcon::SAVE_DEMANDELEMENTS), myApplicationWindow, MID_HOTKEY_CTRL_SHIFT_D_SAVEDEMANDELEMENTS);
483
484
GUIDesigns::buildFXMenuCommandShortcut(menuPane,
485
TL("Save Demand Elements unified as..."), "", TL("Save all demand elements to the chosen file"),
486
GUIIconSubSys::getIcon(GUIIcon::SAVE_DEMANDELEMENTS), myApplicationWindow, MID_GNE_TOOLBARFILE_SAVEDEMANDELEMENTS_UNIFIED);
487
488
new FXMenuSeparator(menuPane);
489
490
GUIDesigns::buildFXMenuCommandShortcut(menuPane,
491
TL("Reload Demand Elements"), "", TL("Reload demand elements."),
492
GUIIconSubSys::getIcon(GUIIcon::RELOAD), myApplicationWindow, MID_GNE_TOOLBARFILE_RELOAD_DEMANDELEMENTS);
493
}
494
495
496
void
497
GNEApplicationWindowHelper::FileMenuCommands::buildDataSection(FXMenuPane* menuPane) {
498
GUIDesigns::buildFXMenuCommandShortcut(menuPane,
499
TL("Load Data Elements..."), "Ctrl+B", TL("Load data elements."),
500
GUIIconSubSys::getIcon(GUIIcon::OPEN_ADDITIONALS), myApplicationWindow, MID_HOTKEY_CTRL_B_EDITBREAKPOINT_OPENDATAELEMENTS);
501
502
new FXMenuSeparator(menuPane);
503
504
GUIDesigns::buildFXMenuCommandShortcut(menuPane,
505
TL("Save Data Elements"), "Ctrl+Shift+B", TL("Save data elements."),
506
GUIIconSubSys::getIcon(GUIIcon::SAVE_DATAELEMENTS), myApplicationWindow, MID_HOTKEY_CTRL_SHIFT_B_SAVEDATAELEMENTS);
507
508
GUIDesigns::buildFXMenuCommandShortcut(menuPane,
509
TL("Save Data Elements unified as..."), "", TL("Save all data elements to the chosen file."),
510
GUIIconSubSys::getIcon(GUIIcon::SAVE_DATAELEMENTS), myApplicationWindow, MID_GNE_TOOLBARFILE_SAVEDATAELEMENTS_UNIFIED);
511
512
new FXMenuSeparator(menuPane);
513
514
GUIDesigns::buildFXMenuCommandShortcut(menuPane,
515
TL("Reload Data Elements"), "", TL("Reload data elements."),
516
GUIIconSubSys::getIcon(GUIIcon::RELOAD), myApplicationWindow, MID_GNE_TOOLBARFILE_RELOAD_DATAELEMENTS);
517
}
518
519
520
void
521
GNEApplicationWindowHelper::FileMenuCommands::buildMeanDataSection(FXMenuPane* menuPane) {
522
GUIDesigns::buildFXMenuCommandShortcut(menuPane,
523
TL("Load MeanDatas..."), "", TL("Load meanDatas and shapes."),
524
GUIIconSubSys::getIcon(GUIIcon::OPEN_MEANDATAS), myApplicationWindow, MID_GNE_TOOLBARFILE_OPENMEANDATAELEMENTS);
525
526
new FXMenuSeparator(menuPane);
527
528
GUIDesigns::buildFXMenuCommandShortcut(menuPane,
529
TL("Save MeanDatas"), "", TL("Save meanDatas and shapes."),
530
GUIIconSubSys::getIcon(GUIIcon::SAVE_MEANDATAELEMENTS), myApplicationWindow, MID_HOTKEY_CTRL_SHIFT_M_SAVEMEANDATAELEMENTS);
531
532
GUIDesigns::buildFXMenuCommandShortcut(menuPane,
533
TL("Save MeanDatas unified as..."), "Ctrl+Shift+M", TL("Save all meanData elements to the chosen file."),
534
GUIIconSubSys::getIcon(GUIIcon::SAVE_MEANDATAELEMENTS), myApplicationWindow, MID_GNE_TOOLBARFILE_SAVEMEANDATAELEMENTS_UNIFIED);
535
536
new FXMenuSeparator(menuPane);
537
538
GUIDesigns::buildFXMenuCommandShortcut(menuPane,
539
TL("Reload MeanDatas"), "", TL("Reload meanDatas."),
540
GUIIconSubSys::getIcon(GUIIcon::RELOAD), myApplicationWindow, MID_GNE_TOOLBARFILE_RELOAD_MEANDATAELEMENTS);
541
}
542
543
// ---------------------------------------------------------------------------
544
// GNEApplicationWindowHelper::ModesMenuCommands::CommonMenuCommands - methods
545
// ---------------------------------------------------------------------------
546
547
GNEApplicationWindowHelper::ModesMenuCommands::CommonMenuCommands::CommonMenuCommands(const ModesMenuCommands* modesMenuCommandsParent) :
548
myModesMenuCommandsParent(modesMenuCommandsParent) {
549
}
550
551
552
void
553
GNEApplicationWindowHelper::ModesMenuCommands::CommonMenuCommands::buildCommonMenuCommands(FXMenuPane* modesMenu) {
554
// build every FXMenuCommand giving it a shortcut
555
inspectMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
556
TL("&Inspect"), "I", TL("Inspect elements and change their attributes."),
557
GUIIconSubSys::getIcon(GUIIcon::MODEINSPECT), myModesMenuCommandsParent->myApplicationWindow, MID_HOTKEY_I_MODE_INSPECT);
558
deleteMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
559
TL("&Delete"), "D", TL("Delete elements."),
560
GUIIconSubSys::getIcon(GUIIcon::MODEDELETE), myModesMenuCommandsParent->myApplicationWindow, MID_HOTKEY_D_MODE_SINGLESIMULATIONSTEP_DELETE);
561
selectMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
562
TL("&Select"), "S", TL("Select elements."),
563
GUIIconSubSys::getIcon(GUIIcon::MODESELECT), myModesMenuCommandsParent->myApplicationWindow, MID_HOTKEY_S_MODE_STOPSIMULATION_SELECT);
564
}
565
566
// ---------------------------------------------------------------------------
567
// GNEApplicationWindowHelper::ModesMenuCommands::NetworkMenuCommands - methods
568
// ---------------------------------------------------------------------------
569
570
GNEApplicationWindowHelper::ModesMenuCommands::NetworkMenuCommands::NetworkMenuCommands(const ModesMenuCommands* modesMenuCommandsParent) :
571
myModesMenuCommandsParent(modesMenuCommandsParent) {
572
}
573
574
575
void
576
GNEApplicationWindowHelper::ModesMenuCommands::NetworkMenuCommands::showNetworkMenuCommands() {
577
createEdgeMode->show();
578
moveMode->show();
579
connectMode->show();
580
prohibitionMode->show();
581
TLSMode->show();
582
additionalMode->show();
583
crossingMode->show();
584
TAZMode->show();
585
shapeMode->show();
586
wireMode->show();
587
decalMode->show();
588
}
589
590
591
void
592
GNEApplicationWindowHelper::ModesMenuCommands::NetworkMenuCommands::hideNetworkMenuCommands() {
593
createEdgeMode->hide();
594
moveMode->hide();
595
connectMode->hide();
596
prohibitionMode->hide();
597
TLSMode->hide();
598
additionalMode->hide();
599
crossingMode->hide();
600
TAZMode->hide();
601
shapeMode->hide();
602
wireMode->hide();
603
decalMode->hide();
604
}
605
606
607
void
608
GNEApplicationWindowHelper::ModesMenuCommands::NetworkMenuCommands::buildNetworkMenuCommands(FXMenuPane* modesMenu) {
609
// build every FXMenuCommand giving it a shortcut
610
moveMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
611
TL("&Move"), "M", TL("Move elements."),
612
GUIIconSubSys::getIcon(GUIIcon::MODEMOVE), myModesMenuCommandsParent->myApplicationWindow,
613
MID_HOTKEY_M_MODE_MOVE_MEANDATA);
614
createEdgeMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
615
TL("&Edge"), "E", TL("Create junction and edges."),
616
GUIIconSubSys::getIcon(GUIIcon::MODECREATEEDGE), myModesMenuCommandsParent->myApplicationWindow,
617
MID_HOTKEY_E_MODE_EDGE_EDGEDATA);
618
TLSMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
619
TL("&Traffic light"), "T", TL("Modes traffic lights over junctions."),
620
GUIIconSubSys::getIcon(GUIIcon::MODETLS), myModesMenuCommandsParent->myApplicationWindow,
621
MID_HOTKEY_T_MODE_TLS_TYPE);
622
connectMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
623
TL("&Connection"), "C", TL("Modes connections between lanes."),
624
GUIIconSubSys::getIcon(GUIIcon::MODECONNECTION), myModesMenuCommandsParent->myApplicationWindow,
625
MID_HOTKEY_C_MODE_CONNECT_CONTAINER);
626
prohibitionMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
627
TL("Pro&hibition"), "H", TL("Modes connection prohibitions."),
628
GUIIconSubSys::getIcon(GUIIcon::MODEPROHIBITION), myModesMenuCommandsParent->myApplicationWindow,
629
MID_HOTKEY_H_MODE_PROHIBITION_CONTAINERPLAN);
630
crossingMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
631
TL("C&rossing"), "R", TL("Create crossings between edges."),
632
GUIIconSubSys::getIcon(GUIIcon::MODECROSSING), myModesMenuCommandsParent->myApplicationWindow,
633
MID_HOTKEY_R_MODE_CROSSING_ROUTE_EDGERELDATA);
634
additionalMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
635
TL("&Additional"), "A", TL("Create additional elements."),
636
GUIIconSubSys::getIcon(GUIIcon::MODEADDITIONAL), myModesMenuCommandsParent->myApplicationWindow,
637
MID_HOTKEY_A_MODE_STARTSIMULATION_ADDITIONALS_STOPS);
638
wireMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
639
TL("&Wire"), "W", TL("Create wires."),
640
GUIIconSubSys::getIcon(GUIIcon::MODEWIRE), myModesMenuCommandsParent->myApplicationWindow,
641
MID_HOTKEY_W_MODE_WIRE_ROUTEDISTRIBUTION);
642
TAZMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
643
TL("TA&Z"), "Z", TL("Create Traffic Assignment Zones."),
644
GUIIconSubSys::getIcon(GUIIcon::MODETAZ), myModesMenuCommandsParent->myApplicationWindow,
645
MID_HOTKEY_Z_MODE_TAZ_TAZREL);
646
shapeMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
647
TL("&POI-Poly"), "P", TL("Create Points-Of-Interest and polygons."),
648
GUIIconSubSys::getIcon(GUIIcon::MODESHAPE), myModesMenuCommandsParent->myApplicationWindow,
649
MID_HOTKEY_P_MODE_POLYGON_PERSON);
650
decalMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
651
TL("Deca&ls"), "U", TL("Create decals."),
652
GUIIconSubSys::getIcon(GUIIcon::MODEDECAL), myModesMenuCommandsParent->myApplicationWindow,
653
MID_HOTKEY_U_MODE_DECAL_TYPEDISTRIBUTION);
654
}
655
656
// ---------------------------------------------------------------------------
657
// GNEApplicationWindowHelper::ModesMenuCommands::DemandMenuCommands - methods
658
// ---------------------------------------------------------------------------
659
660
GNEApplicationWindowHelper::ModesMenuCommands::DemandMenuCommands::DemandMenuCommands(const ModesMenuCommands* modesMenuCommandsParent) :
661
myModesMenuCommandsParent(modesMenuCommandsParent) {
662
}
663
664
665
void
666
GNEApplicationWindowHelper::ModesMenuCommands::DemandMenuCommands::showDemandMenuCommands() {
667
moveMode->show();
668
routeMode->show();
669
routeDistributionMode->show();
670
vehicleMode->show();
671
typeMode->show();
672
typeDistributionMode->show();
673
stopMode->show();
674
personMode->show();
675
personPlanMode->show();
676
containerMode->show();
677
containerPlanMode->show();
678
}
679
680
681
void
682
GNEApplicationWindowHelper::ModesMenuCommands::DemandMenuCommands::hideDemandMenuCommands() {
683
moveMode->hide();
684
routeMode->hide();
685
routeDistributionMode->hide();
686
vehicleMode->hide();
687
typeMode->hide();
688
typeDistributionMode->hide();
689
stopMode->hide();
690
personMode->hide();
691
personPlanMode->hide();
692
containerMode->hide();
693
containerPlanMode->hide();
694
}
695
696
697
void
698
GNEApplicationWindowHelper::ModesMenuCommands::DemandMenuCommands::buildDemandMenuCommands(FXMenuPane* modesMenu) {
699
// build every FXMenuCommand giving it a shortcut
700
moveMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
701
TL("&Move"), "M", TL("Move elements."),
702
GUIIconSubSys::getIcon(GUIIcon::MODEMOVE), myModesMenuCommandsParent->myApplicationWindow, MID_HOTKEY_M_MODE_MOVE_MEANDATA);
703
routeMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
704
TL("Route"), "R", TL("Create Routes."),
705
GUIIconSubSys::getIcon(GUIIcon::MODEROUTE), myModesMenuCommandsParent->myApplicationWindow, MID_HOTKEY_R_MODE_CROSSING_ROUTE_EDGERELDATA);
706
routeDistributionMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
707
TL("Route distribution"), "W", TL("Create and edit route distributions."),
708
GUIIconSubSys::getIcon(GUIIcon::MODEROUTEDISTRIBUTION), myModesMenuCommandsParent->myApplicationWindow,
709
MID_HOTKEY_W_MODE_WIRE_ROUTEDISTRIBUTION);
710
vehicleMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
711
TL("Vehicle"), "V", TL("Create vehicles."),
712
GUIIconSubSys::getIcon(GUIIcon::MODEVEHICLE), myModesMenuCommandsParent->myApplicationWindow, MID_HOTKEY_V_MODE_VEHICLE);
713
typeMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
714
TL("Type"), "T", TL("Create types (vehicles, person and containers)."),
715
GUIIconSubSys::getIcon(GUIIcon::MODETYPE), myModesMenuCommandsParent->myApplicationWindow, MID_HOTKEY_T_MODE_TLS_TYPE);
716
typeDistributionMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
717
TL("TypeDistribution"), "U", TL("Create and edit type distributions."),
718
GUIIconSubSys::getIcon(GUIIcon::MODETYPEDISTRIBUTION), myModesMenuCommandsParent->myApplicationWindow, MID_HOTKEY_U_MODE_DECAL_TYPEDISTRIBUTION);
719
stopMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
720
TL("Stop"), "A", TL("Create stops."),
721
GUIIconSubSys::getIcon(GUIIcon::MODESTOP), myModesMenuCommandsParent->myApplicationWindow, MID_HOTKEY_A_MODE_STARTSIMULATION_ADDITIONALS_STOPS);
722
personMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
723
TL("Person"), "P", TL("Create persons."),
724
GUIIconSubSys::getIcon(GUIIcon::MODEPERSON), myModesMenuCommandsParent->myApplicationWindow, MID_HOTKEY_P_MODE_POLYGON_PERSON);
725
personPlanMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
726
TL("Person plan"), "L", TL("Create person plans."),
727
GUIIconSubSys::getIcon(GUIIcon::MODEPERSONPLAN), myModesMenuCommandsParent->myApplicationWindow, MID_HOTKEY_L_MODE_PERSONPLAN);
728
containerMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
729
TL("Container"), "C", TL("Create containers."),
730
GUIIconSubSys::getIcon(GUIIcon::MODECONTAINER), myModesMenuCommandsParent->myApplicationWindow, MID_HOTKEY_C_MODE_CONNECT_CONTAINER);
731
containerPlanMode = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
732
TL("Container plan"), "H", TL("Create container plans."),
733
GUIIconSubSys::getIcon(GUIIcon::MODECONTAINERPLAN), myModesMenuCommandsParent->myApplicationWindow, MID_HOTKEY_H_MODE_PROHIBITION_CONTAINERPLAN);
734
}
735
736
// ---------------------------------------------------------------------------
737
// GNEApplicationWindowHelper::ModesMenuCommands::DataMenuCommands - methods
738
// ---------------------------------------------------------------------------
739
740
GNEApplicationWindowHelper::ModesMenuCommands::DataMenuCommands::DataMenuCommands(const ModesMenuCommands* modesMenuCommandsParent) :
741
myModesMenuCommandsParent(modesMenuCommandsParent) {
742
}
743
744
745
void
746
GNEApplicationWindowHelper::ModesMenuCommands::DataMenuCommands::showDataMenuCommands() {
747
edgeData->show();
748
edgeRelData->show();
749
TAZRelData->show();
750
meanData->show();
751
}
752
753
754
void
755
GNEApplicationWindowHelper::ModesMenuCommands::DataMenuCommands::hideDataMenuCommands() {
756
edgeData->hide();
757
edgeRelData->hide();
758
TAZRelData->hide();
759
meanData->hide();
760
}
761
762
763
void
764
GNEApplicationWindowHelper::ModesMenuCommands::DataMenuCommands::buildDataMenuCommands(FXMenuPane* modesMenu) {
765
// build every FXMenuCommand giving it a shortcut
766
edgeData = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
767
TL("&EdgeData"), "E", TL("Create edgeData elements."),
768
GUIIconSubSys::getIcon(GUIIcon::MODEEDGEDATA), myModesMenuCommandsParent->myApplicationWindow, MID_HOTKEY_E_MODE_EDGE_EDGEDATA);
769
edgeRelData = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
770
TL("Edge&Relation"), "R", TL("Create edgeRelation elements."),
771
GUIIconSubSys::getIcon(GUIIcon::MODEEDGERELDATA), myModesMenuCommandsParent->myApplicationWindow, MID_HOTKEY_R_MODE_CROSSING_ROUTE_EDGERELDATA);
772
TAZRelData = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
773
TL("TA&ZRelation"), "Z", TL("Create TAZRelation elements."),
774
GUIIconSubSys::getIcon(GUIIcon::MODETAZRELDATA), myModesMenuCommandsParent->myApplicationWindow, MID_HOTKEY_Z_MODE_TAZ_TAZREL);
775
meanData = GUIDesigns::buildFXMenuCommandShortcut(modesMenu,
776
TL("&MeanData"), "M", TL("Create MeanData edge/lanes."),
777
GUIIconSubSys::getIcon(GUIIcon::MODEMEANDATA), myModesMenuCommandsParent->myApplicationWindow, MID_HOTKEY_M_MODE_MOVE_MEANDATA);
778
}
779
780
781
// ---------------------------------------------------------------------------
782
// GNEApplicationWindowHelper::ModesMenuCommands - methods
783
// ---------------------------------------------------------------------------
784
#ifdef _MSC_VER
785
#pragma warning(push)
786
#pragma warning(disable: 4355) // mask warning about "this" in initializers
787
#endif
788
GNEApplicationWindowHelper::ModesMenuCommands::ModesMenuCommands(GNEApplicationWindow* applicationWindow) :
789
commonMenuCommands(this),
790
networkMenuCommands(this),
791
demandMenuCommands(this),
792
dataMenuCommands(this),
793
myApplicationWindow(applicationWindow) {
794
}
795
#ifdef _MSC_VER
796
#pragma warning(pop)
797
#endif
798
799
800
void
801
GNEApplicationWindowHelper::ModesMenuCommands::buildModesMenuCommands(FXMenuPane* modesMenu) {
802
commonMenuCommands.buildCommonMenuCommands(modesMenu);
803
// build Network modes commands and hide it
804
networkMenuCommands.buildNetworkMenuCommands(modesMenu);
805
networkMenuCommands.hideNetworkMenuCommands();
806
// build Demand Modes commands
807
demandMenuCommands.buildDemandMenuCommands(modesMenu);
808
demandMenuCommands.hideDemandMenuCommands();
809
// build Data Modes commands
810
dataMenuCommands.buildDataMenuCommands(modesMenu);
811
dataMenuCommands.hideDataMenuCommands();
812
}
813
814
815
void
816
GNEApplicationWindowHelper::ModesMenuCommands::setDefaultView(Supermode supermode) {
817
if (supermode == Supermode::NETWORK) {
818
networkMenuCommands.showNetworkMenuCommands();
819
} else if (supermode == Supermode::DEMAND) {
820
demandMenuCommands.showDemandMenuCommands();
821
} else if (supermode == Supermode::DATA) {
822
dataMenuCommands.showDataMenuCommands();
823
}
824
}
825
826
827
void
828
GNEApplicationWindowHelper::ModesMenuCommands::setJuPedSimView(Supermode supermode) {
829
if (supermode == Supermode::NETWORK) {
830
networkMenuCommands.connectMode->hide();
831
networkMenuCommands.TLSMode->hide();
832
networkMenuCommands.prohibitionMode->hide();
833
networkMenuCommands.wireMode->hide();
834
networkMenuCommands.decalMode->hide();
835
} else if (supermode == Supermode::DEMAND) {
836
demandMenuCommands.moveMode->hide();
837
demandMenuCommands.vehicleMode->hide();
838
demandMenuCommands.stopMode->hide();
839
demandMenuCommands.containerMode->hide();
840
demandMenuCommands.containerPlanMode->hide();
841
} else if (supermode == Supermode::DATA) {
842
dataMenuCommands.hideDataMenuCommands();
843
}
844
}
845
846
// ---------------------------------------------------------------------------
847
// GNEApplicationWindowHelper::EditMenuCommands::NetworkViewOptions - methods
848
// ---------------------------------------------------------------------------
849
850
GNEApplicationWindowHelper::EditMenuCommands::NetworkViewOptions::NetworkViewOptions(GNEApplicationWindow* applicationWindow) :
851
myApplicationWindow(applicationWindow) {
852
}
853
854
855
void
856
GNEApplicationWindowHelper::EditMenuCommands::NetworkViewOptions::buildNetworkViewOptionsMenuChecks(FXMenuPane* editMenu) {
857
// create menu checks
858
menuCheckToggleGrid = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
859
TL("Show grid"), "Ctrl+G or Alt+1", "",
860
GUIIconSubSys::getIcon(GUIIcon::COMMONMODE_CHECKBOX_TOGGLEGRID),
861
myApplicationWindow, MID_GNE_NETWORKVIEWOPTIONS_TOGGLEGRID);
862
863
menuCheckToggleDrawJunctionShape = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
864
TL("Hide junction shape"), "Ctrl+J or Alt+2", "",
865
GUIIconSubSys::getIcon(GUIIcon::COMMONMODE_CHECKBOX_TOGGLEDRAWJUNCTIONSHAPE),
866
myApplicationWindow, MID_GNE_NETWORKVIEWOPTIONS_TOGGLEDRAWJUNCTIONSHAPE);
867
868
menuCheckDrawSpreadVehicles = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
869
TL("Draw vehicles spread in lane or in depart position"), "Alt+3", "",
870
GUIIconSubSys::getIcon(GUIIcon::COMMONMODE_CHECKBOX_SPREADVEHICLE),
871
myApplicationWindow, MID_GNE_NETWORKVIEWOPTIONS_DRAWSPREADVEHICLES);
872
873
menuCheckShowDemandElements = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
874
TL("Show demand elements"), "Alt+4", "",
875
GUIIconSubSys::getIcon(GUIIcon::COMMONMODE_CHECKBOX_SHOWDEMANDELEMENTS),
876
myApplicationWindow, MID_GNE_NETWORKVIEWOPTIONS_SHOWDEMANDELEMENTS);
877
878
menuCheckSelectEdges = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
879
TL("Clicking should target lanes"), "Alt+5", "",
880
GUIIconSubSys::getIcon(GUIIcon::NETWORKMODE_CHECKBOX_SELECTEDGES),
881
myApplicationWindow, MID_GNE_NETWORKVIEWOPTIONS_SELECTEDGES);
882
883
menuCheckShowConnections = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
884
TL("Show connections over junctions"), "Alt+6", "",
885
GUIIconSubSys::getIcon(GUIIcon::NETWORKMODE_CHECKBOX_SHOWCONNECTIONS),
886
myApplicationWindow, MID_GNE_NETWORKVIEWOPTIONS_SHOWCONNECTIONS);
887
888
menuCheckHideConnections = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
889
TL("Hide connections"), "Alt+7", "",
890
GUIIconSubSys::getIcon(GUIIcon::NETWORKMODE_CHECKBOX_HIDECONNECTIONS),
891
myApplicationWindow, MID_GNE_NETWORKVIEWOPTIONS_HIDECONNECTIONS);
892
893
menuCheckShowAdditionalSubElements = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
894
TL("Show sub-additional elements"), "Alt+8", "",
895
GUIIconSubSys::getIcon(GUIIcon::NETWORKMODE_CHECKBOX_SHOWSUBADDITIONALS),
896
myApplicationWindow, MID_GNE_NETWORKVIEWOPTIONS_SHOWSUBADDITIONALS);
897
898
menuCheckShowTAZElements = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
899
TL("Show TAZ elements"), "Alt+9", "",
900
GUIIconSubSys::getIcon(GUIIcon::NETWORKMODE_CHECKBOX_SHOWTAZELEMENTS),
901
myApplicationWindow, MID_GNE_NETWORKVIEWOPTIONS_SHOWTAZELEMENTS);
902
903
menuCheckExtendSelection = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
904
TL("Selecting multiple edges automatically select their junctions"), "Alt+10", "",
905
GUIIconSubSys::getIcon(GUIIcon::NETWORKMODE_CHECKBOX_AUTOSELECTJUNCTIONS),
906
myApplicationWindow, MID_GNE_NETWORKVIEWOPTIONS_EXTENDSELECTION);
907
908
menuCheckChangeAllPhases = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
909
TL("Clicking should apply state changes to all phases of TLS plan"), "Alt+5", "",
910
GUIIconSubSys::getIcon(GUIIcon::NETWORKMODE_CHECKBOX_APPLYTOALLPHASES),
911
myApplicationWindow, MID_GNE_NETWORKVIEWOPTIONS_CHANGEALLPHASES);
912
913
menuCheckMergeAutomatically = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
914
TL("Don't ask for confirmation before merging junction"), "Alt+5", "",
915
GUIIconSubSys::getIcon(GUIIcon::NETWORKMODE_CHECKBOX_MERGEAUTOMATICALLY),
916
myApplicationWindow, MID_GNE_NETWORKVIEWOPTIONS_MERGEAUTOMATICALLY);
917
918
menuCheckChainEdges = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
919
TL("Create consecutive edges"), "Alt+5", "",
920
GUIIconSubSys::getIcon(GUIIcon::NETWORKMODE_CHECKBOX_CHAIN),
921
myApplicationWindow, MID_GNE_NETWORKVIEWOPTIONS_CHAINEDGES);
922
923
menuCheckAutoOppositeEdge = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
924
TL("Create an edge in the opposite direction"), "Alt+6", "",
925
GUIIconSubSys::getIcon(GUIIcon::NETWORKMODE_CHECKBOX_TWOWAY),
926
myApplicationWindow, MID_GNE_NETWORKVIEWOPTIONS_AUTOOPPOSITEEDGES);
927
928
menuCheckMoveElevation = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
929
TL("Apply mouse movement to elevation"), "Alt+7", "",
930
GUIIconSubSys::getIcon(GUIIcon::NETWORKMODE_CHECKBOX_ELEVATION),
931
myApplicationWindow, MID_GNE_NETWORKVIEWOPTIONS_MOVEELEVATION);
932
933
menuCheckShowJunctionBubble = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
934
TL("Show bubbles over junctions shapes"), "Alt+8", "",
935
GUIIconSubSys::getIcon(GUIIcon::NETWORKMODE_CHECKBOX_BUBBLES),
936
myApplicationWindow, MID_GNE_NETWORKVIEWOPTIONS_SHOWBUBBLES);
937
938
// build separator
939
separator = new FXMenuSeparator(editMenu);
940
}
941
942
943
void
944
GNEApplicationWindowHelper::EditMenuCommands::NetworkViewOptions::hideNetworkViewOptionsMenuChecks() {
945
menuCheckToggleGrid->hide();
946
menuCheckToggleDrawJunctionShape->hide();
947
menuCheckDrawSpreadVehicles->hide();
948
menuCheckShowDemandElements->hide();
949
menuCheckSelectEdges->hide();
950
menuCheckShowConnections->hide();
951
menuCheckHideConnections->hide();
952
menuCheckShowAdditionalSubElements->hide();
953
menuCheckShowTAZElements->hide();
954
menuCheckExtendSelection->hide();
955
menuCheckChangeAllPhases->hide();
956
menuCheckMergeAutomatically->hide();
957
menuCheckShowJunctionBubble->hide();
958
menuCheckMoveElevation->hide();
959
menuCheckChainEdges->hide();
960
menuCheckAutoOppositeEdge->hide();
961
separator->hide();
962
}
963
964
965
void
966
GNEApplicationWindowHelper::EditMenuCommands::NetworkViewOptions::updateShortcuts() {
967
int index = 2;
968
// update all accel text
969
if (menuCheckDrawSpreadVehicles->shown()) {
970
menuCheckDrawSpreadVehicles->setAccelText(("Alt+" + toString(index)).c_str());
971
index++;
972
}
973
if (menuCheckDrawSpreadVehicles->shown()) {
974
menuCheckDrawSpreadVehicles->setAccelText(("Alt+" + toString(index)).c_str());
975
index++;
976
}
977
if (menuCheckShowDemandElements->shown()) {
978
menuCheckShowDemandElements->setAccelText(("Alt+" + toString(index)).c_str());
979
index++;
980
}
981
if (menuCheckSelectEdges->shown()) {
982
menuCheckSelectEdges->setAccelText(("Alt+" + toString(index)).c_str());
983
index++;
984
}
985
if (menuCheckShowConnections->shown()) {
986
menuCheckShowConnections->setAccelText(("Alt+" + toString(index)).c_str());
987
index++;
988
}
989
if (menuCheckHideConnections->shown()) {
990
menuCheckHideConnections->setAccelText(("Alt+" + toString(index)).c_str());
991
index++;
992
}
993
if (menuCheckShowAdditionalSubElements->shown()) {
994
menuCheckShowAdditionalSubElements->setAccelText(("Alt+" + toString(index)).c_str());
995
index++;
996
}
997
if (menuCheckShowTAZElements->shown()) {
998
menuCheckShowTAZElements->setAccelText(("Alt+" + toString(index)).c_str());
999
index++;
1000
}
1001
if (menuCheckExtendSelection->shown()) {
1002
menuCheckExtendSelection->setAccelText(("Alt+" + toString(index)).c_str());
1003
index++;
1004
}
1005
if (menuCheckChangeAllPhases->shown()) {
1006
menuCheckChangeAllPhases->setAccelText(("Alt+" + toString(index)).c_str());
1007
index++;
1008
}
1009
if (menuCheckMergeAutomatically->shown()) {
1010
menuCheckMergeAutomatically->setAccelText(("Alt+" + toString(index)).c_str());
1011
index++;
1012
}
1013
if (menuCheckChainEdges->shown()) {
1014
menuCheckChainEdges->setAccelText(("Alt+" + toString(index)).c_str());
1015
index++;
1016
}
1017
if (menuCheckAutoOppositeEdge->shown()) {
1018
menuCheckAutoOppositeEdge->setAccelText(("Alt+" + toString(index)).c_str());
1019
index++;
1020
}
1021
if (menuCheckMoveElevation->shown()) {
1022
menuCheckMoveElevation->setAccelText(("Alt+" + toString(index)).c_str());
1023
index++;
1024
}
1025
if (menuCheckShowJunctionBubble->shown()) {
1026
menuCheckShowJunctionBubble->setAccelText(("Alt+" + toString(index)).c_str());
1027
index++;
1028
}
1029
}
1030
1031
// ---------------------------------------------------------------------------
1032
// GNEApplicationWindowHelper::DemandViewOptions - methods
1033
// ---------------------------------------------------------------------------
1034
1035
GNEApplicationWindowHelper::EditMenuCommands::DemandViewOptions::DemandViewOptions(GNEApplicationWindow* applicationWindow) :
1036
myApplicationWindow(applicationWindow) {
1037
}
1038
1039
1040
void
1041
GNEApplicationWindowHelper::EditMenuCommands::DemandViewOptions::buildDemandViewOptionsMenuChecks(FXMenuPane* editMenu) {
1042
// create menu checks
1043
menuCheckToggleGrid = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1044
TL("Show grid"), "Ctrl+G or Alt+1", "",
1045
GUIIconSubSys::getIcon(GUIIcon::COMMONMODE_CHECKBOX_TOGGLEGRID),
1046
myApplicationWindow, MID_GNE_DEMANDVIEWOPTIONS_SHOWGRID);
1047
1048
menuCheckToggleDrawJunctionShape = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1049
TL("Hide junction shape"), "Ctrl+J or Alt+2", "",
1050
GUIIconSubSys::getIcon(GUIIcon::COMMONMODE_CHECKBOX_TOGGLEDRAWJUNCTIONSHAPE),
1051
myApplicationWindow, MID_GNE_DEMANDVIEWOPTIONS_TOGGLEDRAWJUNCTIONSHAPE);
1052
1053
menuCheckDrawSpreadVehicles = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1054
TL("Draw vehicles spread/depart position"), "Alt+3", "",
1055
GUIIconSubSys::getIcon(GUIIcon::COMMONMODE_CHECKBOX_SPREADVEHICLE),
1056
myApplicationWindow, MID_GNE_DEMANDVIEWOPTIONS_DRAWSPREADVEHICLES);
1057
1058
menuCheckHideShapes = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1059
TL("Show shapes"), "Alt+4", "",
1060
GUIIconSubSys::getIcon(GUIIcon::DEMANDMODE_CHECKBOX_HIDESHAPES),
1061
myApplicationWindow, MID_GNE_DEMANDVIEWOPTIONS_HIDESHAPES);
1062
1063
menuCheckShowAllTrips = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1064
TL("Show all trips"), "Alt+5", "",
1065
GUIIconSubSys::getIcon(GUIIcon::DEMANDMODE_CHECKBOX_SHOWTRIPS),
1066
myApplicationWindow, MID_GNE_DEMANDVIEWOPTIONS_SHOWTRIPS);
1067
1068
menuCheckShowAllPersonPlans = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1069
TL("Show all person plans"), "Alt+6", "",
1070
GUIIconSubSys::getIcon(GUIIcon::DEMANDMODE_CHECKBOX_SHOWPERSONPLANS),
1071
myApplicationWindow, MID_GNE_DEMANDVIEWOPTIONS_SHOWALLPERSONPLANS);
1072
1073
menuCheckLockPerson = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1074
TL("Lock selected person"), "Alt+7", "",
1075
GUIIconSubSys::getIcon(GUIIcon::DEMANDMODE_CHECKBOX_LOCKPERSON),
1076
myApplicationWindow, MID_GNE_DEMANDVIEWOPTIONS_LOCKPERSON);
1077
1078
menuCheckShowAllContainerPlans = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1079
TL("Show all container plans"), "Alt+6", "",
1080
GUIIconSubSys::getIcon(GUIIcon::DEMANDMODE_CHECKBOX_SHOWCONTAINERPLANS),
1081
myApplicationWindow, MID_GNE_DEMANDVIEWOPTIONS_SHOWALLCONTAINERPLANS);
1082
1083
menuCheckLockContainer = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1084
TL("Lock selected container"), "Alt+7", "",
1085
GUIIconSubSys::getIcon(GUIIcon::DEMANDMODE_CHECKBOX_LOCKCONTAINER),
1086
myApplicationWindow, MID_GNE_DEMANDVIEWOPTIONS_LOCKCONTAINER);
1087
1088
menuCheckHideNonInspectedDemandElements = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1089
TL("Show non-inspected demand elements"), "Alt+8", "",
1090
GUIIconSubSys::getIcon(GUIIcon::DEMANDMODE_CHECKBOX_HIDENONINSPECTEDDEMANDELEMENTS),
1091
myApplicationWindow, MID_GNE_DEMANDVIEWOPTIONS_HIDENONINSPECTED);
1092
1093
menuCheckShowOverlappedRoutes = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1094
TL("Show number of overlapped routes"), "Alt+9", "",
1095
GUIIconSubSys::getIcon(GUIIcon::DEMANDMODE_CHECKBOX_SHOWOVERLAPPEDROUTES),
1096
myApplicationWindow, MID_GNE_DEMANDVIEWOPTIONS_SHOWOVERLAPPEDROUTES);
1097
1098
// build separator
1099
separator = new FXMenuSeparator(editMenu);
1100
}
1101
1102
1103
void
1104
GNEApplicationWindowHelper::EditMenuCommands::DemandViewOptions::hideDemandViewOptionsMenuChecks() {
1105
menuCheckToggleGrid->hide();
1106
menuCheckToggleDrawJunctionShape->hide();
1107
menuCheckDrawSpreadVehicles->hide();
1108
menuCheckHideShapes->hide();
1109
menuCheckShowAllTrips->hide();
1110
menuCheckHideNonInspectedDemandElements->hide();
1111
menuCheckShowOverlappedRoutes->hide();
1112
menuCheckShowAllPersonPlans->hide();
1113
menuCheckLockPerson->hide();
1114
menuCheckShowAllContainerPlans->hide();
1115
menuCheckLockContainer->hide();
1116
separator->hide();
1117
}
1118
1119
1120
void
1121
GNEApplicationWindowHelper::EditMenuCommands::DemandViewOptions::updateShortcuts() {
1122
int index = 2;
1123
// update all accel text
1124
if (menuCheckDrawSpreadVehicles->shown()) {
1125
menuCheckDrawSpreadVehicles->setAccelText(("Alt+" + toString(index)).c_str());
1126
index++;
1127
}
1128
if (menuCheckHideShapes->shown()) {
1129
menuCheckHideShapes->setAccelText(("Alt+" + toString(index)).c_str());
1130
index++;
1131
}
1132
if (menuCheckShowAllTrips->shown()) {
1133
menuCheckShowAllTrips->setAccelText(("Alt+" + toString(index)).c_str());
1134
index++;
1135
}
1136
if (menuCheckHideNonInspectedDemandElements->shown()) {
1137
menuCheckHideNonInspectedDemandElements->setAccelText(("Alt+" + toString(index)).c_str());
1138
index++;
1139
}
1140
if (menuCheckShowOverlappedRoutes->shown()) {
1141
menuCheckShowOverlappedRoutes->setAccelText(("Alt+" + toString(index)).c_str());
1142
index++;
1143
}
1144
if (menuCheckShowAllPersonPlans->shown()) {
1145
menuCheckShowAllPersonPlans->setAccelText(("Alt+" + toString(index)).c_str());
1146
index++;
1147
}
1148
if (menuCheckLockPerson->shown()) {
1149
menuCheckLockPerson->setAccelText(("Alt+" + toString(index)).c_str());
1150
index++;
1151
}
1152
if (menuCheckShowAllContainerPlans->shown()) {
1153
menuCheckShowAllContainerPlans->setAccelText(("Alt+" + toString(index)).c_str());
1154
index++;
1155
}
1156
if (menuCheckLockContainer->shown()) {
1157
menuCheckLockContainer->setAccelText(("Alt+" + toString(index)).c_str());
1158
index++;
1159
}
1160
}
1161
1162
// ---------------------------------------------------------------------------
1163
// GNEApplicationWindowHelper::EditMenuCommands::DataViewOptions - methods
1164
// ---------------------------------------------------------------------------
1165
1166
GNEApplicationWindowHelper::EditMenuCommands::DataViewOptions::DataViewOptions(GNEApplicationWindow* applicationWindow) :
1167
myApplicationWindow(applicationWindow) {
1168
}
1169
1170
1171
void
1172
GNEApplicationWindowHelper::EditMenuCommands::DataViewOptions::buildDataViewOptionsMenuChecks(FXMenuPane* editMenu) {
1173
// create menu checks
1174
menuCheckToggleDrawJunctionShape = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1175
TL("Hide junction shape"), "Ctrl+J or Alt+1", "",
1176
GUIIconSubSys::getIcon(GUIIcon::COMMONMODE_CHECKBOX_TOGGLEDRAWJUNCTIONSHAPE),
1177
myApplicationWindow, MID_GNE_DEMANDVIEWOPTIONS_TOGGLEDRAWJUNCTIONSHAPE);
1178
1179
menuCheckShowAdditionals = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1180
TL("Show additionals"), "Alt+2", "",
1181
GUIIconSubSys::getIcon(GUIIcon::DATAMODE_CHECKBOX_SHOWADDITIONALS),
1182
myApplicationWindow, MID_GNE_DATAVIEWOPTIONS_SHOWADDITIONALS);
1183
1184
menuCheckShowShapes = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1185
TL("Show shapes"), "Alt+3", "",
1186
GUIIconSubSys::getIcon(GUIIcon::DATAMODE_CHECKBOX_SHOWSHAPES),
1187
myApplicationWindow, MID_GNE_DATAVIEWOPTIONS_SHOWSHAPES);
1188
1189
menuCheckShowDemandElements = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1190
TL("Show demand elements"), "Alt+4", "",
1191
GUIIconSubSys::getIcon(GUIIcon::COMMONMODE_CHECKBOX_SHOWDEMANDELEMENTS),
1192
myApplicationWindow, MID_GNE_DATAVIEWOPTIONS_SHOWDEMANDELEMENTS);
1193
1194
menuCheckToggleTAZRelDrawing = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1195
TL("Draw TAZRel from center"), "Alt+5", "",
1196
GUIIconSubSys::getIcon(GUIIcon::DATAMODE_CHECKBOX_TAZRELDRAWING),
1197
myApplicationWindow, MID_GNE_DATAVIEWOPTIONS_TAZRELDRAWING);
1198
1199
menuCheckToggleTAZDrawFill = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1200
TL("Draw TAZ fill"), "Alt+6", "",
1201
GUIIconSubSys::getIcon(GUIIcon::DATAMODE_CHECKBOX_TAZDRAWFILL),
1202
myApplicationWindow, MID_GNE_DATAVIEWOPTIONS_TAZDRAWFILL);
1203
1204
menuCheckToggleTAZRelOnlyFrom = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1205
TL("Only draw TAZRel from"), "Alt+6", "",
1206
GUIIconSubSys::getIcon(GUIIcon::DATAMODE_CHECKBOX_TAZRELONLYFROM),
1207
myApplicationWindow, MID_GNE_DATAVIEWOPTIONS_TAZRELONLYFROM);
1208
1209
menuCheckToggleTAZRelOnlyTo = GUIDesigns::buildFXMenuCheckboxIcon(editMenu,
1210
TL("Only draw TAZRel to"), "Alt+7", "",
1211
GUIIconSubSys::getIcon(GUIIcon::DATAMODE_CHECKBOX_TAZRELONLYTO),
1212
myApplicationWindow, MID_GNE_DATAVIEWOPTIONS_TAZRELONLYTO);
1213
// build separator
1214
separator = new FXMenuSeparator(editMenu);
1215
}
1216
1217
1218
void
1219
GNEApplicationWindowHelper::EditMenuCommands::DataViewOptions::hideDataViewOptionsMenuChecks() {
1220
menuCheckToggleDrawJunctionShape->hide();
1221
menuCheckShowAdditionals->hide();
1222
menuCheckShowShapes->hide();
1223
menuCheckShowDemandElements->hide();
1224
menuCheckToggleTAZRelDrawing->hide();
1225
menuCheckToggleTAZDrawFill->hide();
1226
menuCheckToggleTAZRelOnlyFrom->hide();
1227
menuCheckToggleTAZRelOnlyTo->hide();
1228
separator->hide();
1229
}
1230
1231
1232
void
1233
GNEApplicationWindowHelper::EditMenuCommands::DataViewOptions::updateShortcuts() {
1234
int index = 2;
1235
// update all accel text
1236
if (menuCheckShowAdditionals->shown()) {
1237
menuCheckShowAdditionals->setAccelText(("Alt+" + toString(index)).c_str());
1238
index++;
1239
}
1240
if (menuCheckShowShapes->shown()) {
1241
menuCheckShowShapes->setAccelText(("Alt+" + toString(index)).c_str());
1242
index++;
1243
}
1244
if (menuCheckShowDemandElements->shown()) {
1245
menuCheckShowDemandElements->setAccelText(("Alt+" + toString(index)).c_str());
1246
index++;
1247
}
1248
if (menuCheckToggleTAZRelDrawing->shown()) {
1249
menuCheckToggleTAZRelDrawing->setAccelText(("Alt+" + toString(index)).c_str());
1250
index++;
1251
}
1252
if (menuCheckToggleTAZDrawFill->shown()) {
1253
menuCheckToggleTAZDrawFill->setAccelText(("Alt+" + toString(index)).c_str());
1254
index++;
1255
}
1256
if (menuCheckToggleTAZRelOnlyFrom->shown()) {
1257
menuCheckToggleTAZRelOnlyFrom->setAccelText(("Alt+" + toString(index)).c_str());
1258
index++;
1259
}
1260
if (menuCheckToggleTAZRelOnlyTo->shown()) {
1261
menuCheckToggleTAZRelOnlyTo->setAccelText(("Alt+" + toString(index)).c_str());
1262
index++;
1263
}
1264
}
1265
1266
// ---------------------------------------------------------------------------
1267
// GNEApplicationWindowHelper::EditMenuCommands - methods
1268
// ---------------------------------------------------------------------------
1269
1270
GNEApplicationWindowHelper::EditMenuCommands::EditMenuCommands(GNEApplicationWindow* applicationWindow) :
1271
networkViewOptions(applicationWindow),
1272
demandViewOptions(applicationWindow),
1273
dataViewOptions(applicationWindow),
1274
myApplicationWindow(applicationWindow) {
1275
}
1276
1277
1278
void
1279
GNEApplicationWindowHelper::EditMenuCommands::buildUndoRedoMenuCommands(FXMenuPane* editMenu) {
1280
// build undo/redo command
1281
undoLastChange = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
1282
TL("Undo"), "Ctrl+Z", TL("Undo the last change."),
1283
GUIIconSubSys::getIcon(GUIIcon::UNDO), myApplicationWindow, MID_HOTKEY_CTRL_Z_UNDO);
1284
redoLastChange = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
1285
TL("Redo"), "Ctrl+Y", TL("Redo the last change."),
1286
GUIIconSubSys::getIcon(GUIIcon::REDO), myApplicationWindow, MID_HOTKEY_CTRL_Y_REDO);
1287
openUndolistDialog = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
1288
TL("Show undo/redo history"), "", TL("Open undo/redo history dialog."),
1289
GUIIconSubSys::getIcon(GUIIcon::UNDOLIST), myApplicationWindow, MID_GNE_UNDOLISTDIALOG);
1290
// add checkBox for recomputing in data mode
1291
menuCheckAllowUndoRedo = GUIDesigns::buildFXMenuCheckbox(editMenu,
1292
TL("Allow undo-redo"), "",
1293
myApplicationWindow, MID_GNE_TOGGLE_UNDOREDO);
1294
menuCheckAllowUndoRedo->setCheck(myApplicationWindow->getApp()->reg().readBoolEntry("NETEDIT", "AllowUndoRedo", true));
1295
}
1296
1297
1298
void
1299
GNEApplicationWindowHelper::EditMenuCommands::buildViewMenuCommands(FXMenuPane* editMenu) {
1300
// build rest of menu commands
1301
editViewScheme = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
1302
TL("Edit Visualisation"), "F9", TL("Opens a dialog for editing visualization settings."),
1303
GUIIconSubSys::getIcon(GUIIcon::COLORWHEEL), myApplicationWindow, MID_HOTKEY_F9_EDIT_VIEWSCHEME);
1304
editViewPort = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
1305
TL("Edit Viewport"), "Ctrl+I", TL("Opens a dialog for editing viewing area, zoom and rotation."),
1306
GUIIconSubSys::getIcon(GUIIcon::EDITVIEWPORT), myApplicationWindow, MID_HOTKEY_CTRL_I_EDITVIEWPORT);
1307
}
1308
1309
1310
void
1311
GNEApplicationWindowHelper::EditMenuCommands::buildFrontElementMenuCommand(FXMenuPane* editMenu) {
1312
// add clear front element
1313
clearFrontElement = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
1314
TL("Clear front element"), "F11", TL("Clear current front element"),
1315
GUIIconSubSys::getIcon(GUIIcon::FRONTELEMENT), myApplicationWindow, MID_HOTKEY_F11_FRONTELEMENT);
1316
}
1317
1318
1319
void
1320
GNEApplicationWindowHelper::EditMenuCommands::buildOpenSUMOMenuCommands(FXMenuPane* editMenu) {
1321
// add open in sumo options
1322
loadAdditionalsInSUMOGUI = GUIDesigns::buildFXMenuCheckbox(editMenu,
1323
TL("Load additionals in sumo-gui"), TL("Load additionals in sumo-gui."),
1324
myApplicationWindow, MID_TOOLBAREDIT_LOADADDITIONALS);
1325
loadAdditionalsInSUMOGUI->setCheck(TRUE);
1326
loadDemandInSUMOGUI = GUIDesigns::buildFXMenuCheckbox(editMenu,
1327
TL("Load demand in sumo-gui"), TL("Load demand in sumo-gui."),
1328
myApplicationWindow, MID_TOOLBAREDIT_LOADDEMAND);
1329
loadDemandInSUMOGUI->setCheck(TRUE);
1330
openInSUMOGUI = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
1331
TL("Open in sumo-gui"), "Ctrl+T", TL("Opens the sumo-gui application with the current network."),
1332
GUIIconSubSys::getIcon(GUIIcon::SUMO_MINI), myApplicationWindow, MID_HOTKEY_CTRL_T_OPENNETEDIT_OPENSUMO);
1333
}
1334
1335
// ---------------------------------------------------------------------------
1336
// GNEApplicationWindowHelper::LockMenuCommands - methods
1337
// ---------------------------------------------------------------------------
1338
1339
GNEApplicationWindowHelper::LockMenuCommands::LockMenuCommands(GNEApplicationWindow* applicationWindow) :
1340
myApplicationWindow(applicationWindow) {
1341
}
1342
1343
1344
void
1345
GNEApplicationWindowHelper::LockMenuCommands::buildLockMenuCommands(FXMenuPane* fileMenu) {
1346
// network
1347
menuCheckLockJunctions = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1348
TL("&Junctions"), "", "",
1349
GUIIconSubSys::getIcon(GUIIcon::JUNCTION),
1350
myApplicationWindow, MID_GNE_LOCK_ELEMENT);
1351
1352
menuCheckLockEdges = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1353
TL("&Edges"), "", "",
1354
GUIIconSubSys::getIcon(GUIIcon::EDGE),
1355
myApplicationWindow, MID_GNE_LOCK_ELEMENT);
1356
1357
menuCheckLockLanes = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1358
TL("&Lanes"), "", "",
1359
GUIIconSubSys::getIcon(GUIIcon::LANE),
1360
myApplicationWindow, MID_GNE_LOCK_ELEMENT);
1361
1362
menuCheckLockConnections = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1363
TL("&Connections"), "", "",
1364
GUIIconSubSys::getIcon(GUIIcon::CONNECTION),
1365
myApplicationWindow, MID_GNE_LOCK_ELEMENT);
1366
1367
menuCheckLockCrossings = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1368
TL("C&rossings"), "", "",
1369
GUIIconSubSys::getIcon(GUIIcon::CROSSING),
1370
myApplicationWindow, MID_GNE_LOCK_ELEMENT);
1371
1372
menuCheckLockWalkingAreas = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1373
TL("Walkin&gAreas"), "", "",
1374
GUIIconSubSys::getIcon(GUIIcon::WALKINGAREA),
1375
myApplicationWindow, MID_GNE_LOCK_ELEMENT);
1376
1377
menuCheckLockAdditionals = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1378
TL("&Additionals"), "", "",
1379
GUIIconSubSys::getIcon(GUIIcon::BUSSTOP),
1380
myApplicationWindow, MID_GNE_LOCK_ELEMENT);
1381
1382
menuCheckLockTAZs = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1383
TL("&TAZs"), "", "",
1384
GUIIconSubSys::getIcon(GUIIcon::TAZ),
1385
myApplicationWindow, MID_GNE_LOCK_ELEMENT);
1386
1387
menuCheckLockWires = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1388
TL("&Wires"), "", "",
1389
GUIIconSubSys::getIcon(GUIIcon::OVERHEADWIRE),
1390
myApplicationWindow, MID_GNE_LOCK_ELEMENT);
1391
1392
menuCheckLockPolygons = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1393
TL("&Polygons"), "", "",
1394
GUIIconSubSys::getIcon(GUIIcon::POLY),
1395
myApplicationWindow, MID_GNE_LOCK_ELEMENT);
1396
1397
menuCheckLockPOIs = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1398
TL("P&OIs"), "", "",
1399
GUIIconSubSys::getIcon(GUIIcon::POI),
1400
myApplicationWindow, MID_GNE_LOCK_ELEMENT);
1401
1402
menuCheckLockJpsWalkableAreas = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1403
TL("WalkableAreas"), "", "",
1404
GUIIconSubSys::getIcon(GUIIcon::JPS_WALKABLEAREA),
1405
myApplicationWindow, MID_GNE_LOCK_ELEMENT);
1406
1407
menuCheckLockJpsObstacles = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1408
TL("Obstacles"), "", "",
1409
GUIIconSubSys::getIcon(GUIIcon::JPS_OBSTACLE),
1410
myApplicationWindow, MID_GNE_LOCK_ELEMENT);
1411
// demand
1412
menuCheckLockRoutes = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1413
TL("&Routes"), "", "",
1414
GUIIconSubSys::getIcon(GUIIcon::ROUTE),
1415
myApplicationWindow, MID_GNE_LOCK_ELEMENT);
1416
1417
menuCheckLockVehicles = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1418
TL("&Vehicles"), "", "",
1419
GUIIconSubSys::getIcon(GUIIcon::VEHICLE),
1420
myApplicationWindow, MID_GNE_LOCK_ELEMENT);
1421
1422
menuCheckLockPersons = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1423
TL("&Persons"), "", "",
1424
GUIIconSubSys::getIcon(GUIIcon::PERSON),
1425
myApplicationWindow, MID_GNE_LOCK_ELEMENT);
1426
1427
menuCheckLockPersonTrips = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1428
TL("Person&Trips"), "", "",
1429
GUIIconSubSys::getIcon(GUIIcon::PERSONTRIP_EDGE),
1430
myApplicationWindow, MID_GNE_LOCK_ELEMENT);
1431
1432
menuCheckLockWalks = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1433
TL("&Walks"), "", "",
1434
GUIIconSubSys::getIcon(GUIIcon::WALK_EDGE),
1435
myApplicationWindow, MID_GNE_LOCK_ELEMENT);
1436
1437
menuCheckLockRides = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1438
TL("Ri&des"), "", "",
1439
GUIIconSubSys::getIcon(GUIIcon::RIDE_EDGE),
1440
myApplicationWindow, MID_GNE_LOCK_ELEMENT);
1441
1442
menuCheckLockContainers = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1443
TL("&Containers"), "", "",
1444
GUIIconSubSys::getIcon(GUIIcon::CONTAINER),
1445
myApplicationWindow, MID_GNE_LOCK_ELEMENT);
1446
1447
menuCheckLockTransports = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1448
TL("Tra&nsports"), "", "",
1449
GUIIconSubSys::getIcon(GUIIcon::TRANSPORT_EDGE),
1450
myApplicationWindow, MID_GNE_LOCK_ELEMENT);
1451
1452
menuCheckLockTranships = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1453
TL("Trans&hips"), "", "",
1454
GUIIconSubSys::getIcon(GUIIcon::TRANSHIP_EDGE),
1455
myApplicationWindow, MID_GNE_LOCK_ELEMENT);
1456
1457
menuCheckLockStops = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1458
TL("Stop&s"), "", "",
1459
GUIIconSubSys::getIcon(GUIIcon::STOPELEMENT),
1460
myApplicationWindow, MID_GNE_LOCK_ELEMENT);
1461
// data
1462
menuCheckLockEdgeDatas = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1463
TL("&EdgeDatas"), "", "",
1464
GUIIconSubSys::getIcon(GUIIcon::EDGEDATA),
1465
myApplicationWindow, MID_GNE_LOCK_ELEMENT);
1466
1467
menuCheckLockEdgeRelDatas = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1468
TL("E&dgeRelDatas"), "", "",
1469
GUIIconSubSys::getIcon(GUIIcon::EDGERELDATA),
1470
myApplicationWindow, MID_GNE_LOCK_ELEMENT);
1471
1472
menuCheckLockEdgeTAZRels = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1473
TL("Edge&TAZRel"), "", "",
1474
GUIIconSubSys::getIcon(GUIIcon::TAZRELDATA),
1475
myApplicationWindow, MID_GNE_LOCK_ELEMENT);
1476
1477
// separator
1478
new FXMenuSeparator(fileMenu);
1479
1480
menuCheckLockSelectedElements = GUIDesigns::buildFXMenuCheckboxIcon(fileMenu,
1481
TL("Lock selected elements"), "", TL("selected elements"),
1482
GUIIconSubSys::getIcon(GUIIcon::LOCK_SELECTED), myApplicationWindow, MID_GNE_LOCK_SELECTEDELEMENTS);
1483
1484
// separator
1485
new FXMenuSeparator(fileMenu);
1486
1487
GUIDesigns::buildFXMenuCommandShortcut(fileMenu,
1488
TL("Lock all elements"), "", TL("all elements"),
1489
GUIIconSubSys::getIcon(GUIIcon::LOCK), myApplicationWindow, MID_GNE_LOCK_ALLELEMENTS);
1490
1491
GUIDesigns::buildFXMenuCommandShortcut(fileMenu,
1492
TL("Unlock all elements"), "", TL("Unlock all elements"),
1493
GUIIconSubSys::getIcon(GUIIcon::UNLOCK), myApplicationWindow, MID_GNE_UNLOCK_ALLELEMENTS);
1494
}
1495
1496
1497
void
1498
GNEApplicationWindowHelper::LockMenuCommands::removeHotkeys() {
1499
// network
1500
menuCheckLockJunctions->remHotKey(parseHotKey('j'));
1501
menuCheckLockEdges->remHotKey(parseHotKey('e'));
1502
menuCheckLockLanes->remHotKey(parseHotKey('l'));
1503
menuCheckLockConnections->remHotKey(parseHotKey('c'));
1504
menuCheckLockCrossings->remHotKey(parseHotKey('r'));
1505
menuCheckLockWalkingAreas->remHotKey(parseHotKey('g'));
1506
menuCheckLockAdditionals->remHotKey(parseHotKey('a'));
1507
menuCheckLockTAZs->remHotKey(parseHotKey('t'));
1508
menuCheckLockWires->remHotKey(parseHotKey('w'));
1509
menuCheckLockPolygons->remHotKey(parseHotKey('p'));
1510
menuCheckLockPOIs->remHotKey(parseHotKey('o'));
1511
menuCheckLockJpsWalkableAreas->remHotKey(parseHotKey('n'));
1512
menuCheckLockJpsObstacles->remHotKey(parseHotKey('b'));
1513
// demand
1514
menuCheckLockRoutes->remHotKey(parseHotKey('r'));
1515
menuCheckLockVehicles->remHotKey(parseHotKey('v'));
1516
menuCheckLockPersons->remHotKey(parseHotKey('p'));
1517
menuCheckLockPersonTrips->remHotKey(parseHotKey('t'));
1518
menuCheckLockWalks->remHotKey(parseHotKey('w'));
1519
menuCheckLockRides->remHotKey(parseHotKey('d'));
1520
menuCheckLockContainers->remHotKey(parseHotKey('c'));
1521
menuCheckLockTransports->remHotKey(parseHotKey('n'));
1522
menuCheckLockTranships->remHotKey(parseHotKey('h'));
1523
menuCheckLockStops->remHotKey(parseHotKey('s'));
1524
// data
1525
menuCheckLockEdgeDatas->remHotKey(parseHotKey('e'));
1526
menuCheckLockEdgeRelDatas->remHotKey(parseHotKey('d'));
1527
menuCheckLockEdgeTAZRels->remHotKey(parseHotKey('t'));
1528
}
1529
1530
void
1531
GNEApplicationWindowHelper::LockMenuCommands::showNetworkLockMenuCommands() {
1532
// first enable menu commands
1533
menuCheckLockJunctions->enable();
1534
menuCheckLockEdges->enable();
1535
menuCheckLockLanes->enable();
1536
menuCheckLockConnections->enable();
1537
menuCheckLockCrossings->enable();
1538
menuCheckLockWalkingAreas->enable();
1539
menuCheckLockAdditionals->enable();
1540
menuCheckLockTAZs->enable();
1541
menuCheckLockWires->enable();
1542
menuCheckLockPolygons->enable();
1543
menuCheckLockPOIs->enable();
1544
menuCheckLockJpsWalkableAreas->enable();
1545
menuCheckLockJpsObstacles->enable();
1546
// set accels
1547
menuCheckLockJunctions->addHotKey(parseHotKey('j'));
1548
menuCheckLockEdges->addHotKey(parseHotKey('e'));
1549
menuCheckLockLanes->addHotKey(parseHotKey('l'));
1550
menuCheckLockConnections->addHotKey(parseHotKey('c'));
1551
menuCheckLockCrossings->addHotKey(parseHotKey('r'));
1552
menuCheckLockWalkingAreas->addHotKey(parseHotKey('g'));
1553
menuCheckLockAdditionals->addHotKey(parseHotKey('a'));
1554
menuCheckLockTAZs->addHotKey(parseHotKey('t'));
1555
menuCheckLockWires->addHotKey(parseHotKey('w'));
1556
menuCheckLockPolygons->addHotKey(parseHotKey('p'));
1557
menuCheckLockPOIs->addHotKey(parseHotKey('o'));
1558
menuCheckLockJpsWalkableAreas->addHotKey(parseHotKey('n'));
1559
menuCheckLockJpsObstacles->addHotKey(parseHotKey('b'));
1560
// now show it
1561
menuCheckLockJunctions->show();
1562
menuCheckLockEdges->show();
1563
menuCheckLockLanes->show();
1564
menuCheckLockConnections->show();
1565
menuCheckLockCrossings->show();
1566
menuCheckLockWalkingAreas->show();
1567
menuCheckLockAdditionals->show();
1568
menuCheckLockTAZs->show();
1569
menuCheckLockWires->show();
1570
menuCheckLockPolygons->show();
1571
menuCheckLockPOIs->show();
1572
menuCheckLockJpsWalkableAreas->show();
1573
menuCheckLockJpsObstacles->show();
1574
}
1575
1576
1577
void
1578
GNEApplicationWindowHelper::LockMenuCommands::hideNetworkLockMenuCommands() {
1579
// first disable menu commands
1580
menuCheckLockJunctions->disable();
1581
menuCheckLockEdges->disable();
1582
menuCheckLockLanes->disable();
1583
menuCheckLockConnections->disable();
1584
menuCheckLockCrossings->disable();
1585
menuCheckLockWalkingAreas->disable();
1586
menuCheckLockAdditionals->disable();
1587
menuCheckLockTAZs->disable();
1588
menuCheckLockPolygons->disable();
1589
menuCheckLockPOIs->disable();
1590
menuCheckLockJpsWalkableAreas->disable();
1591
menuCheckLockJpsObstacles->disable();
1592
// now hide it
1593
menuCheckLockJunctions->hide();
1594
menuCheckLockEdges->hide();
1595
menuCheckLockLanes->hide();
1596
menuCheckLockConnections->hide();
1597
menuCheckLockCrossings->hide();
1598
menuCheckLockWalkingAreas->hide();
1599
menuCheckLockAdditionals->hide();
1600
menuCheckLockTAZs->hide();
1601
menuCheckLockWires->hide();
1602
menuCheckLockPolygons->hide();
1603
menuCheckLockPOIs->hide();
1604
menuCheckLockJpsWalkableAreas->hide();
1605
menuCheckLockJpsObstacles->hide();
1606
}
1607
1608
1609
void
1610
GNEApplicationWindowHelper::LockMenuCommands::showDemandLockMenuCommands() {
1611
// first enable menu commands
1612
menuCheckLockRoutes->enable();
1613
menuCheckLockVehicles->enable();
1614
menuCheckLockPersons->enable();
1615
menuCheckLockPersonTrips->enable();
1616
menuCheckLockWalks->enable();
1617
menuCheckLockRides->enable();
1618
menuCheckLockContainers->enable();
1619
menuCheckLockTransports->enable();
1620
menuCheckLockTranships->enable();
1621
menuCheckLockStops->enable();
1622
// set accels
1623
menuCheckLockRoutes->addHotKey(parseHotKey('r'));
1624
menuCheckLockVehicles->addHotKey(parseHotKey('v'));
1625
menuCheckLockPersons->addHotKey(parseHotKey('p'));
1626
menuCheckLockPersonTrips->addHotKey(parseHotKey('t'));
1627
menuCheckLockWalks->addHotKey(parseHotKey('w'));
1628
menuCheckLockRides->addHotKey(parseHotKey('d'));
1629
menuCheckLockContainers->addHotKey(parseHotKey('c'));
1630
menuCheckLockTransports->addHotKey(parseHotKey('n'));
1631
menuCheckLockTranships->addHotKey(parseHotKey('h'));
1632
menuCheckLockStops->addHotKey(parseHotKey('s'));
1633
// now show it
1634
menuCheckLockRoutes->show();
1635
menuCheckLockVehicles->show();
1636
menuCheckLockPersons->show();
1637
menuCheckLockPersonTrips->show();
1638
menuCheckLockWalks->show();
1639
menuCheckLockRides->show();
1640
menuCheckLockContainers->show();
1641
menuCheckLockTransports->show();
1642
menuCheckLockTranships->show();
1643
menuCheckLockStops->show();
1644
}
1645
1646
1647
void
1648
GNEApplicationWindowHelper::LockMenuCommands::hideDemandLockMenuCommands() {
1649
// first disable menu commands
1650
menuCheckLockRoutes->disable();
1651
menuCheckLockVehicles->disable();
1652
menuCheckLockPersons->disable();
1653
menuCheckLockPersonTrips->disable();
1654
menuCheckLockWalks->disable();
1655
menuCheckLockRides->disable();
1656
menuCheckLockContainers->disable();
1657
menuCheckLockTransports->disable();
1658
menuCheckLockTranships->disable();
1659
menuCheckLockStops->disable();
1660
// now hide it
1661
menuCheckLockRoutes->hide();
1662
menuCheckLockVehicles->hide();
1663
menuCheckLockPersons->hide();
1664
menuCheckLockPersonTrips->hide();
1665
menuCheckLockWalks->hide();
1666
menuCheckLockRides->hide();
1667
menuCheckLockContainers->hide();
1668
menuCheckLockTransports->hide();
1669
menuCheckLockTranships->hide();
1670
menuCheckLockStops->hide();
1671
}
1672
1673
1674
void
1675
GNEApplicationWindowHelper::LockMenuCommands::showDataLockMenuCommands() {
1676
// first enable menu commands
1677
menuCheckLockEdgeDatas->enable();
1678
menuCheckLockEdgeRelDatas->enable();
1679
menuCheckLockEdgeTAZRels->enable();
1680
// set accels
1681
menuCheckLockEdgeDatas->addHotKey(parseHotKey('e'));
1682
menuCheckLockEdgeRelDatas->addHotKey(parseHotKey('d'));
1683
menuCheckLockEdgeTAZRels->addHotKey(parseHotKey('t'));
1684
// now show it
1685
menuCheckLockEdgeDatas->show();
1686
menuCheckLockEdgeRelDatas->show();
1687
menuCheckLockEdgeTAZRels->show();
1688
}
1689
1690
1691
void
1692
GNEApplicationWindowHelper::LockMenuCommands::hideDataLockMenuCommands() {
1693
// first disable menu commands
1694
menuCheckLockEdgeDatas->disable();
1695
menuCheckLockEdgeRelDatas->disable();
1696
menuCheckLockEdgeTAZRels->disable();
1697
// now hide it
1698
menuCheckLockEdgeDatas->hide();
1699
menuCheckLockEdgeRelDatas->hide();
1700
menuCheckLockEdgeTAZRels->hide();
1701
}
1702
1703
1704
void
1705
GNEApplicationWindowHelper::LockMenuCommands::lockAll() {
1706
menuCheckLockJunctions->setCheck(TRUE);
1707
menuCheckLockEdges->setCheck(TRUE);
1708
menuCheckLockLanes->setCheck(TRUE);
1709
menuCheckLockConnections->setCheck(TRUE);
1710
menuCheckLockCrossings->setCheck(TRUE);
1711
menuCheckLockWalkingAreas->setCheck(TRUE);
1712
menuCheckLockAdditionals->setCheck(TRUE);
1713
menuCheckLockTAZs->setCheck(TRUE);
1714
menuCheckLockWires->setCheck(TRUE);
1715
menuCheckLockPolygons->setCheck(TRUE);
1716
menuCheckLockPOIs->setCheck(TRUE);
1717
menuCheckLockJpsWalkableAreas->setCheck(TRUE);
1718
menuCheckLockJpsObstacles->setCheck(TRUE);
1719
menuCheckLockRoutes->setCheck(TRUE);
1720
menuCheckLockVehicles->setCheck(TRUE);
1721
menuCheckLockPersons->setCheck(TRUE);
1722
menuCheckLockPersonTrips->setCheck(TRUE);
1723
menuCheckLockWalks->setCheck(TRUE);
1724
menuCheckLockRides->setCheck(TRUE);
1725
menuCheckLockContainers->setCheck(TRUE);
1726
menuCheckLockTransports->setCheck(TRUE);
1727
menuCheckLockTranships->setCheck(TRUE);
1728
menuCheckLockStops->setCheck(TRUE);
1729
menuCheckLockEdgeDatas->setCheck(TRUE);
1730
menuCheckLockEdgeRelDatas->setCheck(TRUE);
1731
menuCheckLockEdgeTAZRels->setCheck(TRUE);
1732
}
1733
1734
1735
void
1736
GNEApplicationWindowHelper::LockMenuCommands::unlockAll() {
1737
menuCheckLockJunctions->setCheck(FALSE);
1738
menuCheckLockEdges->setCheck(FALSE);
1739
menuCheckLockLanes->setCheck(FALSE);
1740
menuCheckLockConnections->setCheck(FALSE);
1741
menuCheckLockCrossings->setCheck(FALSE);
1742
menuCheckLockWalkingAreas->setCheck(FALSE);
1743
menuCheckLockAdditionals->setCheck(FALSE);
1744
menuCheckLockTAZs->setCheck(FALSE);
1745
menuCheckLockWires->setCheck(FALSE);
1746
menuCheckLockPolygons->setCheck(FALSE);
1747
menuCheckLockPOIs->setCheck(FALSE);
1748
menuCheckLockJpsWalkableAreas->setCheck(FALSE);
1749
menuCheckLockJpsObstacles->setCheck(FALSE);
1750
menuCheckLockRoutes->setCheck(FALSE);
1751
menuCheckLockVehicles->setCheck(FALSE);
1752
menuCheckLockPersons->setCheck(FALSE);
1753
menuCheckLockPersonTrips->setCheck(FALSE);
1754
menuCheckLockWalks->setCheck(FALSE);
1755
menuCheckLockRides->setCheck(FALSE);
1756
menuCheckLockContainers->setCheck(FALSE);
1757
menuCheckLockTransports->setCheck(FALSE);
1758
menuCheckLockTranships->setCheck(FALSE);
1759
menuCheckLockStops->setCheck(FALSE);
1760
menuCheckLockEdgeDatas->setCheck(FALSE);
1761
menuCheckLockEdgeRelDatas->setCheck(FALSE);
1762
menuCheckLockEdgeTAZRels->setCheck(FALSE);
1763
}
1764
1765
1766
void
1767
GNEApplicationWindowHelper::LockMenuCommands::editLocking(const GNEAttributeCarrier* AC, const FXbool value) {
1768
// check elements
1769
if (AC->getTagProperty()->getTag() == SUMO_TAG_JUNCTION) {
1770
menuCheckLockJunctions->setCheck(value);
1771
} else if (AC->getTagProperty()->getTag() == SUMO_TAG_EDGE) {
1772
menuCheckLockEdges->setCheck(value);
1773
} else if (AC->getTagProperty()->getTag() == SUMO_TAG_LANE) {
1774
menuCheckLockLanes->setCheck(value);
1775
} else if (AC->getTagProperty()->getTag() == SUMO_TAG_CONNECTION) {
1776
menuCheckLockConnections->setCheck(value);
1777
} else if (AC->getTagProperty()->getTag() == SUMO_TAG_CROSSING) {
1778
menuCheckLockCrossings->setCheck(value);
1779
} else if (AC->getTagProperty()->getTag() == SUMO_TAG_WALKINGAREA) {
1780
menuCheckLockWalkingAreas->setCheck(value);
1781
} else if (AC->getTagProperty()->isAdditionalElement()) {
1782
menuCheckLockAdditionals->setCheck(value);
1783
} else if (AC->getTagProperty()->isTAZElement()) {
1784
menuCheckLockTAZs->setCheck(value);
1785
} else if (AC->getTagProperty()->isWireElement()) {
1786
menuCheckLockWires->setCheck(value);
1787
} else if (AC->getTagProperty()->getTag() == SUMO_TAG_POLY) {
1788
menuCheckLockPolygons->setCheck(value);
1789
} else if (AC->getTagProperty()->getTag() == GNE_TAG_JPS_WALKABLEAREA) {
1790
menuCheckLockJpsWalkableAreas->setCheck(value);
1791
} else if (AC->getTagProperty()->getTag() == GNE_TAG_JPS_OBSTACLE) {
1792
menuCheckLockJpsObstacles->setCheck(value);
1793
} else if ((AC->getTagProperty()->getTag() == SUMO_TAG_POI) ||
1794
(AC->getTagProperty()->getTag() == GNE_TAG_POILANE) ||
1795
(AC->getTagProperty()->getTag() == GNE_TAG_POIGEO)) {
1796
menuCheckLockPOIs->setCheck(value);
1797
} else if (AC->getTagProperty()->isRoute()) {
1798
menuCheckLockRoutes->setCheck(value);
1799
} else if (AC->getTagProperty()->isVehicle()) {
1800
menuCheckLockVehicles->setCheck(value);
1801
} else if (AC->getTagProperty()->isPerson()) {
1802
menuCheckLockPersons->setCheck(value);
1803
} else if (AC->getTagProperty()->isPlanPersonTrip()) {
1804
menuCheckLockPersonTrips->setCheck(value);
1805
} else if (AC->getTagProperty()->isPlanWalk()) {
1806
menuCheckLockWalks->setCheck(value);
1807
} else if (AC->getTagProperty()->isPlanRide()) {
1808
menuCheckLockRides->setCheck(value);
1809
} else if (AC->getTagProperty()->isContainer()) {
1810
menuCheckLockContainers->setCheck(value);
1811
} else if (AC->getTagProperty()->isPlanTransport()) {
1812
menuCheckLockTransports->setCheck(value);
1813
} else if (AC->getTagProperty()->isPlanTranship()) {
1814
menuCheckLockTranships->setCheck(value);
1815
} else if (AC->getTagProperty()->isVehicleStop() ||
1816
AC->getTagProperty()->isPlanStopPerson() ||
1817
AC->getTagProperty()->isPlanStopContainer()) {
1818
menuCheckLockStops->setCheck(value);
1819
} else if (AC->getTagProperty()->getTag() == GNE_TAG_EDGEREL_SINGLE) {
1820
menuCheckLockEdgeDatas->setCheck(value);
1821
} else if (AC->getTagProperty()->getTag() == SUMO_TAG_EDGEREL) {
1822
menuCheckLockEdgeRelDatas->setCheck(value);
1823
} else if (AC->getTagProperty()->getTag() == SUMO_TAG_TAZREL) {
1824
menuCheckLockEdgeTAZRels->setCheck(value);
1825
}
1826
}
1827
1828
1829
FXHotKey
1830
GNEApplicationWindowHelper::LockMenuCommands::parseHotKey(const FXwchar character) {
1831
FXuint code = 0, mods = 0;
1832
if (Unicode::isAlphaNumeric(character)) {
1833
mods = ALTMASK;
1834
code = fxucs2keysym(Unicode::toLower(character));
1835
}
1836
return MKUINT(code, mods);
1837
}
1838
1839
// ---------------------------------------------------------------------------
1840
// GNEApplicationWindowHelper::ProcessingMenuCommands - methods
1841
// ---------------------------------------------------------------------------
1842
1843
GNEApplicationWindowHelper::ProcessingMenuCommands::ProcessingMenuCommands(GNEApplicationWindow* applicationWindow) :
1844
myApplicationWindow(applicationWindow) {
1845
}
1846
1847
1848
void
1849
GNEApplicationWindowHelper::ProcessingMenuCommands::buildProcessingMenuCommands(FXMenuPane* processingMenu) {
1850
// build network processing menu commands
1851
computeNetwork = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1852
TL("Compute Junctions"), "F5", TL("Compute junction shape and logic."),
1853
GUIIconSubSys::getIcon(GUIIcon::COMPUTEJUNCTIONS), myApplicationWindow, MID_HOTKEY_F5_COMPUTE_NETWORK_DEMAND);
1854
computeNetworkVolatile = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1855
TL("Compute Junctions with volatile options"), "Shift+F5", TL("Compute junction shape and logic using volatile junctions."),
1856
GUIIconSubSys::getIcon(GUIIcon::COMPUTEJUNCTIONS), myApplicationWindow, MID_HOTKEY_SHIFT_F5_COMPUTEJUNCTIONS_VOLATILE);
1857
cleanJunctions = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1858
TL("Clean Junctions"), "F6", TL("Remove solitary junctions."),
1859
GUIIconSubSys::getIcon(GUIIcon::CLEANJUNCTIONS), myApplicationWindow, MID_HOTKEY_F6_CLEAN_SOLITARYJUNCTIONS_UNUSEDROUTES);
1860
joinJunctions = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1861
TL("Join Selected Junctions"), "F7", TL("Join selected junctions into a single junction."),
1862
GUIIconSubSys::getIcon(GUIIcon::JOINJUNCTIONS), myApplicationWindow, MID_HOTKEY_F7_JOIN_SELECTEDJUNCTIONS_ROUTES);
1863
clearInvalidCrossings = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1864
TL("Clean invalid crossings"), "F8", TL("Clear invalid crossings."),
1865
GUIIconSubSys::getIcon(GUIIcon::CLEANJUNCTIONS), myApplicationWindow, MID_HOTKEY_F8_CLEANINVALID_CROSSINGS_DEMANDELEMENTS);
1866
// add separator for checkBox
1867
mySeparatorCheckBox = new FXMenuSeparator(processingMenu);
1868
// add checkBox for recomputing in data mode
1869
menuCheckRecomputeDataMode = GUIDesigns::buildFXMenuCheckboxIcon(processingMenu,
1870
TL("Recompute Network in Data Mode"), "", "",
1871
GUIIconSubSys::getIcon(GUIIcon::SUPERMODEDATA), myApplicationWindow, MID_GNE_TOGGLE_COMPUTE_NETWORK_DATA);
1872
// set default value
1873
menuCheckRecomputeDataMode->setCheck(myApplicationWindow->getApp()->reg().readBoolEntry("NETEDIT", "RecomputeData", true));
1874
// build demand processing menu commands
1875
computeDemand = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1876
TL("Compute demand"), "F5", TL("Computes demand elements."),
1877
GUIIconSubSys::getIcon(GUIIcon::COMPUTEDEMAND), myApplicationWindow, MID_HOTKEY_F5_COMPUTE_NETWORK_DEMAND);
1878
cleanRoutes = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1879
TL("Clean routes"), "F6", TL("Removes routes without vehicles."),
1880
GUIIconSubSys::getIcon(GUIIcon::CLEANROUTES), myApplicationWindow, MID_HOTKEY_F6_CLEAN_SOLITARYJUNCTIONS_UNUSEDROUTES);
1881
joinRoutes = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1882
TL("Join routes"), "F7", TL("Joins routes with the same edges."),
1883
GUIIconSubSys::getIcon(GUIIcon::JOINROUTES), myApplicationWindow, MID_HOTKEY_F7_JOIN_SELECTEDJUNCTIONS_ROUTES);
1884
adjustPersonPlans = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1885
TL("Adjust person plans"), "Shift+F7", TL("Adjust person plans (start/end positions, arrival positions, etc.)"),
1886
GUIIconSubSys::getIcon(GUIIcon::ADJUSTPERSONPLANS), myApplicationWindow, MID_HOTKEY_SHIFT_F7_ADJUST_PERSON_PLANS);
1887
clearInvalidDemandElements = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1888
TL("Clean invalid route elements"), "F8", TL("Clear elements with an invalid path (routes, Trips, Flows...)."),
1889
GUIIconSubSys::getIcon(GUIIcon::CLEANJUNCTIONS), myApplicationWindow, MID_HOTKEY_F8_CLEANINVALID_CROSSINGS_DEMANDELEMENTS);
1890
// add separator
1891
myOptionsSeparator = new FXMenuSeparator(processingMenu);
1892
// create optionmenus
1893
optionMenus = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1894
TL("Sumo options"), "Shift+F10", TL("Configure sumo Options."),
1895
GUIIconSubSys::getIcon(GUIIcon::SUMO_MINI), myApplicationWindow, MID_HOTKEY_SHIFT_F10_SUMOOPTIONSMENU);
1896
// add separator
1897
myOptionsSeparator = new FXMenuSeparator(processingMenu);
1898
// create optionmenus
1899
optionMenus = GUIDesigns::buildFXMenuCommandShortcut(processingMenu,
1900
TL("Options"), "F10", TL("Configure netedit Options."),
1901
GUIIconSubSys::getIcon(GUIIcon::OPTIONS), myApplicationWindow, MID_HOTKEY_F10_OPTIONSMENU);
1902
}
1903
1904
1905
void
1906
GNEApplicationWindowHelper::ProcessingMenuCommands::showNetworkProcessingMenuCommands() {
1907
// first enable menu commands
1908
computeNetwork->enable();
1909
computeNetworkVolatile->enable();
1910
cleanJunctions->enable();
1911
joinJunctions->enable();
1912
clearInvalidCrossings->enable();
1913
mySeparatorCheckBox->enable();
1914
menuCheckRecomputeDataMode->enable();
1915
// now show it
1916
computeNetwork->show();
1917
computeNetworkVolatile->show();
1918
cleanJunctions->show();
1919
joinJunctions->show();
1920
clearInvalidCrossings->show();
1921
mySeparatorCheckBox->show();
1922
menuCheckRecomputeDataMode->show();
1923
}
1924
1925
1926
void
1927
GNEApplicationWindowHelper::ProcessingMenuCommands::hideNetworkProcessingMenuCommands() {
1928
// first disable menu commands
1929
computeNetwork->disable();
1930
computeNetworkVolatile->disable();
1931
cleanJunctions->disable();
1932
joinJunctions->disable();
1933
clearInvalidCrossings->disable();
1934
// now hide it
1935
computeNetwork->hide();
1936
computeNetworkVolatile->hide();
1937
cleanJunctions->hide();
1938
joinJunctions->hide();
1939
clearInvalidCrossings->hide();
1940
}
1941
1942
1943
void
1944
GNEApplicationWindowHelper::ProcessingMenuCommands::showDemandProcessingMenuCommands() {
1945
// first enable menu commands
1946
computeDemand->enable();
1947
cleanRoutes->enable();
1948
joinRoutes->enable();
1949
adjustPersonPlans->enable();
1950
clearInvalidDemandElements->enable();
1951
// now show it
1952
computeDemand->show();
1953
cleanRoutes->show();
1954
joinRoutes->show();
1955
adjustPersonPlans->show();
1956
clearInvalidDemandElements->show();
1957
}
1958
1959
1960
void
1961
GNEApplicationWindowHelper::ProcessingMenuCommands::hideDemandProcessingMenuCommands() {
1962
// first disable menu commands
1963
computeDemand->disable();
1964
cleanRoutes->disable();
1965
joinRoutes->disable();
1966
adjustPersonPlans->disable();
1967
clearInvalidDemandElements->disable();
1968
// now hide it
1969
computeDemand->hide();
1970
cleanRoutes->hide();
1971
joinRoutes->hide();
1972
adjustPersonPlans->hide();
1973
clearInvalidDemandElements->hide();
1974
}
1975
1976
1977
void
1978
GNEApplicationWindowHelper::ProcessingMenuCommands::showDataProcessingMenuCommands() {
1979
// currently nothing to show
1980
}
1981
1982
1983
void
1984
GNEApplicationWindowHelper::ProcessingMenuCommands::hideDataProcessingMenuCommands() {
1985
// currently nothing to hide
1986
}
1987
1988
1989
void
1990
GNEApplicationWindowHelper::ProcessingMenuCommands::showSeparator() {
1991
myOptionsSeparator->show();
1992
}
1993
1994
1995
void
1996
GNEApplicationWindowHelper::ProcessingMenuCommands::hideSeparator() {
1997
myOptionsSeparator->hide();
1998
}
1999
2000
// ---------------------------------------------------------------------------
2001
// GNEApplicationWindowHelper::LocateMenuCommands - methods
2002
// ---------------------------------------------------------------------------
2003
2004
GNEApplicationWindowHelper::LocateMenuCommands::LocateMenuCommands(GNEApplicationWindow* applicationWindow) :
2005
myApplicationWindow(applicationWindow) {
2006
}
2007
2008
2009
void
2010
GNEApplicationWindowHelper::LocateMenuCommands::buildLocateMenuCommands(FXMenuPane* locateMenu) {
2011
// build locate menu commands
2012
GUIDesigns::buildFXMenuCommandShortcut(locateMenu,
2013
TL("&Junctions"), "Shift+J", TL("Open a dialog for locating a Junction."),
2014
GUIIconSubSys::getIcon(GUIIcon::LOCATEJUNCTION), myApplicationWindow, MID_HOTKEY_SHIFT_J_LOCATEJUNCTION);
2015
GUIDesigns::buildFXMenuCommandShortcut(locateMenu,
2016
TL("&Edges"), "Shift+E", TL("Open a dialog for locating an Edge."),
2017
GUIIconSubSys::getIcon(GUIIcon::LOCATEEDGE), myApplicationWindow, MID_HOTKEY_SHIFT_E_LOCATEEDGE);
2018
GUIDesigns::buildFXMenuCommandShortcut(locateMenu,
2019
TL("&WalkingAreas"), "Shift+W", TL("Open a dialog for locating a Walking Area."),
2020
GUIIconSubSys::getIcon(GUIIcon::LOCATEWALKINGAREA), myApplicationWindow, MID_HOTKEY_SHIFT_W_LOCATEWALKINGAREA);
2021
GUIDesigns::buildFXMenuCommandShortcut(locateMenu,
2022
TL("&Vehicles"), "Shift+V", TL("Open a dialog for locating a Vehicle."),
2023
GUIIconSubSys::getIcon(GUIIcon::LOCATEVEHICLE), myApplicationWindow, MID_HOTKEY_SHIFT_V_LOCATEVEHICLE);
2024
GUIDesigns::buildFXMenuCommandShortcut(locateMenu,
2025
TL("&Persons"), "Shift+P", TL("Open a dialog for locating a Person."),
2026
GUIIconSubSys::getIcon(GUIIcon::LOCATEPERSON), myApplicationWindow, MID_HOTKEY_SHIFT_P_LOCATEPERSON);
2027
GUIDesigns::buildFXMenuCommandShortcut(locateMenu,
2028
TL("&Containers"), "Shift+C", TL("Open a dialog for locating a Container."),
2029
GUIIconSubSys::getIcon(GUIIcon::LOCATECONTAINER), myApplicationWindow, MID_HOTKEY_SHIFT_C_LOCATECONTAINER);
2030
GUIDesigns::buildFXMenuCommandShortcut(locateMenu,
2031
TL("&Route"), "Shift+R", TL("Open a dialog for locating a Route."),
2032
GUIIconSubSys::getIcon(GUIIcon::LOCATEROUTE), myApplicationWindow, MID_HOTKEY_SHIFT_R_LOCATEROUTE);
2033
GUIDesigns::buildFXMenuCommandShortcut(locateMenu,
2034
TL("&Stops"), "Shift+S", TL("Open a dialog for locating a Stop."),
2035
GUIIconSubSys::getIcon(GUIIcon::LOCATESTOP), myApplicationWindow, MID_HOTKEY_SHIFT_S_LOCATESTOP);
2036
GUIDesigns::buildFXMenuCommandShortcut(locateMenu,
2037
TL("&TLS"), "Shift+T", TL("Open a dialog for locating a Traffic Light."),
2038
GUIIconSubSys::getIcon(GUIIcon::LOCATETLS), myApplicationWindow, MID_HOTKEY_SHIFT_T_LOCATETLS);
2039
GUIDesigns::buildFXMenuCommandShortcut(locateMenu,
2040
TL("&Additional"), "Shift+A", TL("Open a dialog for locating an Additional Structure."),
2041
GUIIconSubSys::getIcon(GUIIcon::LOCATEADD), myApplicationWindow, MID_HOTKEY_SHIFT_A_LOCATEADDITIONAL);
2042
GUIDesigns::buildFXMenuCommandShortcut(locateMenu,
2043
TL("P&oI"), "Shift+O", TL("Open a dialog for locating a Point of Interest."),
2044
GUIIconSubSys::getIcon(GUIIcon::LOCATEPOI), myApplicationWindow, MID_HOTKEY_SHIFT_O_LOCATEPOI);
2045
GUIDesigns::buildFXMenuCommandShortcut(locateMenu,
2046
TL("Po&lygon"), "Shift+L", TL("Open a dialog for locating a Polygon."),
2047
GUIIconSubSys::getIcon(GUIIcon::LOCATEPOLY), myApplicationWindow, MID_HOTKEY_SHIFT_L_LOCATEPOLY);
2048
}
2049
2050
// ---------------------------------------------------------------------------
2051
// GNEApplicationWindowHelper::ToolsMenuCommands - methods
2052
// ---------------------------------------------------------------------------
2053
2054
GNEApplicationWindowHelper::ToolsMenuCommands::ToolsMenuCommands(GNEApplicationWindow* applicationWindow) :
2055
myApplicationWindow(applicationWindow) {
2056
}
2057
2058
2059
GNEApplicationWindowHelper::ToolsMenuCommands::~ToolsMenuCommands() {
2060
// delete all tools
2061
for (const auto& tool : myPythonTools) {
2062
delete tool;
2063
}
2064
// delete dialogs
2065
if (myPythonToolDialog) {
2066
delete myPythonToolDialog;
2067
}
2068
}
2069
2070
2071
void
2072
GNEApplicationWindowHelper::ToolsMenuCommands::buildTools(FXMenuPane* toolsMenu,
2073
const std::map<std::string, FXMenuPane*>& menuPaneToolMaps) {
2074
// build tools from template
2075
// the templateTools vector is imported from templates.h (which only exists in the cmake-build folder)
2076
for (const auto& templateTool : templateTools) {
2077
if (templateTool.name == "netdiff") {
2078
myPythonTools.push_back(new GNENetDiffTool(myApplicationWindow, templateTool.pythonPath,
2079
menuPaneToolMaps.at(templateTool.subfolder)));
2080
} else if (menuPaneToolMaps.count(templateTool.subfolder) > 0) {
2081
myPythonTools.push_back(new GNEPythonTool(myApplicationWindow, templateTool.pythonPath,
2082
templateTool.templateStr, menuPaneToolMaps.at(templateTool.subfolder)));
2083
} else {
2084
myPythonTools.push_back(new GNEPythonTool(myApplicationWindow, templateTool.pythonPath,
2085
templateTool.templateStr, toolsMenu));
2086
}
2087
}
2088
}
2089
2090
2091
long
2092
GNEApplicationWindowHelper::ToolsMenuCommands::showTool(FXObject* menuCommand) {
2093
// iterate over all tools and find menu command
2094
for (const auto& tool : myPythonTools) {
2095
if (tool->getMenuCommand() == menuCommand) {
2096
if (myPythonToolDialog) {
2097
delete myPythonToolDialog;
2098
}
2099
myPythonToolDialog = new GNEPythonToolDialog(myApplicationWindow, tool);
2100
return 1;
2101
}
2102
}
2103
return 0;
2104
}
2105
2106
2107
long
2108
GNEApplicationWindowHelper::ToolsMenuCommands::runToolDialog(FXObject* menuCommand) const {
2109
// iterate over all tools and find menu command
2110
for (const auto& tool : myPythonTools) {
2111
if (tool->getMenuCommand() == menuCommand) {
2112
GNERunPythonToolDialog(myApplicationWindow, tool);
2113
return 1;
2114
}
2115
}
2116
return 0;
2117
}
2118
2119
2120
long
2121
GNEApplicationWindowHelper::ToolsMenuCommands::postProcessing(FXObject* menuCommand) const {
2122
// iterate over all tools and find menu command
2123
for (const auto& tool : myPythonTools) {
2124
if (tool->getMenuCommand() == menuCommand) {
2125
// execute postProcessing
2126
tool->postProcessing();
2127
return 1;
2128
}
2129
}
2130
return 0;
2131
}
2132
2133
// ---------------------------------------------------------------------------
2134
// GNEApplicationWindowHelper::WindowsMenuCommands - methods
2135
// ---------------------------------------------------------------------------
2136
2137
GNEApplicationWindowHelper::WindowsMenuCommands::WindowsMenuCommands(GNEApplicationWindow* applicationWindow) :
2138
myApplicationWindow(applicationWindow) {
2139
}
2140
2141
2142
void
2143
GNEApplicationWindowHelper::WindowsMenuCommands::buildWindowsMenuCommands(FXMenuPane* windowsMenu,
2144
FXStatusBar* statusbar, GUIMessageWindow* messageWindow) {
2145
// build windows menu commands
2146
GUIDesigns::buildFXMenuCheckbox(windowsMenu,
2147
TL("Show Status Line"), TL("Toggle this Status Bar on/off."),
2148
statusbar, FXWindow::ID_TOGGLESHOWN);
2149
GUIDesigns::buildFXMenuCheckbox(windowsMenu,
2150
TL("Show Message Window"), TL("Toggle the Message Window on/off."),
2151
messageWindow, FXWindow::ID_TOGGLESHOWN);
2152
new FXMenuSeparator(windowsMenu);
2153
GUIDesigns::buildFXMenuCommandShortcut(windowsMenu,
2154
TL("Clear Message Window"), "", TL("Clear the Message Window."),
2155
GUIIconSubSys::getIcon(GUIIcon::CLEARMESSAGEWINDOW), myApplicationWindow, MID_CLEARMESSAGEWINDOW);
2156
}
2157
2158
// ---------------------------------------------------------------------------
2159
// GNEApplicationWindowHelper::WindowsMenuCommands - methods
2160
// ---------------------------------------------------------------------------
2161
2162
GNEApplicationWindowHelper::HelpMenuCommands::HelpMenuCommands(GNEApplicationWindow* applicationWindow) :
2163
myApplicationWindow(applicationWindow) {
2164
}
2165
2166
2167
void
2168
GNEApplicationWindowHelper::HelpMenuCommands::buildHelpMenuCommands(FXMenuPane* helpMenu) {
2169
// build windows menu commands
2170
GUIDesigns::buildFXMenuCommandShortcut(helpMenu, TL("Online Documentation"), "F1", TL("Open Online documentation."),
2171
nullptr, myApplicationWindow, MID_HOTKEY_F1_ONLINEDOCUMENTATION);
2172
new FXMenuSeparator(helpMenu);
2173
GUIDesigns::buildFXMenuCommandShortcut(helpMenu, TL("Changelog"), "", TL("Open Changelog."),
2174
nullptr, myApplicationWindow, MID_CHANGELOG);
2175
GUIDesigns::buildFXMenuCommandShortcut(helpMenu, TL("Hotkeys"), "", TL("Open Hotkeys."),
2176
nullptr, myApplicationWindow, MID_HOTKEYS);
2177
GUIDesigns::buildFXMenuCommandShortcut(helpMenu, TL("Tutorial"), "", TL("Open Tutorial."),
2178
nullptr, myApplicationWindow, MID_TUTORIAL);
2179
GUIDesigns::buildFXMenuCommandShortcut(helpMenu, TL("Feedback"), "", TL("Open feedback channels."),
2180
nullptr, myApplicationWindow, MID_FEEDBACK);
2181
new FXMenuSeparator(helpMenu);
2182
GUIDesigns::buildFXMenuCommandShortcut(helpMenu, TL("About"), "F12", TL("About netedit."),
2183
GUIIconSubSys::getIcon(GUIIcon::NETEDIT_MINI), myApplicationWindow, MID_HOTKEY_F12_ABOUT);
2184
}
2185
2186
// ---------------------------------------------------------------------------
2187
// GNEApplicationWindowHelper::NetworkCheckableButtons - methods
2188
// ---------------------------------------------------------------------------
2189
2190
GNEApplicationWindowHelper::SupermodeCommands::SupermodeCommands(GNEApplicationWindow* applicationWindow) :
2191
myApplicationWindow(applicationWindow) {
2192
}
2193
2194
2195
void
2196
GNEApplicationWindowHelper::SupermodeCommands::showSupermodeCommands() {
2197
networkMode->show();
2198
demandMode->show();
2199
dataMode->show();
2200
}
2201
2202
2203
void
2204
GNEApplicationWindowHelper::SupermodeCommands::setDefaultView() {
2205
showSupermodeCommands();
2206
}
2207
2208
2209
void
2210
GNEApplicationWindowHelper::SupermodeCommands::setJuPedSimView() {
2211
dataMode->hide();
2212
}
2213
2214
2215
void
2216
GNEApplicationWindowHelper::SupermodeCommands::buildSupermodeCommands(FXMenuPane* editMenu) {
2217
// build supermode menu commands
2218
networkMode = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
2219
TL("&Network"), "F2", TL("Select network mode."),
2220
GUIIconSubSys::getIcon(GUIIcon::SUPERMODENETWORK), myApplicationWindow, MID_HOTKEY_F2_SUPERMODE_NETWORK);
2221
demandMode = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
2222
TL("&Demand"), "F3", TL("Select demand mode."),
2223
GUIIconSubSys::getIcon(GUIIcon::SUPERMODEDEMAND), myApplicationWindow, MID_HOTKEY_F3_SUPERMODE_DEMAND);
2224
dataMode = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
2225
TL("&Data"), "F4", TL("Select data mode."),
2226
GUIIconSubSys::getIcon(GUIIcon::SUPERMODEDATA), myApplicationWindow, MID_HOTKEY_F4_SUPERMODE_DATA);
2227
}
2228
2229
// ---------------------------------------------------------------------------
2230
// GNESumoConfigHandler - methods
2231
// ---------------------------------------------------------------------------
2232
2233
GNEApplicationWindowHelper::GNESumoConfigHandler::GNESumoConfigHandler(OptionsCont& sumoOptions, const std::string& file) :
2234
mySumoOptions(sumoOptions),
2235
myFile(file) {
2236
}
2237
2238
2239
bool
2240
GNEApplicationWindowHelper::GNESumoConfigHandler::loadSumoConfig() {
2241
// get options
2242
auto& neteditOptions = OptionsCont::getOptions();
2243
// reset options
2244
mySumoOptions.resetDefault();
2245
neteditOptions.resetDefault();
2246
// make all options writables
2247
mySumoOptions.resetWritable();
2248
neteditOptions.resetWritable();
2249
// build parser
2250
XERCES_CPP_NAMESPACE::SAXParser parser;
2251
parser.setValidationScheme(XERCES_CPP_NAMESPACE::SAXParser::Val_Never);
2252
parser.setDisableDefaultEntityResolution(true);
2253
// start the parsing
2254
OptionsLoader handler(mySumoOptions);
2255
try {
2256
parser.setDocumentHandler(&handler);
2257
parser.setErrorHandler(&handler);
2258
parser.parse(StringUtils::transcodeToLocal(myFile).c_str());
2259
if (handler.errorOccurred()) {
2260
WRITE_ERROR(TL("Could not load SUMO configuration '") + myFile + "'.");
2261
return false;
2262
}
2263
} catch (const XERCES_CPP_NAMESPACE::XMLException& e) {
2264
WRITE_ERROR(TL("Could not load SUMO configuration '") + myFile + "':\n " + StringUtils::transcode(e.getMessage()));
2265
return false;
2266
}
2267
// relocate files
2268
mySumoOptions.relocateFiles(myFile);
2269
// set loaded files in netedit options
2270
neteditOptions.set("sumocfg-file", myFile);
2271
neteditOptions.set("net-file", mySumoOptions.getString("net-file"));
2272
// check if we need to define the configuration file
2273
if (neteditOptions.getString("configuration-file").empty()) {
2274
const auto newConfiguration = StringUtils::replace(neteditOptions.getString("configuration-file"), ".sumocfg", ".netecfg");
2275
neteditOptions.resetWritable();
2276
neteditOptions.set("configuration-file", newConfiguration);
2277
}
2278
return true;
2279
}
2280
2281
// ---------------------------------------------------------------------------
2282
// GNENeteditConfigHandler - methods
2283
// ---------------------------------------------------------------------------
2284
2285
GNEApplicationWindowHelper::GNENeteditConfigHandler::GNENeteditConfigHandler(const std::string& file) :
2286
myFile(file) {
2287
}
2288
2289
2290
bool
2291
GNEApplicationWindowHelper::GNENeteditConfigHandler::loadNeteditConfig() {
2292
// get options
2293
auto& neteditOptions = OptionsCont::getOptions();
2294
// before reset defaults, save ignore route and demand elements (because usually are loaded trought console)
2295
const bool ignoreAdditionalElements = neteditOptions.getBool("ignore.additionalelements");
2296
const bool ignoreRouteElements = neteditOptions.getBool("ignore.routeelements");
2297
// reset options
2298
neteditOptions.resetDefault();
2299
// make all options writables
2300
neteditOptions.resetWritable();
2301
// build parser
2302
XERCES_CPP_NAMESPACE::SAXParser parser;
2303
parser.setValidationScheme(XERCES_CPP_NAMESPACE::SAXParser::Val_Never);
2304
parser.setDisableDefaultEntityResolution(true);
2305
// start the parsing
2306
OptionsLoader handler(neteditOptions);
2307
try {
2308
parser.setDocumentHandler(&handler);
2309
parser.setErrorHandler(&handler);
2310
parser.parse(StringUtils::transcodeToLocal(myFile).c_str());
2311
if (handler.errorOccurred()) {
2312
WRITE_ERROR(TL("Could not load netedit configuration '") + myFile + "'.");
2313
return false;
2314
}
2315
} catch (const XERCES_CPP_NAMESPACE::XMLException& e) {
2316
WRITE_ERROR(TL("Could not load netedit configuration '") + myFile + "':\n " + StringUtils::transcode(e.getMessage()));
2317
return false;
2318
}
2319
// relocate files
2320
neteditOptions.relocateFiles(myFile);
2321
// check if we have loaded a netedit config or a netconvert config
2322
if (neteditOptions.getString("configuration-file").find(".netccfg") != std::string::npos) {
2323
const auto newConfiguration = StringUtils::replace(neteditOptions.getString("configuration-file"), ".netccfg", ".netecfg");
2324
neteditOptions.resetWritable();
2325
neteditOptions.set("configuration-file", newConfiguration);
2326
}
2327
// restore ignores
2328
neteditOptions.resetWritable();
2329
neteditOptions.set("ignore.additionalelements", toString(ignoreAdditionalElements));
2330
neteditOptions.set("ignore.routeelements", toString(ignoreRouteElements));
2331
return true;
2332
}
2333
2334
// ---------------------------------------------------------------------------
2335
// GNEApplicationWindowHelper - methods
2336
// ---------------------------------------------------------------------------
2337
2338
bool
2339
GNEApplicationWindowHelper::toggleEditOptionsNetwork(GNEViewNet* viewNet, const MFXCheckableButton* menuCheck, FXObject* obj, FXSelector sel) {
2340
// finally function correspond to visibleMenuCommands[numericalKeyPressed]
2341
if (menuCheck == viewNet->getNetworkViewOptions().menuCheckToggleGrid) {
2342
// Call manually onCmdToggleShowGrid
2343
viewNet->onCmdToggleShowGrid(obj, sel, nullptr);
2344
} else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckToggleDrawJunctionShape) {
2345
// Call manually onCmdToggleDrawJunctionShape
2346
viewNet->onCmdToggleDrawJunctionShape(obj, sel, nullptr);
2347
} else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckDrawSpreadVehicles) {
2348
// Call manually onCmdToggleDrawSpreadVehicles
2349
viewNet->onCmdToggleDrawSpreadVehicles(obj, sel, nullptr);
2350
} else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckShowDemandElements) {
2351
// Call manually onCmdToggleShowDemandElementsNetwork
2352
viewNet->onCmdToggleShowDemandElementsNetwork(obj, sel, nullptr);
2353
} else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckSelectEdges) {
2354
// Call manually onCmdToggleSelectEdges
2355
viewNet->onCmdToggleSelectEdges(obj, sel, nullptr);
2356
} else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckShowConnections) {
2357
// Call manually onCmdToggleShowConnections
2358
viewNet->onCmdToggleShowConnections(obj, sel, nullptr);
2359
} else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckHideConnections) {
2360
// Call manually onCmdToggleHideConnections
2361
viewNet->onCmdToggleHideConnections(obj, sel, nullptr);
2362
} else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckShowAdditionalSubElements) {
2363
// Call manually onCmdToggleShowAdditionalSubElements
2364
viewNet->onCmdToggleShowAdditionalSubElements(obj, sel, nullptr);
2365
} else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckShowTAZElements) {
2366
// Call manually onCmdToggleShowTAZElements
2367
viewNet->onCmdToggleShowTAZElements(obj, sel, nullptr);
2368
} else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckExtendSelection) {
2369
// Call manually onCmdToggleExtendSelection
2370
viewNet->onCmdToggleExtendSelection(obj, sel, nullptr);
2371
} else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckChangeAllPhases) {
2372
// Call manually onCmdToggleChangeAllPhases
2373
viewNet->onCmdToggleChangeAllPhases(obj, sel, nullptr);
2374
} else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckMergeAutomatically) {
2375
// Call manually onCmdToggleMergeAutomatically
2376
viewNet->onCmdToggleMergeAutomatically(obj, sel, nullptr);
2377
} else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckMoveElevation) {
2378
// Call manually onCmdToggleMoveElevation
2379
viewNet->onCmdToggleMoveElevation(obj, sel, nullptr);
2380
} else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckChainEdges) {
2381
// Call manually onCmdToggleChainEdges
2382
viewNet->onCmdToggleChainEdges(obj, sel, nullptr);
2383
} else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckAutoOppositeEdge) {
2384
// Call manually onCmdToggleAutoOppositeEdge
2385
viewNet->onCmdToggleAutoOppositeEdge(obj, sel, nullptr);
2386
} else if (menuCheck == viewNet->getNetworkViewOptions().menuCheckShowJunctionBubble) {
2387
// Call manually onCmdToggleShowJunctionBubble
2388
viewNet->onCmdToggleShowJunctionBubbles(obj, sel, nullptr);
2389
} else {
2390
return false;
2391
}
2392
return true;
2393
}
2394
2395
2396
bool
2397
GNEApplicationWindowHelper::toggleEditOptionsDemand(GNEViewNet* viewNet, const MFXCheckableButton* menuCheck, FXObject* obj, FXSelector sel) {
2398
if (menuCheck == viewNet->getDemandViewOptions().menuCheckToggleGrid) {
2399
// Call manually onCmdToggleShowGrid
2400
viewNet->onCmdToggleShowGrid(obj, sel, nullptr);
2401
} else if (menuCheck == viewNet->getDemandViewOptions().menuCheckToggleDrawJunctionShape) {
2402
// Call manually onCmdToggleDrawJunctionShape
2403
viewNet->onCmdToggleDrawJunctionShape(obj, sel, nullptr);
2404
} else if (menuCheck == viewNet->getDemandViewOptions().menuCheckDrawSpreadVehicles) {
2405
// Call manually onCmdToggleDrawSpreadVehicles
2406
viewNet->onCmdToggleDrawSpreadVehicles(obj, sel, nullptr);
2407
} else if (menuCheck == viewNet->getDemandViewOptions().menuCheckHideShapes) {
2408
// Call manually onCmdToggleHideShapes
2409
viewNet->onCmdToggleHideShapes(obj, sel, nullptr);
2410
} else if (menuCheck == viewNet->getDemandViewOptions().menuCheckShowAllTrips) {
2411
// Call manually onCmdToggleShowTrips
2412
viewNet->onCmdToggleShowTrips(obj, sel, nullptr);
2413
} else if (menuCheck == viewNet->getDemandViewOptions().menuCheckShowAllPersonPlans) {
2414
// Call manually onCmdToggleShowAllPersonPlans
2415
viewNet->onCmdToggleShowAllPersonPlans(obj, sel, nullptr);
2416
} else if (menuCheck == viewNet->getDemandViewOptions().menuCheckLockPerson) {
2417
// Call manually onCmdToggleLockPerson
2418
viewNet->onCmdToggleLockPerson(obj, sel, nullptr);
2419
} else if (menuCheck == viewNet->getDemandViewOptions().menuCheckShowAllContainerPlans) {
2420
// Call manually onCmdToggleShowAllContainerPlans
2421
viewNet->onCmdToggleShowAllContainerPlans(obj, sel, nullptr);
2422
} else if (menuCheck == viewNet->getDemandViewOptions().menuCheckLockContainer) {
2423
// Call manually onCmdToggleLockContainer
2424
viewNet->onCmdToggleLockContainer(obj, sel, nullptr);
2425
} else if (menuCheck == viewNet->getDemandViewOptions().menuCheckHideNonInspectedDemandElements) {
2426
// Call manually onCmdToggleHideNonInspecteDemandElements
2427
viewNet->onCmdToggleHideNonInspecteDemandElements(obj, sel, nullptr);
2428
} else if (menuCheck == viewNet->getDemandViewOptions().menuCheckShowOverlappedRoutes) {
2429
// Call manually onCmdToggleHideNonInspecteDemandElements
2430
viewNet->onCmdToggleShowOverlappedRoutes(obj, sel, nullptr);
2431
} else {
2432
return false;
2433
}
2434
return true;
2435
}
2436
2437
2438
bool
2439
GNEApplicationWindowHelper::toggleEditOptionsData(GNEViewNet* viewNet, const MFXCheckableButton* menuCheck, FXObject* obj, FXSelector sel) {
2440
if (menuCheck == viewNet->getDataViewOptions().menuCheckToggleDrawJunctionShape) {
2441
// Call manually onCmdToggleDrawJunctionShape
2442
viewNet->onCmdToggleDrawJunctionShape(obj, sel, nullptr);
2443
} else if (menuCheck == viewNet->getDataViewOptions().menuCheckShowAdditionals) {
2444
// Call manually onCmdToggleShowAdditionals
2445
viewNet->onCmdToggleShowAdditionals(obj, sel, nullptr);
2446
} else if (menuCheck == viewNet->getDataViewOptions().menuCheckShowShapes) {
2447
// Call manually onCmdToggleShowShapes
2448
viewNet->onCmdToggleShowShapes(obj, sel, nullptr);
2449
} else if (menuCheck == viewNet->getDataViewOptions().menuCheckShowDemandElements) {
2450
// Call manually onCmdToggleShowDemandElementsData
2451
viewNet->onCmdToggleShowDemandElementsData(obj, sel, nullptr);
2452
} else if (menuCheck == viewNet->getDataViewOptions().menuCheckToggleTAZRelDrawing) {
2453
// Call manually onCmdToggleTAZRelDrawing
2454
viewNet->onCmdToggleTAZRelDrawing(obj, sel, nullptr);
2455
} else if (menuCheck == viewNet->getDataViewOptions().menuCheckToggleTAZDrawFill) {
2456
// Call manually onCmdToggleTAZDrawFill
2457
viewNet->onCmdToggleTAZDrawFill(obj, sel, nullptr);
2458
} else if (menuCheck == viewNet->getDataViewOptions().menuCheckToggleTAZRelOnlyFrom) {
2459
// Call manually onCmdToggleTAZRelOnlyFrom
2460
viewNet->onCmdToggleTAZRelOnlyFrom(obj, sel, nullptr);
2461
} else if (menuCheck == viewNet->getDataViewOptions().menuCheckToggleTAZRelOnlyTo) {
2462
// Call manually onCmdToggleTAZRelOnlyTo
2463
viewNet->onCmdToggleTAZRelOnlyTo(obj, sel, nullptr);
2464
} else {
2465
return false;
2466
}
2467
return true;
2468
}
2469
2470
2471
bool
2472
GNEApplicationWindowHelper::stringEndsWith(const std::string& str, const std::string& suffix) {
2473
if (str.length() < suffix.length()) {
2474
return false;
2475
} else {
2476
return str.compare(str.length() - suffix.length(), suffix.length(), suffix) == 0;
2477
}
2478
}
2479
2480
/****************************************************************************/
2481
2482