Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
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-2026 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;
48
49
50// ===========================================================================
51// class definition
52// ===========================================================================
62 // FOX-declarations
63 FXDECLARE(GUIApplicationWindow)
64
65public:
67 GUIApplicationWindow(FXApp* a);
68
70 virtual ~GUIApplicationWindow();
71
74
76 virtual void create();
77
79 virtual void detach();
80
82
84 void loadOnStartup(const bool wait = false);
85
88
90 void dependentBuild(const bool isLibsumo);
91
93 void setStatusBarText(const std::string& text);
94
96 void addRecentNetwork(const FX::FXString& f);
97
99 void addRecentConfig(const FX::FXString& f);
100
102 FXGLCanvas* getBuildGLCanvas() const;
103
106
108 double getTrackerInterval() const;
109
111 FXCursor* getDefaultCursor();
112
115
117 virtual void eventOccurred();
118
121
124
127
130
132
135
137 long onCmdNewWindow(FXObject*, FXSelector, void*);
138
140 long onCmdOpenConfiguration(FXObject*, FXSelector, void*);
141
143 long onCmdOpenNetwork(FXObject*, FXSelector, void*);
144
146 long onCmdOpenShapes(FXObject*, FXSelector, void*);
147
149 long onCmdOpenEdgeData(FXObject*, FXSelector, void*);
150
152 long onCmdReload(FXObject*, FXSelector, void*);
153
155 long onCmdQuickReload(FXObject*, FXSelector, void*);
156
158 long onCmdOpenRecent(FXObject*, FXSelector, void*);
159
161 long onCmdSaveConfig(FXObject*, FXSelector, void*);
162
164 long onCmdClose(FXObject*, FXSelector, void*);
165
167 long onCmdQuit(FXObject*, FXSelector, void*);
168
170 long onCmdEditChosen(FXObject*, FXSelector, void*);
171
173 long onCmdEditBreakpoints(FXObject*, FXSelector, void*);
174
176 long onCmdEditViewScheme(FXObject*, FXSelector, void*);
177
179 long onCmdEditViewport(FXObject*, FXSelector, void*);
180
182 long onCmdHelp(FXObject* sender, FXSelector sel, void* ptr);
183
185 long onCmdChangelog(FXObject* sender, FXSelector sel, void* ptr);
186
188 long onCmdHotkeys(FXObject* sender, FXSelector sel, void* ptr);
189
191 long onCmdTutorial(FXObject* sender, FXSelector sel, void* ptr);
192
194 long onCmdOpenInNetedit(FXObject*, FXSelector, void*);
195
197 long onCmdAppSettings(FXObject*, FXSelector, void*);
198
200 long onCmdGaming(FXObject*, FXSelector, void*);
201
203 long onCmdToggleDrawJunctionShape(FXObject*, FXSelector, void*);
204
206 long onCmdToggleSecondaryShape(FXObject*, FXSelector, void*);
207
209 long onCmdFullScreen(FXObject*, FXSelector, void*);
210
212 long onCmdListInternal(FXObject*, FXSelector, void*);
213
215 long onCmdListParking(FXObject*, FXSelector, void*);
216
218 long onCmdListTeleporting(FXObject*, FXSelector, void*);
219
221 long onCmdFeedback(FXObject*, FXSelector, void*);
222
224 long onCmdAbout(FXObject*, FXSelector, void*);
225
227 long onCmdHallOfFame(FXObject*, FXSelector, void*);
228
230 long onCmdStart(FXObject*, FXSelector, void*);
231
233 long onCmdStop(FXObject*, FXSelector, void*);
234
236 long onCmdStep(FXObject*, FXSelector, void*);
237
239 long onCmdSaveState(FXObject*, FXSelector, void*);
240
242 long onCmdLoadState(FXObject*, FXSelector, void*);
243
245 long onCmdTimeToggle(FXObject*, FXSelector, void*);
246
248 long onCmdDelayInc(FXObject*, FXSelector, void*);
249
251 long onCmdDelayDec(FXObject*, FXSelector, void*);
252
254 long onCmdDelayToggle(FXObject*, FXSelector, void*);
255
257 long onCmdDemandScale(FXObject*, FXSelector, void*);
258
260 long onCmdNewView(FXObject*, FXSelector, void*);
261
262#ifdef HAVE_OSG
264 long onCmdNewOSG(FXObject*, FXSelector, void*);
265#endif
266
268 long onCmdShowToolTipsView(FXObject*, FXSelector, void*);
269
271 long onCmdShowToolTipsMenu(FXObject*, FXSelector, void*);
272
277
282
284 long onUpdOpen(FXObject*, FXSelector, void*);
285
287 long onUpdReload(FXObject*, FXSelector, void*);
288
290 long onUpdOpenRecent(FXObject*, FXSelector, void*);
291
293 long onUpdAddView(FXObject*, FXSelector, void*);
294
296 long onUpdStart(FXObject* sender, FXSelector, void* ptr);
297
299 long onUpdStop(FXObject*, FXSelector, void*);
300
302 long onUpdStep(FXObject*, FXSelector, void*);
303
305 long onUpdNeedsNetwork(FXObject*, FXSelector, void*);
306
308 long onUpdNeedsSumoConfig(FXObject*, FXSelector, void*);
309
311 long onUpdTraCIStatus(FXObject*, FXSelector, void*);
312
314 long onCmdClearMsgWindow(FXObject*, FXSelector, void*);
315
317 long onCmdBreakpoint(FXObject*, FXSelector, void*);
318
320 long onCmdBreakpointEarly(FXObject*, FXSelector, void*);
321
323 long onCmdLocate(FXObject*, FXSelector, void*);
324
326 long onCmdShowStats(FXObject*, FXSelector, void*);
327
329 long onLoadThreadEvent(FXObject*, FXSelector, void*);
330
332 long onRunThreadEvent(FXObject*, FXSelector, void*);
333
335 long onClipboardRequest(FXObject* sender, FXSelector sel, void* ptr);
336
338 long onKeyPress(FXObject* o, FXSelector sel, void* data);
339
341 long onKeyRelease(FXObject* o, FXSelector sel, void* data);
342
344
346 virtual double getDelay() const;
347
349 virtual void setDelay(double delay);
350
352 virtual void setBreakpoints(const std::vector<SUMOTime>& breakpoints);
353
355 void addBreakpoint(SUMOTime time);
356
358 virtual void sendBlockingEvent(GUIEvent* event);
359
361 const std::vector<SUMOTime> retrieveBreakpoints() const;
362
365
367 void addHotkey(int key, Command* press, Command* release);
368
369protected:
371 FOX_CONSTRUCTOR(GUIApplicationWindow)
372
373
374 virtual void addToWindowsMenu(FXMenuPane* menuPane);
375
377 virtual void fillMenuBar();
378
380 virtual void buildToolBars();
381
383 void buildRecentNetworks(FXMenuPane* fileMenu, FXMenuPane* fileMenuRecentNetworks);
384
386 void buildRecentConfigs(FXMenuPane* fileMenu, FXMenuPane* fileMenuRecentConfigs);
387
389 std::string myName;
390
393
396
398 bool myWasStarted = false;
399
402
404 bool myAmLoading = false;
405
407 bool myIsReload = false;
408
411
413 FXMenuPane* myFileMenu = nullptr,
414 *myEditMenu = nullptr,
416 *mySettingsMenu = nullptr,
417 *myLocatorMenu = nullptr,
418 *myControlMenu = nullptr,
419 *myWindowMenu = nullptr,
420 *myHelpMenu = nullptr;
421
423 FXMenuPane* myFileMenuRecentNetworks = nullptr;
424
426 FXMenuPane* myFileMenuRecentConfigs = nullptr;
427
429 FXMenuCascade* mySelectLanesMenuCascade = nullptr;
430
432 FXMenuCheck* myLoadAdditionalsInNetedit = nullptr;
433
435 FXMenuCheck* myLoadDemandInNetedit = nullptr;
436
438 FXMenuCommand* myOpenInNetedit = nullptr;
440 FXMenuCommand* myOpenNetInNetedit = nullptr;
441
443 std::vector<FXButton*> myStatButtons;
444
447
449 FXSplitter* myMainSplitter = nullptr;
450
452 FXToolBarShell* myToolBarDrag1 = nullptr,
453 *myToolBarDrag2 = nullptr,
454 *myToolBarDrag3 = nullptr,
455 *myToolBarDrag4 = nullptr,
456 *myToolBarDrag5 = nullptr,
457 *myMenuBarDrag = nullptr,
458 *myToolBarDrag8 = nullptr;
459
461 double mySimDelay = 0.;
462
464 FXDataTarget* mySimDelayTarget = nullptr;
465
467 FXRealSpinner* mySimDelaySpinner = nullptr;
468
470 FXSlider* mySimDelaySlider = nullptr;
471
474
476 FXRealSpinner* myDemandScaleSpinner = nullptr;
477
480
483
486
489
491 FXMDIMenu* myMDIMenu = nullptr;
492
494 FXMenuBar* myMenuBar = nullptr;
495
497 FXToolBar* myToolBar1 = nullptr,
498 *myToolBar2 = nullptr,
499 *myToolBar3 = nullptr,
500 *myToolBar4 = nullptr,
501 *myToolBar5 = nullptr,
502 *myToolBar8 = nullptr;
503
506
509
512
515
518
520 bool hadDependentBuild = false;
521
523 bool myShowTimeAsHMS = false;
524
527
530
532 FXCondition myEventCondition;
533
536
539
542
545
547 double myJamSoundTime = 60;
548
550 static std::mt19937 myGamingRNG;
551
554
556 bool myTLSGame = false;
557
560
563
566
569
572
574 double myTotalDistance = 0;
575
578
581
583 FXToolBar* myToolBar6 = nullptr,
584 *myToolBar7 = nullptr,
585 *myToolBar9 = nullptr,
586 *myToolBar10 = nullptr;
587
589 FXToolBarShell* myToolBarDrag6 = nullptr,
590 *myToolBarDrag7 = nullptr,
591 *myToolBarDrag9 = nullptr,
592 *myToolBarDrag10 = nullptr;
594
597
599 std::map<int, Command*> myHotkeyPress;
600
602 std::map<int, Command*> myHotkeyRelease;
603
606
607 std::stringstream* myDynamicSelection = nullptr;
608
609private:
611 void loadConfigOrNet(const std::string& file);
612
614 void closeAllWindows();
615
617 void updateTimeLCD(SUMOTime time);
618
621
624
626 void checkGamingEvents();
627
630
633
636};
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
MFXCheckableButton * myShowToolTipsView
checkable button for show tool tips in view
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
long onCmdShowToolTipsMenu(FXObject *, FXSelector, void *)
Called on "show tool tips in menu".
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
MFXCheckableButton * myShowToolTipsMenu
checkable button for show tool tips in menu
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)
FXMenuCommand * myOpenNetInNetedit
menuCommand for opening only the network in netedit
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
long onCmdShowToolTipsView(FXObject *, FXSelector, void *)
Called on "show tool tips in view".
FXToolBarShell * myToolBarDrag3
MFXCheckableButton * getShowToolTipsView() const
get checkable button for view tooltips
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
MFXCheckableButton * getShowToolTipsMenu() const
get checkable button for menu tooltips
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 opening 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 (
MFXRecentNetworks.
Represents a generic random distribution.