Eclipse SUMO - Simulation of Urban MObility
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
GUIApplicationWindow.h
Go to the documentation of this file.
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/****************************************************************************/
21// The main window of the SUMO-gui.
22/****************************************************************************/
23#pragma once
24#include <config.h>
25
29
30#include "GUISUMOViewParent.h"
31
32
33// ===========================================================================
34// class declarations
35// ===========================================================================
36
37class Command;
38class GUILoadThread;
39class GUIRunThread;
41class GUIEvent;
45class MFXLCDLabel;
46class MFXLabelTooltip;
47
48
49// ===========================================================================
50// class definition
51// ===========================================================================
61 // FOX-declarations
62 FXDECLARE(GUIApplicationWindow)
63
64public:
66 GUIApplicationWindow(FXApp* a);
67
69 virtual ~GUIApplicationWindow();
70
73
75 virtual void create();
76
78 virtual void detach();
79
81
83 void loadOnStartup(const bool wait = false);
84
87
89 void dependentBuild(const bool isLibsumo);
90
92 void setStatusBarText(const std::string& text);
93
95 void addRecentNetwork(const FX::FXString& f);
96
98 void addRecentConfig(const FX::FXString& f);
99
101 FXGLCanvas* getBuildGLCanvas() const;
102
105
107 double getTrackerInterval() const;
108
110 FXCursor* getDefaultCursor();
111
114
116 virtual void eventOccurred();
117
120
123
126
129
131
134
136 long onCmdNewWindow(FXObject*, FXSelector, void*);
137
139 long onCmdOpenConfiguration(FXObject*, FXSelector, void*);
140
142 long onCmdOpenNetwork(FXObject*, FXSelector, void*);
143
145 long onCmdOpenShapes(FXObject*, FXSelector, void*);
146
148 long onCmdOpenEdgeData(FXObject*, FXSelector, void*);
149
151 long onCmdReload(FXObject*, FXSelector, void*);
152
154 long onCmdQuickReload(FXObject*, FXSelector, void*);
155
157 long onCmdOpenRecent(FXObject*, FXSelector, void*);
158
160 long onCmdSaveConfig(FXObject*, FXSelector, void*);
161
163 long onCmdClose(FXObject*, FXSelector, void*);
164
166 long onCmdQuit(FXObject*, FXSelector, void*);
167
169 long onCmdEditChosen(FXObject*, FXSelector, void*);
170
172 long onCmdEditBreakpoints(FXObject*, FXSelector, void*);
173
175 long onCmdEditViewScheme(FXObject*, FXSelector, void*);
176
178 long onCmdEditViewport(FXObject*, FXSelector, void*);
179
181 long onCmdHelp(FXObject* sender, FXSelector sel, void* ptr);
182
184 long onCmdChangelog(FXObject* sender, FXSelector sel, void* ptr);
185
187 long onCmdHotkeys(FXObject* sender, FXSelector sel, void* ptr);
188
190 long onCmdTutorial(FXObject* sender, FXSelector sel, void* ptr);
191
193 long onCmdOpenInNetedit(FXObject*, FXSelector, void*);
194
196 long onCmdAppSettings(FXObject*, FXSelector, void*);
197
199 long onCmdGaming(FXObject*, FXSelector, void*);
200
202 long onCmdToggleDrawJunctionShape(FXObject*, FXSelector, void*);
203
205 long onCmdToggleSecondaryShape(FXObject*, FXSelector, void*);
206
208 long onCmdFullScreen(FXObject*, FXSelector, void*);
209
211 long onCmdListInternal(FXObject*, FXSelector, void*);
212
214 long onCmdListParking(FXObject*, FXSelector, void*);
215
217 long onCmdListTeleporting(FXObject*, FXSelector, void*);
218
220 long onCmdFeedback(FXObject*, FXSelector, void*);
221
223 long onCmdAbout(FXObject*, FXSelector, void*);
224
226 long onCmdHallOfFame(FXObject*, FXSelector, void*);
227
229 long onCmdStart(FXObject*, FXSelector, void*);
230
232 long onCmdStop(FXObject*, FXSelector, void*);
233
235 long onCmdStep(FXObject*, FXSelector, void*);
236
238 long onCmdSaveState(FXObject*, FXSelector, void*);
239
241 long onCmdLoadState(FXObject*, FXSelector, void*);
242
244 long onCmdTimeToggle(FXObject*, FXSelector, void*);
245
247 long onCmdDelayInc(FXObject*, FXSelector, void*);
248
250 long onCmdDelayDec(FXObject*, FXSelector, void*);
251
253 long onCmdDelayToggle(FXObject*, FXSelector, void*);
254
256 long onCmdDemandScale(FXObject*, FXSelector, void*);
257
259 long onCmdNewView(FXObject*, FXSelector, void*);
260
261#ifdef HAVE_OSG
263 long onCmdNewOSG(FXObject*, FXSelector, void*);
264#endif
265
267 long onUpdOpen(FXObject*, FXSelector, void*);
268
270 long onUpdReload(FXObject*, FXSelector, void*);
271
273 long onUpdOpenRecent(FXObject*, FXSelector, void*);
274
276 long onUpdAddView(FXObject*, FXSelector, void*);
277
279 long onUpdStart(FXObject* sender, FXSelector, void* ptr);
280
282 long onUpdStop(FXObject*, FXSelector, void*);
283
285 long onUpdStep(FXObject*, FXSelector, void*);
286
288 long onUpdNeedsNetwork(FXObject*, FXSelector, void*);
289
291 long onUpdNeedsSumoConfig(FXObject*, FXSelector, void*);
292
294 long onUpdTraCIStatus(FXObject*, FXSelector, void*);
295
297 long onCmdClearMsgWindow(FXObject*, FXSelector, void*);
298
300 long onCmdBreakpoint(FXObject*, FXSelector, void*);
301
303 long onCmdBreakpointEarly(FXObject*, FXSelector, void*);
304
306 long onCmdLocate(FXObject*, FXSelector, void*);
307
309 long onCmdShowStats(FXObject*, FXSelector, void*);
310
312 long onLoadThreadEvent(FXObject*, FXSelector, void*);
313
315 long onRunThreadEvent(FXObject*, FXSelector, void*);
316
318 long onClipboardRequest(FXObject* sender, FXSelector sel, void* ptr);
319
321 long onKeyPress(FXObject* o, FXSelector sel, void* data);
322
324 long onKeyRelease(FXObject* o, FXSelector sel, void* data);
325
327
329 virtual double getDelay() const;
330
332 virtual void setDelay(double delay);
333
335 virtual void setBreakpoints(const std::vector<SUMOTime>& breakpoints);
336
338 void addBreakpoint(SUMOTime time);
339
341 virtual void sendBlockingEvent(GUIEvent* event);
342
344 const std::vector<SUMOTime> retrieveBreakpoints() const;
345
348
350 void addHotkey(int key, Command* press, Command* release);
351
352protected:
354 FOX_CONSTRUCTOR(GUIApplicationWindow)
355
356
357 virtual void addToWindowsMenu(FXMenuPane* menuPane);
358
360 virtual void fillMenuBar();
361
363 virtual void buildToolBars();
364
366 void buildRecentNetworks(FXMenuPane* fileMenu, FXMenuPane* fileMenuRecentNetworks);
367
369 void buildRecentConfigs(FXMenuPane* fileMenu, FXMenuPane* fileMenuRecentConfigs);
370
372 std::string myName;
373
376
379
381 bool myWasStarted = false;
382
385
387 bool myAmLoading = false;
388
390 bool myIsReload = false;
391
394
396 FXMenuPane* myFileMenu = nullptr,
397 *myEditMenu = nullptr,
399 *mySettingsMenu = nullptr,
400 *myLocatorMenu = nullptr,
401 *myControlMenu = nullptr,
402 *myWindowMenu = nullptr,
403 *myHelpMenu = nullptr;
404
406 FXMenuPane* myFileMenuRecentNetworks = nullptr;
407
409 FXMenuPane* myFileMenuRecentConfigs = nullptr;
410
412 FXMenuCascade* mySelectLanesMenuCascade = nullptr;
413
415 FXMenuCheck* myLoadAdditionalsInNetedit = nullptr;
416
418 FXMenuCheck* myLoadDemandInNetedit = nullptr;
419
421 FXMenuCommand* myOpenInNetedit = nullptr;
422
424 std::vector<FXButton*> myStatButtons;
425
428
430 FXSplitter* myMainSplitter = nullptr;
431
433 FXToolBarShell* myToolBarDrag1 = nullptr,
434 *myToolBarDrag2 = nullptr,
435 *myToolBarDrag3 = nullptr,
436 *myToolBarDrag4 = nullptr,
437 *myToolBarDrag5 = nullptr,
438 *myMenuBarDrag = nullptr,
439 *myToolBarDrag8 = nullptr;
440
442 double mySimDelay = 0.;
443
445 FXDataTarget* mySimDelayTarget = nullptr;
446
448 FXRealSpinner* mySimDelaySpinner = nullptr;
449
451 FXSlider* mySimDelaySlider = nullptr;
452
455
457 FXRealSpinner* myDemandScaleSpinner = nullptr;
458
461
464
466 FXMDIMenu* myMDIMenu = nullptr;
467
469 FXMenuBar* myMenuBar = nullptr;
470
472 FXToolBar* myToolBar1 = nullptr,
473 *myToolBar2 = nullptr,
474 *myToolBar3 = nullptr,
475 *myToolBar4 = nullptr,
476 *myToolBar5 = nullptr,
477 *myToolBar8 = nullptr;
478
481
484
487
490
493
495 bool hadDependentBuild = false;
496
498 bool myShowTimeAsHMS = false;
499
502
505
507 FXCondition myEventCondition;
508
511
514
517
520
522 double myJamSoundTime = 60;
523
525 static std::mt19937 myGamingRNG;
526
529
531 bool myTLSGame = false;
532
535
538
541
544
547
549 double myTotalDistance = 0;
550
553
556
558 FXToolBar* myToolBar6 = nullptr,
559 *myToolBar7 = nullptr,
560 *myToolBar9 = nullptr,
561 *myToolBar10 = nullptr;
562
564 FXToolBarShell* myToolBarDrag6 = nullptr,
565 *myToolBarDrag7 = nullptr,
566 *myToolBarDrag9 = nullptr,
567 *myToolBarDrag10 = nullptr;
569
572
574 std::map<int, Command*> myHotkeyPress;
575
577 std::map<int, Command*> myHotkeyRelease;
578
581
582 std::stringstream* myDynamicSelection = nullptr;
583
584private:
586 void loadConfigOrNet(const std::string& file);
587
589 void closeAllWindows();
590
592 void updateTimeLCD(SUMOTime time);
593
596
599
601 void checkGamingEvents();
602
605
608
611};
long long int SUMOTime
Definition GUI.h:36
Base (microsim) event class.
Definition Command.h:50
The main window of the SUMO-gui.
long onCmdDelayInc(FXObject *, FXSelector, void *)
Called on "delay inc".
long onUpdReload(FXObject *, FXSelector, void *)
Determines whether reloading is enabled.
long onCmdShowStats(FXObject *, FXSelector, void *)
Called on commands from the statistic buttons.
FXToolBarShell * myToolBarDrag2
long onCmdTimeToggle(FXObject *, FXSelector, void *)
Called on "time toggle".
virtual void sendBlockingEvent(GUIEvent *event)
Sends an event from the application thread to the GUI and waits until it is handled.
GUIDialog_Breakpoints * myBreakpointDialog
breakpoint dialog
FXEX::MFXThreadEvent myLoadThreadEvent
io-event with the load-thread
void handleEvent_Message(GUIEvent *e)
called when event "message" ocurred
GUILoadThread * myLoadThread
the thread that loads simulations
MFXLabelTooltip * myScaleTrafficTooltip
the demand scale label
void handleEvent_SimulationEnded(GUIEvent *e)
called when event "simulation ended" ocurred
GUIApplicationWindow & operator=(const GUIApplicationWindow &s)=delete
invalidate assignment operator
FXMenuCheck * myGamingModeCheckbox
menu checkbox to activate game mode
int myViewNumber
The current view number.
FXToolBarShell * myToolBarDrag4
long onCmdAbout(FXObject *, FXSelector, void *)
Shows the about dialog.
SUMOTime myWaitingTime
waiting time
long onCmdFeedback(FXObject *, FXSelector, void *)
Shows the feedback dialog.
long onClipboardRequest(FXObject *sender, FXSelector sel, void *ptr)
Somebody wants our clipped text.
long onUpdTraCIStatus(FXObject *, FXSelector, void *)
Determines whether traci is active.
long onUpdStep(FXObject *, FXSelector, void *)
Determines whether "step" is enabled.
bool myAmLoading
information whether the gui is currently loading and the load-options shall be greyed out
long onCmdAppSettings(FXObject *, FXSelector, void *)
Opens the application settings menu (Settings->Application Settings...)
long onKeyPress(FXObject *o, FXSelector sel, void *data)
called when a key is pressed
void handleEvent_SimulationLoaded(GUIEvent *e)
called when event "simulation loaded" ocurred
long onCmdBreakpoint(FXObject *, FXSelector, void *)
Called to set a breakpoint via hotkey.
FXToolBarShell * myToolBarDrag9
FXRealSpinner * mySimDelaySpinner
Simulation delay spinner.
long onCmdBreakpointEarly(FXObject *, FXSelector, void *)
Called to set an early breakpoint via hotkey.
long onCmdChangelog(FXObject *sender, FXSelector sel, void *ptr)
called if the user selects help->Changelog
long onCmdOpenInNetedit(FXObject *, FXSelector, void *)
Called on menu Edit->open in Netedit.
void handleEvent_SimulationStep(GUIEvent *e)
called when event "simulation step" ocurred
bool myHaveNotifiedAboutSimEnd
whether the simulation end was already announced
void setStatusBarText(const std::string &text)
set status bar text
FXToolBarShell * myToolBarDrag10
FXMenuPane * myFileMenuRecentConfigs
FXMenu pane for recent configs.
long onCmdStop(FXObject *, FXSelector, void *)
Called on "stop".
MFXRecentNetworks myRecentNetworks
List of recent networks.
MFXLCDLabel * myTimeLossLabel
time loss label
double myJamSoundTime
waiting time after which vehicles trigger jam sounds
FXRealSpinner * myDemandScaleSpinner
the demand scale
long onCmdTutorial(FXObject *sender, FXSelector sel, void *ptr)
called if the user selects help->Tutorial
virtual void setDelay(double delay)
Sets the delay of the parent application in milliseconds.
MFXLCDLabel * myEmergencyVehicleLabel
emergency vehicle label
std::stringstream * myDynamicSelection
FXToolBarShell * myToolBarDrag7
double mySimDelay
the simulation delay in milliseconds
void addRecentConfig(const FX::FXString &f)
add recent config to recent file list
SUMOTime getCurrentSimTime() const
get current simulation time
long onUpdAddView(FXObject *, FXSelector, void *)
Determines whether adding a view is enabled.
FXToolBarShell * myToolBarDrag1
for some menu detaching fun
long onCmdEditViewScheme(FXObject *, FXSelector, void *)
Called on menu Edit->Visualization.
long onRunThreadEvent(FXObject *, FXSelector, void *)
Called on an event from the simulation thread.
MFXLCDLabel * myTotalDistanceLabel
total distance label
bool hadDependentBuild
flag to mark if GUIApplicationWIndow has depend build
SUMOTime myEmergencyVehicleCount
emergency vehicle count
FXMenuPane * myFileMenuRecentNetworks
FXMenu pane for recent networks.
FXCursor * getDefaultCursor()
get default cursor
SUMOTime myTimeLoss
time loss
void checkGamingEventsDRT()
handles additional game-related events (DRT)
FXMDIMenu * myMDIMenu
The menu used for the MDI-windows.
void updateTimeLCDTooltip()
update LCD timer tooltip
long onCmdListTeleporting(FXObject *, FXSelector, void *)
Toggle listing of teleporting vehicles.
long onCmdNewWindow(FXObject *, FXSelector, void *)
Called on menu File->New Window.
long onCmdStep(FXObject *, FXSelector, void *)
Called on "step".
FXMutex myEventMutex
the mutex for the waiting semaphore
double getTrackerInterval() const
get tracker interval
long onCmdClose(FXObject *, FXSelector, void *)
Called on menu File->Close.
virtual void buildToolBars()
Builds the tool bar.
long onCmdDelayToggle(FXObject *, FXSelector, void *)
Called on "delay toggle".
FXMenuCheck * myLoadAdditionalsInNetedit
menuCheck for enable/disable load additionals in netedit
GUIApplicationWindow(const GUIApplicationWindow &s)=delete
invalidate copy constructor
void buildRecentNetworks(FXMenuPane *fileMenu, FXMenuPane *fileMenuRecentNetworks)
build recent networks
FXMenuPane * myFileMenu
the submenus
long onCmdToggleSecondaryShape(FXObject *, FXSelector, void *)
Toggle draw junction shape.
virtual double getDelay() const
Returns the simulation delay in miliseconds.
long onCmdStart(FXObject *, FXSelector, void *)
Called on "play".
GUIMessageWindow * myMessageWindow
A window to display messages, warnings and error in.
GUIRunThread * getRunner()
get run thread
void loadConfigOrNet(const std::string &file)
starts to load a simulation
FXToolBar * myToolBar1
The application tool bar.
bool myWasStarted
the information whether the simulation was started before
std::string myName
the name of the simulation
FXSplitter * myMainSplitter
The splitter that divides the main window into views and the log window.
long onCmdListParking(FXObject *, FXSelector, void *)
Toggle listing of parking vehicles.
long onUpdNeedsSumoConfig(FXObject *, FXSelector, void *)
Determines whether some buttons which require an sumoConfig may be shown.
void loadOnStartup(const bool wait=false)
config or net on startup
void addBreakpoint(SUMOTime time)
Adds the given breakpoint.
long onCmdListInternal(FXObject *, FXSelector, void *)
Toggle listing of internal structures.
bool myTLSGame
flag for enable TLS gameMode
FXEX::MFXThreadEvent myRunThreadEvent
io-event with the run-thread
void dependentBuild(const bool isLibsumo)
build dependt
long onCmdFullScreen(FXObject *, FXSelector, void *)
Toggle full screen mode.
long onCmdEditBreakpoints(FXObject *, FXSelector, void *)
Called on menu Edit->Edit Breakpoints.
long onCmdOpenShapes(FXObject *, FXSelector, void *)
Called on menu File->Load Shapes.
FXToolBarShell * myMenuBarDrag
const std::vector< SUMOTime > retrieveBreakpoints() const
retrieve list of breakpoints
long onCmdQuit(FXObject *, FXSelector, void *)
Called by FOX if the application shall be closed (Called either by FileMenu->Quit,...
FXToolBarShell * myToolBarDrag8
long onUpdStart(FXObject *sender, FXSelector, void *ptr)
Determines whether "play" is enabled.
GUISUMOAbstractView * openNewView(GUISUMOViewParent::ViewType vt=GUISUMOViewParent::VIEW_2D_OPENGL, std::string caption="")
opens a new simulation display
FXGLCanvas * getBuildGLCanvas() const
get build GLCanvas
RandomDistributor< std::string > myJamSounds
random list of jam sounds
long onCmdNewView(FXObject *, FXSelector, void *)
Called if a new view shall be opened (2D view)
GUIRunThread * myRunThread
the thread that runs simulations
long onCmdClearMsgWindow(FXObject *, FXSelector, void *)
Called if the message window shall be cleared.
long onCmdToggleDrawJunctionShape(FXObject *, FXSelector, void *)
Toggle draw junction shape.
virtual void create()
Creates the main window (required by FOX)
std::map< int, Command * > myHotkeyPress
custom hotkeys pressed
FXToolBarShell * myToolBarDrag5
MFXLCDLabel * myWaitingTimeLabel
waiting time label
long onCmdDemandScale(FXObject *, FXSelector, void *)
Called on "demand scale".
long onKeyRelease(FXObject *o, FXSelector sel, void *data)
called when a key is released
RandomDistributor< std::string > myCollisionSounds
random list of collision sounds
FXMenuCascade * mySelectLanesMenuCascade
the menu cascades
long onCmdOpenNetwork(FXObject *, FXSelector, void *)
Called on menu File->Open Network.
virtual void setBreakpoints(const std::vector< SUMOTime > &breakpoints)
Sets the breakpoints of the parent application.
long onUpdNeedsNetwork(FXObject *, FXSelector, void *)
Determines whether some buttons which require an active network may be shown.
long onCmdLoadState(FXObject *, FXSelector, void *)
Called on "save state".
void eraseBreakpointDialog()
erase current breakpoint dialog
int myPreviousCollisionNumber
previous collision number
long onCmdEditChosen(FXObject *, FXSelector, void *)
Called on menu Edit->Edit Chosen.
virtual void detach()
Detaches the tool/menu bar.
long onCmdDelayDec(FXObject *, FXSelector, void *)
Called on "delay dec".
long onCmdOpenRecent(FXObject *, FXSelector, void *)
Called on opening a recent file.
MFXRecentNetworks myRecentConfigs
List of recent configs.
long onUpdOpenRecent(FXObject *, FXSelector, void *)
Determines whether opening a recent file is enabled.
MFXSynchQue< GUIEvent * > myEvents
List of got requests.
bool myShowTimeAsHMS
whether to show time as hour:minute:second
double myAlternateSimDelay
The alternate simulation delay in milliseconds for toggling.
long onUpdStop(FXObject *, FXSelector, void *)
Determines whether "stop" is enabled.
FXDataTarget * mySimDelayTarget
Simulation delay target.
long onCmdSaveConfig(FXObject *, FXSelector, void *)
Called on menu File->Close.
void closeAllWindows()
this method closes all windows and deletes the current simulation
void updateTimeLCD(SUMOTime time)
updates the simulation time display
long onCmdSaveState(FXObject *, FXSelector, void *)
Called on "save state".
std::map< int, Command * > myHotkeyRelease
custom hotkeys released
FXToolBarShell * myToolBarDrag3
long onLoadThreadEvent(FXObject *, FXSelector, void *)
Called on an event from the loading thread.
long onCmdReload(FXObject *, FXSelector, void *)
Called on reload.
void addRecentNetwork(const FX::FXString &f)
add recent network to recent file list
void buildRecentConfigs(FXMenuPane *fileMenu, FXMenuPane *fileMenuRecentConfigs)
build recent configs
long onUpdOpen(FXObject *, FXSelector, void *)
Determines whether opening is enabled.
long onCmdHallOfFame(FXObject *, FXSelector, void *)
Shows the Hall of Fame dialog.
double myTotalDistance
total distance
long onCmdLocate(FXObject *, FXSelector, void *)
Called on menu commands from the Locator menu.
FXToolBar * myToolBar6
toolbars used in game
FXToolBarShell * myToolBarDrag6
toolbars shell used in game
long long myGuiSettingsFileMTime
last modification time of the gui setting file
FXSlider * mySimDelaySlider
Simulation delay slider.
long onCmdOpenConfiguration(FXObject *, FXSelector, void *)
Called on menu File->Open Configuration.
long onCmdOpenEdgeData(FXObject *, FXSelector, void *)
Called on menu File->Load EdgeData.
FXMenuCheck * myLoadDemandInNetedit
menuCheck for enable/disable load demand elements in netedit
virtual void addToWindowsMenu(FXMenuPane *menuPane)
FOX need this.
FXCondition myEventCondition
the semaphore when waiting for event completion
long onCmdEditViewport(FXObject *, FXSelector, void *)
Called on menu Edit->Viewport.
MFXLCDLabel * myLCDLabel
the simulation step display
FXMenuBar * myMenuBar
The application menu bar.
static std::mt19937 myGamingRNG
A random number generator used to choose a gaming sound.
long onCmdHotkeys(FXObject *sender, FXSelector sel, void *ptr)
called if the user selects help->Hotkeys
long myLastStepEventMillis
last time the simulation view was redrawn due to a simStep
virtual ~GUIApplicationWindow()
Destructor.
long onCmdHelp(FXObject *sender, FXSelector sel, void *ptr)
called if the user selects help->Documentation
void addHotkey(int key, Command *press, Command *release)
register custom hotkey action
virtual void fillMenuBar()
Builds the menu bar.
bool myIsReload
whether we are reloading the simulation
std::vector< FXButton * > myStatButtons
Buttons showing and running values and triggering statistic windows.
virtual void eventOccurred()
a certain event ocurred
void checkGamingEvents()
handles additional game-related events
long onCmdQuickReload(FXObject *, FXSelector, void *)
Called on quick-reload.
FXMenuCommand * myOpenInNetedit
menuCommand for open simulation/network in netedit
long onCmdGaming(FXObject *, FXSelector, void *)
Toggle gaming mode.
Editor for simulation breakpoints.
A logging window for the gui.
A window containing a gl-object's parameter.
A window which displays the time line of one (or more) value(s)
ViewType
Available view types.
@ VIEW_2D_OPENGL
plain 2D openGL view (
A widget which has the seven-segment display used as the drawing object for each letter in the label....
Definition MFXLCDLabel.h:34
MFXRecentNetworks.
Represents a generic random distribution.