SUMO - Simulation of Urban MObility
GNEApplicationWindow.h
Go to the documentation of this file.
1 /****************************************************************************/
7 // The main window of Netedit (adapted from GUIApplicationWindow)
8 /****************************************************************************/
9 // SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
10 // Copyright (C) 2001-2017 DLR (http://www.dlr.de/) and contributors
11 /****************************************************************************/
12 //
13 // This file is part of SUMO.
14 // SUMO is free software: you can redistribute it and/or modify
15 // it under the terms of the GNU General Public License as published by
16 // the Free Software Foundation, either version 3 of the License, or
17 // (at your option) any later version.
18 //
19 /****************************************************************************/
20 #ifndef GNEApplicationWindow_h
21 #define GNEApplicationWindow_h
22 
23 
24 // ===========================================================================
25 // included modules
26 // ===========================================================================
27 #ifdef _MSC_VER
28 #include <windows_config.h>
29 #else
30 #include <config.h>
31 #endif
32 
33 #include <string>
34 #include <vector>
35 #include <iostream>
36 #include <fx.h>
44 
45 // ===========================================================================
46 // class declarations
47 // ===========================================================================
48 class GNELoadThread;
49 class GNEUndoList;
50 class GNENet;
51 class GNEViewNet;
52 class GUIEvent;
55 
56 
57 // ===========================================================================
58 // class definition
59 // ===========================================================================
72  FXDECLARE(GNEApplicationWindow)
73 
74 public:
75 
80  GNEApplicationWindow(FXApp* a, const std::string& configPattern);
81 
83  virtual ~GNEApplicationWindow();
84 
86  virtual void create();
87 
89  virtual void detach();
90 
92  void loadOptionOnStartup();
93 
95  void dependentBuild();
96 
98  void setStatusBarText(const std::string& statusBarText);
99 
101  void setAdditionalsFile(const std::string& additionalsFile);
102 
106  virtual void eventOccured();
107 
110 
112  void handleEvent_Message(GUIEvent* e);
114 
118  long onCmdNewNetwork(FXObject*, FXSelector, void*);
119 
121  long onCmdOpenConfiguration(FXObject*, FXSelector, void*);
122 
124  long onCmdOpenNetwork(FXObject*, FXSelector, void*);
125 
127  long onCmdOpenForeign(FXObject*, FXSelector, void*);
128 
130  long onCmdOpenShapes(FXObject*, FXSelector, void*);
131 
133  long onCmdOpenAdditionals(FXObject*, FXSelector, void*);
134 
136  long onCmdReload(FXObject*, FXSelector, void*);
137 
139  long onCmdOpenRecent(FXObject*, FXSelector, void*);
140 
142  long onCmdClose(FXObject*, FXSelector, void*);
143 
145  long onCmdLocate(FXObject*, FXSelector, void*);
146 
148  long onCmdSaveNetwork(FXObject*, FXSelector, void*);
149 
151  long onCmdSaveAdditionals(FXObject*, FXSelector, void*);
152 
154  long onCmdSaveAdditionalsAs(FXObject*, FXSelector, void*);
155 
157  long onUpdSaveNetwork(FXObject*, FXSelector, void*);
158 
160  long onCmdSaveAsNetwork(FXObject*, FXSelector, void*);
161 
163  long onUpdNeedsNetwork(FXObject*, FXSelector, void*);
164 
166  long onUpdReload(FXObject*, FXSelector, void*);
167 
169  long onCmdSaveAsPlainXML(FXObject*, FXSelector, void*);
170 
172  long onCmdSaveJoined(FXObject*, FXSelector, void*);
173 
175  long onCmdSavePois(FXObject*, FXSelector, void*);
176 
178  long onKeyPress(FXObject* o, FXSelector sel, void* data);
179 
181  long onKeyRelease(FXObject* o, FXSelector sel, void* data);
182 
186  long onCmdQuit(FXObject*, FXSelector, void*);
187 
189  long onCmdEditChosen(FXObject*, FXSelector, void*);
190 
192  long onCmdAppSettings(FXObject*, FXSelector, void*);
193 
195  long onCmdGaming(FXObject*, FXSelector, void*);
196 
198  long onCmdAbout(FXObject*, FXSelector, void*);
199 
201  long onCmdNewView(FXObject*, FXSelector, void*);
202 
204  long onUpdOpen(FXObject*, FXSelector, void*);
205 
207  long onCmdClearMsgWindow(FXObject*, FXSelector, void*);
208 
210  long onLoadThreadEvent(FXObject*, FXSelector, void*);
211 
213  long onClipboardRequest(FXObject* sender, FXSelector sel, void* ptr);
214 
216  long onCmdSetMode(FXObject* sender, FXSelector sel, void* ptr);
217 
219  long onCmdAbort(FXObject* sender, FXSelector sel, void* ptr);
220 
222  long onCmdDel(FXObject* sender, FXSelector sel, void* ptr);
223 
225  long onCmdEnter(FXObject* sender, FXSelector sel, void* ptr);
226 
228  long onCmdFocusFrame(FXObject* sender, FXSelector sel, void* ptr);
229 
231  long onCmdEditViewport(FXObject*, FXSelector, void*);
232 
234  long onCmdHelp(FXObject* sender, FXSelector sel, void* ptr);
235 
237  long onCmdComputeJunctions(FXObject*, FXSelector, void*);
238 
240  long onCmdCleanJunctions(FXObject*, FXSelector, void*);
241 
243  long onCmdJoinJunctions(FXObject*, FXSelector, void*);
244 
246  long onCmdOptions(FXObject*, FXSelector, void*);
248 
250  FXGLCanvas* getBuildGLCanvas() const;
251 
253  SUMOTime getCurrentSimTime() const;
254 
256  FXCursor* getDefaultCursor();
257 
260 
262  void updateControls();
263 
264 protected:
267 
269  virtual void fillMenuBar();
270 
272  std::string myName;
273 
276 
279 
282 
284  FXMenuPane* myFileMenu,
285  *myEditMenu,
287  *myLocatorMenu,
288  *myWindowsMenu,
289  *myHelpMenu;
290 
293 
295  FXSplitter* myMainSplitter;
296 
300  *myMenuBarDrag;
301 
304 
306  FXMDIMenu* myMDIMenu;
307 
309  FXMenuBar* myMenuBar;
310 
313 
316 
318  FXRecentFiles myRecentConfigs;
319 
321  FXRecentFiles myRecentNets;
322 
324  std::string myConfigPattern;
325 
328 
331 
334 
336  const FXString myTitlePrefix;
337 
339  std::string myAdditionalsFile;
340 
347  class GNEShapeHandler : public ShapeHandler {
348  public:
354  GNEShapeHandler(const std::string& file, GNENet* net, ShapeContainer& sc);
355 
357  virtual ~GNEShapeHandler();
358 
364  Position getLanePos(const std::string& poiID, const std::string& laneID, double lanePos);
365 
366  private:
369  };
370 
371 private:
373  void loadConfigOrNet(const std::string file, bool isNet, bool isReload = false, bool useStartupOptions = false, bool newNet = false);
374 
376  void closeAllWindows();
377 
380 
382  GNEViewNet* getView();
383 
387 };
388 
389 
390 #endif
391 
392 /****************************************************************************/
393 
std::string myConfigPattern
Input file pattern.
FXToolBarShell * myToolBarDrag5
FXMenuBar * myMenuBar
The application menu bar.
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)
long onCmdNewNetwork(FXObject *, FXSelector, void *)
FXEX::FXThreadEvent myLoadThreadEvent
io-event with the load-thread
void setAdditionalsFile(const std::string &additionalsFile)
set additionals file
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
GUIMessageWindow * myMessageWindow
A window to display messages, warnings and error in.
FXToolBarShell * myToolBarDrag2
The main window of the Netedit.
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.
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 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
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 onCmdOpenForeign(FXObject *, FXSelector, void *)
called when the command/FXCall open foreign is executed
A NBNetBuilder extended by visualisation and editing capabilities.
Definition: GNENet.h:88
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
Storage for geometrical objects.
long onUpdNeedsNetwork(FXObject *, FXSelector, void *)
called when the upadte/FXCall needs network is executed
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
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
Position getLanePos(const std::string &poiID, const std::string &laneID, double lanePos)
get lane position
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:56
long onCmdSaveAdditionalsAs(FXObject *, FXSelector, void *)
called when the command/FXCall save additionals as is executed
A window which displays the time line of one (or more) value(s)
long onCmdEditViewport(FXObject *, FXSelector, void *)
called if the user press key v to open zoom editor
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:46
virtual void fillMenuBar()
Builds the menu bar.
long onCmdSaveAsPlainXML(FXObject *, FXSelector, void *)
called when the command/FXCall save as plain xml 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
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
The XML-Handler for shapes loading network loading.
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
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.
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
long onCmdClose(FXObject *, FXSelector, void *)
called when the command/FXCall close is executed
std::string myAdditionalsFile
filename for load/save additionals
void handleEvent_Message(GUIEvent *e)
hanlde event of type message
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
long long int SUMOTime
Definition: TraCIDefs.h:52
GNEShapeHandler(const std::string &file, GNENet *net, ShapeContainer &sc)
Constructor.
GNENet * myNet
we are responsible for the net
void dependentBuild()
build dependent
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.
A window containing a gl-object&#39;s parameter.
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
long onCmdSavePois(FXObject *, FXSelector, void *)
called when the command/FXCall save pois is executed