SUMO - Simulation of Urban MObility
GNEApplicationWindow.h
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3 // Copyright (C) 2001-2018 German Aerospace Center (DLR) and others.
4 // This program and the accompanying materials
5 // are made available under the terms of the Eclipse Public License v2.0
6 // which accompanies this distribution, and is available at
7 // http://www.eclipse.org/legal/epl-v20.html
8 // SPDX-License-Identifier: EPL-2.0
9 /****************************************************************************/
15 // The main window of Netedit (adapted from GUIApplicationWindow)
16 /****************************************************************************/
17 #ifndef GNEApplicationWindow_h
18 #define GNEApplicationWindow_h
19 
20 
21 // ===========================================================================
22 // included modules
23 // ===========================================================================
24 #include <config.h>
25 
26 #include <utils/common/SUMOTime.h>
30 #include <utils/geom/Position.h>
34 
35 
36 // ===========================================================================
37 // class declarations
38 // ===========================================================================
39 class GNELoadThread;
40 class GNEUndoList;
41 class GNENet;
42 class GNEViewNet;
43 class GUIEvent;
44 
45 
46 // ===========================================================================
47 // class definition
48 // ===========================================================================
61  FXDECLARE(GNEApplicationWindow)
62 
63 public:
70  class GNEShapeHandler : public ShapeHandler {
71  public:
76  GNEShapeHandler(const std::string& file, GNENet* net);
77 
80 
86  Position getLanePos(const std::string& poiID, const std::string& laneID, double lanePos, double lanePosLat);
87 
88  private:
91  };
92 
93 
98  GNEApplicationWindow(FXApp* a, const std::string& configPattern);
99 
101  virtual ~GNEApplicationWindow();
102 
104  virtual void create();
105 
107  virtual void detach();
108 
110  void loadOptionOnStartup();
111 
113  void dependentBuild();
114 
116  void setStatusBarText(const std::string& statusBarText);
117 
119  void setAdditionalsFile(const std::string& additionalsFile);
120 
122  void setShapesFile(const std::string& shapesFile);
123 
125  void setTLSProgramsFile(const std::string& TLSProgramsFile);
126 
129 
132 
134  void enableSaveShapesMenu();
135 
137  void disableSaveShapesMenu();
138 
141 
145  virtual void eventOccurred();
146 
149 
151  void handleEvent_Message(GUIEvent* e);
153 
157  long onCmdNewNetwork(FXObject*, FXSelector, void*);
158 
160  long onCmdOpenConfiguration(FXObject*, FXSelector, void*);
161 
163  long onCmdOpenNetwork(FXObject*, FXSelector, void*);
164 
166  long onCmdOpenForeign(FXObject*, FXSelector, void*);
167 
169  long onCmdOpenShapes(FXObject*, FXSelector, void*);
170 
172  long onCmdOpenAdditionals(FXObject*, FXSelector, void*);
173 
175  long onCmdOpenTLSPrograms(FXObject*, FXSelector, void*);
176 
178  long onCmdReload(FXObject*, FXSelector, void*);
179 
181  long onCmdOpenRecent(FXObject*, FXSelector, void*);
182 
184  long onCmdClose(FXObject*, FXSelector, void*);
185 
187  long onCmdEditViewScheme(FXObject*, FXSelector, void*);
188 
190  long onCmdEditViewport(FXObject*, FXSelector, void*);
191 
193  long onCmdLocate(FXObject*, FXSelector, void*);
194 
196  long onCmdSaveNetwork(FXObject*, FXSelector, void*);
197 
199  long onCmdSaveAdditionals(FXObject*, FXSelector, void*);
200 
202  long onCmdSaveAdditionalsAs(FXObject*, FXSelector, void*);
203 
205  long onCmdSaveTLSPrograms(FXObject*, FXSelector, void*);
206 
208  long onCmdSaveTLSProgramsAs(FXObject*, FXSelector, void*);
209 
211  long onUpdSaveNetwork(FXObject*, FXSelector, void*);
212 
214  long onCmdSaveAsNetwork(FXObject*, FXSelector, void*);
215 
217  long onUpdNeedsNetwork(FXObject*, FXSelector, void*);
218 
220  long onUpdReload(FXObject*, FXSelector, void*);
221 
223  long onCmdSaveAsPlainXML(FXObject*, FXSelector, void*);
224 
226  long onCmdSaveJoined(FXObject*, FXSelector, void*);
227 
229  long onCmdSaveShapes(FXObject*, FXSelector, void*);
230 
232  long onCmdSaveShapesAs(FXObject*, FXSelector, void*);
233 
235  long onKeyPress(FXObject* o, FXSelector sel, void* data);
236 
238  long onKeyRelease(FXObject* o, FXSelector sel, void* data);
239 
243  long onCmdQuit(FXObject*, FXSelector, void*);
244 
246  long onCmdEditChosen(FXObject*, FXSelector, void*);
247 
249  long onCmdAppSettings(FXObject*, FXSelector, void*);
250 
252  long onCmdGaming(FXObject*, FXSelector, void*);
253 
255  long onCmdAbout(FXObject*, FXSelector, void*);
256 
258  long onCmdNewView(FXObject*, FXSelector, void*);
259 
261  long onUpdOpen(FXObject*, FXSelector, void*);
262 
264  long onCmdClearMsgWindow(FXObject*, FXSelector, void*);
265 
267  long onLoadThreadEvent(FXObject*, FXSelector, void*);
268 
270  long onClipboardRequest(FXObject* sender, FXSelector sel, void* ptr);
271 
273  long onCmdSetMode(FXObject* sender, FXSelector sel, void* ptr);
274 
276  long onCmdOpenSUMOGUI(FXObject* sender, FXSelector sel, void* ptr);
277 
279  long onCmdAbort(FXObject* sender, FXSelector sel, void* ptr);
280 
282  long onCmdDel(FXObject* sender, FXSelector sel, void* ptr);
283 
285  long onCmdEnter(FXObject* sender, FXSelector sel, void* ptr);
286 
288  long onCmdFocusFrame(FXObject* sender, FXSelector sel, void* ptr);
289 
291  long onCmdToogleGrid(FXObject*, FXSelector, void*);
292 
294  long onCmdHelp(FXObject* sender, FXSelector sel, void* ptr);
295 
297  long onCmdComputeJunctions(FXObject*, FXSelector, void*);
298 
300  long onCmdComputeJunctionsVolatile(FXObject*, FXSelector, void*);
301 
303  long onCmdCleanJunctions(FXObject*, FXSelector, void*);
304 
306  long onCmdJoinJunctions(FXObject*, FXSelector, void*);
307 
309  long onCmdCleanInvalidCrossings(FXObject*, FXSelector, void*);
310 
312  long onCmdOptions(FXObject*, FXSelector, void*);
314 
316  FXGLCanvas* getBuildGLCanvas() const;
317 
319  SUMOTime getCurrentSimTime() const;
321  double getTrackerInterval() const;
322 
324  FXCursor* getDefaultCursor();
325 
328 
330  void updateControls();
331 
332 protected:
335 
337  virtual void fillMenuBar();
338 
340  std::string myName;
341 
344 
347 
350 
352  FXMenuPane* myFileMenu,
355  *myFileMenuTLS,
356  *myEditMenu,
358  *myLocatorMenu,
359  *myWindowsMenu,
360  *myHelpMenu;
361 
364 
366  FXSplitter* myMainSplitter;
367 
371  *myMenuBarDrag;
372 
375 
377  FXMDIMenu* myMDIMenu;
378 
380  FXMenuBar* myMenuBar;
381 
384 
387 
389  FXRecentFiles myRecentConfigs;
390 
392  FXRecentFiles myRecentNets;
393 
395  std::string myConfigPattern;
396 
399 
402 
405 
407  const FXString myTitlePrefix;
408 
410  std::string myAdditionalsFile;
411 
413  std::string myShapesFile;
414 
416  std::string myTLSProgramsFile;
417 
418 private:
421 
424 
426  FXMenuCommand* mySaveShapesMenuCommand;
427 
430 
433 
435  void loadConfigOrNet(const std::string file, bool isNet, bool isReload = false, bool useStartupOptions = false, bool newNet = false);
436 
438  void closeAllWindows();
439 
442 
444  GNEViewNet* getView();
445 
448 
451 
454 };
455 
456 
457 #endif
458 
459 /****************************************************************************/
460 
std::string myConfigPattern
Input file pattern.
void enableSaveTLSProgramsMenu()
enable save TLS Programs
FXToolBarShell * myToolBarDrag5
FXMenuBar * myMenuBar
The application menu bar.
FXMenuCommand * mySaveShapesMenuCommand
FXMenuCommand for enable or disable save shapes.
bool myAmLoading
information whether the gui is currently loading and the load-options shall be greyed out ...
SUMOTime getCurrentSimTime() const
get current simulation time (pure virtual but we don&#39;t need it)
void enableSaveAdditionalsMenu()
enable save additionals
long long int SUMOTime
Definition: SUMOTime.h:36
long onCmdNewNetwork(FXObject *, FXSelector, void *)
FXEX::FXThreadEvent myLoadThreadEvent
io-event with the load-thread
void setAdditionalsFile(const std::string &additionalsFile)
set additionals file
long onCmdToogleGrid(FXObject *, FXSelector, void *)
called if the user press key combination Ctrl + G to toogle grid
void setStatusBarText(const std::string &statusBarText)
set text of the statusBar
MFXEventQue< GUIEvent * > myEvents
List of got requests.
GNEUndoList * getUndoList()
get pointer to undoList
long onCmdReload(FXObject *, FXSelector, void *)
called when the command/FXCall reload is executed
void closeAllWindows()
this method closes all windows and deletes the current simulation */
FXRecentFiles myRecentConfigs
List of recent config files.
long onCmdSaveAdditionals(FXObject *, FXSelector, void *)
called when the command/FXCall save additionals is executed
FXMenuPane * myFileMenuAdditionals
GUIMessageWindow * myMessageWindow
A window to display messages, warnings and error in.
FXToolBarShell * myToolBarDrag2
void enableSaveShapesMenu()
enable save shapes
The main window of the Netedit.
std::string myShapesFile
filename for load/save shapes
long onCmdClearMsgWindow(FXObject *, FXSelector, void *)
called when the command/FXCall clear message windows is executed
virtual void create()
Creates the main window (required by FOX)
long onCmdJoinJunctions(FXObject *, FXSelector, void *)
called if the user selects Processing->join junctions
bool hadDependentBuild
check if had dependent build
long onCmdAppSettings(FXObject *, FXSelector, void *)
Opens the application settings menu.
long onCmdSaveTLSPrograms(FXObject *, FXSelector, void *)
called when the command/FXCall save TLSPrograms is executed
GNEUndoList * myUndoList
the one and only undo list
std::string myName
the name of the simulation
long onCmdComputeJunctions(FXObject *, FXSelector, void *)
called if the user selects Processing->compute junctions
long onCmdOpenSUMOGUI(FXObject *sender, FXSelector sel, void *ptr)
called if the user hints ctrl + T
long onCmdSetMode(FXObject *sender, FXSelector sel, void *ptr)
called if the user hits an edit-mode hotkey
void handleEvent_NetworkLoaded(GUIEvent *e)
handle event of type Network loaded
bool continueWithUnsavedAdditionalChanges()
warns about unsaved changes in additionals and gives the user the option to abort ...
void loadConfigOrNet(const std::string file, bool isNet, bool isReload=false, bool useStartupOptions=false, bool newNet=false)
starts to load a netimport configuration or a network */
long onKeyRelease(FXObject *o, FXSelector sel, void *data)
called when a key is released
bool continueWithUnsavedChanges()
warns about unsaved changes and gives the user the option to abort
long onCmdEditViewScheme(FXObject *, FXSelector, void *)
Called on menu Edit->Visualization.
long onCmdOpenForeign(FXObject *, FXSelector, void *)
called when the command/FXCall open foreign is executed
A NBNetBuilder extended by visualisation and editing capabilities.
Definition: GNENet.h:77
long onCmdSaveNetwork(FXObject *, FXSelector, void *)
called when the command/FXCall save network is executed
FXToolBarShell * myToolBarDrag4
long onCmdAbout(FXObject *, FXSelector, void *)
called when the command/FXCall show about dialog is executed
long onCmdSaveShapes(FXObject *, FXSelector, void *)
called when the command/FXCall save shapes is executed
long onUpdNeedsNetwork(FXObject *, FXSelector, void *)
called when the upadte/FXCall needs network is executed
long onCmdCleanInvalidCrossings(FXObject *, FXSelector, void *)
called if the user selects Processing->clear invalid crossings
long onLoadThreadEvent(FXObject *, FXSelector, void *)
called when the command/FXCall load thread is executed
FXMDIMenu * myMDIMenu
The menu used for the MDI-windows.
FXToolBarShell * myToolBarDrag3
std::string myTLSProgramsFile
filename for load/save TLS Programs
long onCmdEditChosen(FXObject *, FXSelector, void *)
called when the command/FXCall edit chosen is executed
void updateControls()
update control contents after undo/redo or recompute
GUISUMOAbstractView * openNewView()
opens a new simulation display
long onUpdReload(FXObject *, FXSelector, void *)
called when the update/FXCall reload is executed
long onCmdHelp(FXObject *sender, FXSelector sel, void *ptr)
called if the user selects help->Documentation
long onClipboardRequest(FXObject *sender, FXSelector sel, void *ptr)
called when the command/FXCall clipboard request is executed
The XML-Handler for network loading.
Definition: ShapeHandler.h:49
void disableSaveAdditionalsMenu()
disable save additionals
long onCmdSaveTLSProgramsAs(FXObject *, FXSelector, void *)
called when the command/FXCall save TLSPrograms as is executed
long onCmdSaveAdditionalsAs(FXObject *, FXSelector, void *)
called when the command/FXCall save additionals as is executed
long onCmdEditViewport(FXObject *, FXSelector, void *)
Called on menu Edit->Viewport.
long onCmdOptions(FXObject *, FXSelector, void *)
called if the user selects Processing->Configure Options
GNEApplicationWindow()
FOX needs this for static members.
long onCmdGaming(FXObject *, FXSelector, void *)
called when the command/FXCall toogle gaming mode is executed
FXSplitter * myMainSplitter
The splitter that divides the main window into view and the log window.
long onCmdOpenRecent(FXObject *, FXSelector, void *)
called when the command/FXCall open recent is executed
long onCmdOpenNetwork(FXObject *, FXSelector, void *)
called when the command/FXCall open network is executed
FXGLCanvas * getBuildGLCanvas() const
get build OpenGL Canvas
int myViewNumber
The current view number.
A point in 2D or 3D with translation and scaling methods.
Definition: Position.h:39
Position getLanePos(const std::string &poiID, const std::string &laneID, double lanePos, double lanePosLat)
get lane position
virtual void fillMenuBar()
Builds the menu bar.
FXMenuCommand * mySaveShapesMenuCommandAs
FXMenuCommand for enable or disable save shapes.
bool continueWithUnsavedShapeChanges()
warns about unsaved changes in shapes and gives the user the option to abort
long onCmdSaveAsPlainXML(FXObject *, FXSelector, void *)
called when the command/FXCall save as plain xml is executed
long onCmdSaveShapesAs(FXObject *, FXSelector, void *)
called when the command/FXCall save shapes as is executed
long onCmdOpenConfiguration(FXObject *, FXSelector, void *)
called when the command/FXCall open configuration is executed
long onCmdOpenAdditionals(FXObject *, FXSelector, void *)
called when the command/FXCall open additionals is executed
double getTrackerInterval() const
get current tracker interval (pure virtual but we don&#39;t need it)
long onCmdLocate(FXObject *, FXSelector, void *)
called when the command/FXCall locate is executed
FXCursor * getDefaultCursor()
get default cursor
long onCmdCleanJunctions(FXObject *, FXSelector, void *)
called if the user selects Processing->clean junctions
GNEShapeHandler(const std::string &file, GNENet *net)
Constructor.
virtual ~GNEApplicationWindow()
Destructor.
FXToolBar * myToolBar1
The application tool bar.
long onUpdOpen(FXObject *, FXSelector, void *)
called when the command/FXCall on update open executed
GNELoadThread * myLoadThread
the thread that loads the network
FXToolBarShell * myToolBarDrag1
for some menu detaching fun
long onCmdOpenShapes(FXObject *, FXSelector, void *)
called when the command/FXCall open shapes is executed
long onCmdEnter(FXObject *sender, FXSelector sel, void *ptr)
called if the user hits enter
FXMenuCommand * mySaveAdditionalsMenuCommandAs
FXMenuCommand for enable or disable save additionals As.
long onCmdFocusFrame(FXObject *sender, FXSelector sel, void *ptr)
called if the user hits f
long onCmdQuit(FXObject *, FXSelector, void *)
Called by FOX if the application shall be closed.
void setTLSProgramsFile(const std::string &TLSProgramsFile)
set TLS Programs file
virtual void detach()
detaches the tool/menu bar
long onCmdDel(FXObject *sender, FXSelector sel, void *ptr)
called if the user hits del
FXRecentFiles myRecentNets
List of recent nets.
void loadOptionOnStartup()
load net on startup
FXToolBarShell * myMenuBarDrag
void disableSaveShapesMenu()
disable save shapes
FXMenuCommand * mySaveAdditionalsMenuCommand
FXMenuCommand for enable or disable save additionals.
long onCmdClose(FXObject *, FXSelector, void *)
called when the command/FXCall close is executed
long onCmdOpenTLSPrograms(FXObject *, FXSelector, void *)
called when the command/FXCall open additionals is executed
std::string myAdditionalsFile
filename for load/save additionals
void handleEvent_Message(GUIEvent *e)
hanlde event of type message
FXMenuCommand * mySaveTLSProgramsMenuCommand
FXMenuCommand for enable or disable save additionals.
long onCmdNewView(FXObject *, FXSelector, void *)
called when the command/FXCall new view is executed
long onCmdAbort(FXObject *sender, FXSelector sel, void *ptr)
called if the user hits esc
long onCmdSaveJoined(FXObject *, FXSelector, void *)
called when the command/FXCall save joined is executed
const FXString myTitlePrefix
the prefix for the window title
GNENet * myNet
we are responsible for the net
void dependentBuild()
build dependent
long onCmdComputeJunctionsVolatile(FXObject *, FXSelector, void *)
called if the user selects Processing->compute junctions with volatile options
long onCmdSaveAsNetwork(FXObject *, FXSelector, void *)
called when the command/FXCall save network as is executed
GNEViewNet * getView()
convenience method
A logging window for the gui.
FXMenuPane * myFileMenu
the submenus
long onKeyPress(FXObject *o, FXSelector sel, void *data)
called when a key is pressed
long onUpdSaveNetwork(FXObject *, FXSelector, void *)
called when the update/FXCall save network is executed
void setShapesFile(const std::string &shapesFile)
set shapes file