Eclipse SUMO - Simulation of Urban MObility
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-2024 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 
37 class Command;
38 class GUILoadThread;
39 class GUIRunThread;
40 class GUIMessageWindow;
41 class GUIEvent;
45 class MFXLCDLabel;
46 class MFXLabelTooltip;
47 
48 
49 // ===========================================================================
50 // class definition
51 // ===========================================================================
61  // FOX-declarations
62  FXDECLARE(GUIApplicationWindow)
63 
64 public:
69  GUIApplicationWindow(FXApp* a, const std::string& configPattern);
70 
72  virtual ~GUIApplicationWindow();
73 
76 
78  virtual void create();
79 
81  virtual void detach();
82 
84 
86  void loadOnStartup(const bool wait = false);
87 
90 
92  void dependentBuild(const bool isLibsumo);
93 
95  void setStatusBarText(const std::string& text);
96 
98  void addRecentNetwork(const FX::FXString& f);
99 
101  void addRecentConfig(const FX::FXString& f);
102 
104  FXGLCanvas* getBuildGLCanvas() const;
105 
107  SUMOTime getCurrentSimTime() const;
108 
110  double getTrackerInterval() const;
111 
113  FXCursor* getDefaultCursor();
114 
117 
119  virtual void eventOccurred();
120 
123 
126 
128  void handleEvent_Message(GUIEvent* e);
129 
132 
134 
137 
139  long onCmdNewWindow(FXObject*, FXSelector, void*);
140 
142  long onCmdOpenConfiguration(FXObject*, FXSelector, void*);
143 
145  long onCmdOpenNetwork(FXObject*, FXSelector, void*);
146 
148  long onCmdOpenShapes(FXObject*, FXSelector, void*);
149 
151  long onCmdOpenEdgeData(FXObject*, FXSelector, void*);
152 
154  long onCmdReload(FXObject*, FXSelector, void*);
155 
157  long onCmdQuickReload(FXObject*, FXSelector, void*);
158 
160  long onCmdOpenRecent(FXObject*, FXSelector, void*);
161 
163  long onCmdSaveConfig(FXObject*, FXSelector, void*);
164 
166  long onCmdClose(FXObject*, FXSelector, void*);
167 
169  long onCmdQuit(FXObject*, FXSelector, void*);
170 
172  long onCmdEditChosen(FXObject*, FXSelector, void*);
173 
175  long onCmdEditBreakpoints(FXObject*, FXSelector, void*);
176 
178  long onCmdEditViewScheme(FXObject*, FXSelector, void*);
179 
181  long onCmdEditViewport(FXObject*, FXSelector, void*);
182 
184  long onCmdHelp(FXObject* sender, FXSelector sel, void* ptr);
185 
187  long onCmdChangelog(FXObject* sender, FXSelector sel, void* ptr);
188 
190  long onCmdHotkeys(FXObject* sender, FXSelector sel, void* ptr);
191 
193  long onCmdTutorial(FXObject* sender, FXSelector sel, void* ptr);
194 
196  long onCmdOpenInNetedit(FXObject*, FXSelector, void*);
197 
199  long onCmdAppSettings(FXObject*, FXSelector, void*);
200 
202  long onCmdGaming(FXObject*, FXSelector, void*);
203 
205  long onCmdToggleDrawJunctionShape(FXObject*, FXSelector, void*);
206 
208  long onCmdToggleSecondaryShape(FXObject*, FXSelector, void*);
209 
211  long onCmdFullScreen(FXObject*, FXSelector, void*);
212 
214  long onCmdListInternal(FXObject*, FXSelector, void*);
215 
217  long onCmdListParking(FXObject*, FXSelector, void*);
218 
220  long onCmdListTeleporting(FXObject*, FXSelector, void*);
221 
223  long onCmdFeedback(FXObject*, FXSelector, void*);
224 
226  long onCmdAbout(FXObject*, FXSelector, void*);
227 
229  long onCmdHallOfFame(FXObject*, FXSelector, void*);
230 
232  long onCmdStart(FXObject*, FXSelector, void*);
233 
235  long onCmdStop(FXObject*, FXSelector, void*);
236 
238  long onCmdStep(FXObject*, FXSelector, void*);
239 
241  long onCmdSaveState(FXObject*, FXSelector, void*);
242 
244  long onCmdLoadState(FXObject*, FXSelector, void*);
245 
247  long onCmdTimeToggle(FXObject*, FXSelector, void*);
248 
250  long onCmdDelayInc(FXObject*, FXSelector, void*);
251 
253  long onCmdDelayDec(FXObject*, FXSelector, void*);
254 
256  long onCmdDelayToggle(FXObject*, FXSelector, void*);
257 
259  long onCmdDemandScale(FXObject*, FXSelector, void*);
260 
262  long onCmdNewView(FXObject*, FXSelector, void*);
263 
264 #ifdef HAVE_OSG
266  long onCmdNewOSG(FXObject*, FXSelector, void*);
267 #endif
268 
270  long onUpdOpen(FXObject*, FXSelector, void*);
271 
273  long onUpdReload(FXObject*, FXSelector, void*);
274 
276  long onUpdOpenRecent(FXObject*, FXSelector, void*);
277 
279  long onUpdAddView(FXObject*, FXSelector, void*);
280 
282  long onUpdStart(FXObject* sender, FXSelector, void* ptr);
283 
285  long onUpdStop(FXObject*, FXSelector, void*);
286 
288  long onUpdStep(FXObject*, FXSelector, void*);
289 
291  long onUpdNeedsNetwork(FXObject*, FXSelector, void*);
292 
294  long onUpdNeedsSumoConfig(FXObject*, FXSelector, void*);
295 
297  long onUpdTraCIStatus(FXObject*, FXSelector, void*);
298 
300  long onCmdClearMsgWindow(FXObject*, FXSelector, void*);
301 
303  long onCmdBreakpoint(FXObject*, FXSelector, void*);
304 
306  long onCmdBreakpointEarly(FXObject*, FXSelector, void*);
307 
309  long onCmdLocate(FXObject*, FXSelector, void*);
310 
312  long onCmdShowStats(FXObject*, FXSelector, void*);
313 
315  long onLoadThreadEvent(FXObject*, FXSelector, void*);
316 
318  long onRunThreadEvent(FXObject*, FXSelector, void*);
319 
321  long onClipboardRequest(FXObject* sender, FXSelector sel, void* ptr);
322 
324  long onKeyPress(FXObject* o, FXSelector sel, void* data);
325 
327  long onKeyRelease(FXObject* o, FXSelector sel, void* data);
328 
330 
332  virtual double getDelay() const;
333 
335  virtual void setDelay(double delay);
336 
338  virtual void setBreakpoints(const std::vector<SUMOTime>& breakpoints);
339 
341  void addBreakpoint(SUMOTime time);
342 
344  virtual void sendBlockingEvent(GUIEvent* event);
345 
347  const std::vector<SUMOTime> retrieveBreakpoints() const;
348 
350  void eraseBreakpointDialog();
351 
353  void addHotkey(int key, Command* press, Command* release);
354 
355 protected:
357  FOX_CONSTRUCTOR(GUIApplicationWindow)
358 
359 
360  virtual void addToWindowsMenu(FXMenuPane* menuPane);
361 
363  virtual void fillMenuBar();
364 
366  virtual void buildToolBars();
367 
369  void buildRecentNetworks(FXMenuPane* fileMenu, FXMenuPane* fileMenuRecentNetworks);
370 
372  void buildRecentConfigs(FXMenuPane* fileMenu, FXMenuPane* fileMenuRecentConfigs);
373 
375  std::string myName;
376 
379 
382 
384  bool myWasStarted = false;
385 
388 
390  bool myAmLoading = false;
391 
393  bool myIsReload = false;
394 
396  long long myGuiSettingsFileMTime = -2;
397 
399  FXMenuPane* myFileMenu = nullptr,
400  *myEditMenu = nullptr,
402  *mySettingsMenu = nullptr,
403  *myLocatorMenu = nullptr,
404  *myControlMenu = nullptr,
405  *myWindowMenu = nullptr,
406  *myHelpMenu = nullptr;
407 
409  FXMenuPane* myFileMenuRecentNetworks = nullptr;
410 
412  FXMenuPane* myFileMenuRecentConfigs = nullptr;
413 
415  FXMenuCascade* mySelectLanesMenuCascade = nullptr;
416 
418  FXMenuCheck* myLoadAdditionalsInNetedit = nullptr;
419 
421  FXMenuCheck* myLoadDemandInNetedit = nullptr;
422 
424  FXMenuCommand* myOpenInNetedit = nullptr;
425 
427  std::vector<FXButton*> myStatButtons;
428 
431 
433  FXSplitter* myMainSplitter = nullptr;
434 
436  FXToolBarShell* myToolBarDrag1 = nullptr,
437  *myToolBarDrag2 = nullptr,
438  *myToolBarDrag3 = nullptr,
439  *myToolBarDrag4 = nullptr,
440  *myToolBarDrag5 = nullptr,
441  *myMenuBarDrag = nullptr,
442  *myToolBarDrag8 = nullptr;
443 
445  double mySimDelay = 0.;
446 
448  FXDataTarget* mySimDelayTarget = nullptr;
449 
451  FXRealSpinner* mySimDelaySpinner = nullptr;
452 
454  FXSlider* mySimDelaySlider = nullptr;
455 
458 
460  FXRealSpinner* myDemandScaleSpinner = nullptr;
461 
464 
467 
469  FXMDIMenu* myMDIMenu = nullptr;
470 
472  FXMenuBar* myMenuBar = nullptr;
473 
475  FXToolBar* myToolBar1 = nullptr,
476  *myToolBar2 = nullptr,
477  *myToolBar3 = nullptr,
478  *myToolBar4 = nullptr,
479  *myToolBar5 = nullptr,
480  *myToolBar8 = nullptr;
481 
484 
487 
490 
493 
496 
498  std::string myConfigPattern;
499 
501  bool hadDependentBuild = false;
502 
504  bool myShowTimeAsHMS = false;
505 
508 
510  FXMutex myEventMutex;
511 
513  FXCondition myEventCondition;
514 
516  FXMenuCheck* myGamingModeCheckbox;
517 
520 
523 
526 
528  double myJamSoundTime = 60;
529 
531  static std::mt19937 myGamingRNG;
532 
535 
537  bool myTLSGame = false;
538 
541 
544 
547 
550 
553 
555  double myTotalDistance = 0;
556 
559 
562 
564  FXToolBar* myToolBar6 = nullptr,
565  *myToolBar7 = nullptr,
566  *myToolBar9 = nullptr,
567  *myToolBar10 = nullptr;
568 
570  FXToolBarShell* myToolBarDrag6 = nullptr,
571  *myToolBarDrag7 = nullptr,
572  *myToolBarDrag9 = nullptr,
573  *myToolBarDrag10 = nullptr;
575 
578 
580  std::map<int, Command*> myHotkeyPress;
581 
583  std::map<int, Command*> myHotkeyRelease;
584 
587 
588 private:
590  void loadConfigOrNet(const std::string& file);
591 
593  void closeAllWindows();
594 
596  void updateTimeLCD(SUMOTime time);
597 
599  void updateTimeLCDTooltip();
600 
603 
605  void checkGamingEvents();
606 
608  void checkGamingEventsDRT();
609 
612 
615 };
long long int SUMOTime
Definition: GUI.h:35
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
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
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
GUIApplicationWindow & operator=(const GUIApplicationWindow &s)=delete
invalidate assignment operator
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
FXMenuPane * mySelectByPermissions
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.
GUIApplicationWindow(FXApp *a, const std::string &configPattern)
Constructor.
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.
std::string myConfigPattern
Input file pattern.
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.