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-2016 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 // ===========================================================================
73  FXDECLARE(GNEApplicationWindow)
74 
75 public:
76 
81  GNEApplicationWindow(FXApp* a, const std::string& configPattern);
82 
84  virtual ~GNEApplicationWindow();
85 
87  virtual void create();
88 
90  virtual void detach();
91 
93  void loadOnStartup();
94 
96  void dependentBuild();
97 
99  void setStatusBarText(const std::string&);
100 
104  virtual void eventOccured();
105 
108 
110  void handleEvent_Message(GUIEvent* e);
112 
116  long onCmdNewNetwork(FXObject*, FXSelector, void*);
117 
119  long onCmdOpenConfiguration(FXObject*, FXSelector, void*);
120 
122  long onCmdOpenNetwork(FXObject*, FXSelector, void*);
123 
125  long onCmdOpenForeign(FXObject*, FXSelector, void*);
126 
128  long onCmdOpenShapes(FXObject*, FXSelector, void*);
129 
131  long onCmdOpenAdditionals(FXObject*, FXSelector, void*);
132 
134  long onCmdReload(FXObject*, FXSelector, void*);
135 
137  long onCmdOpenRecent(FXObject*, FXSelector, void*);
138 
140  long onCmdClose(FXObject*, FXSelector, void*);
141 
143  long onCmdLocate(FXObject*, FXSelector, void*);
144 
146  long onCmdSaveNetwork(FXObject*, FXSelector, void*);
147 
149  long onCmdSaveAdditionals(FXObject*, FXSelector, void*);
150 
152  long onUpdSaveNetwork(FXObject*, FXSelector, void*);
153 
155  long onCmdSaveAsNetwork(FXObject*, FXSelector, void*);
156 
158  long onUpdNeedsNetwork(FXObject*, FXSelector, void*);
159 
161  long onUpdReload(FXObject*, FXSelector, void*);
162 
164  long onCmdSaveAsPlainXML(FXObject*, FXSelector, void*);
165 
167  long onCmdSaveJoined(FXObject*, FXSelector, void*);
168 
170  long onCmdSavePois(FXObject*, FXSelector, void*);
171 
173  long onKeyPress(FXObject* o, FXSelector sel, void* data);
174 
176  long onKeyRelease(FXObject* o, FXSelector sel, void* data);
177 
180  long onCmdQuit(FXObject*, FXSelector, void*);
181 
183  long onCmdEditChosen(FXObject*, FXSelector, void*);
184 
186  long onCmdAppSettings(FXObject*, FXSelector, void*);
187 
189  long onCmdGaming(FXObject*, FXSelector, void*);
190 
192  long onCmdAbout(FXObject*, FXSelector, void*);
193 
195  long onCmdNewView(FXObject*, FXSelector, void*);
196 
198  long onUpdOpen(FXObject*, FXSelector, void*);
199 
201  long onCmdClearMsgWindow(FXObject*, FXSelector, void*);
202 
204  long onLoadThreadEvent(FXObject*, FXSelector, void*);
205 
207  long onClipboardRequest(FXObject* sender, FXSelector sel, void* ptr);
208 
210  long onCmdSetMode(FXObject* sender, FXSelector sel, void* ptr);
211 
213  long onCmdAbort(FXObject* sender, FXSelector sel, void* ptr);
214 
216  long onCmdDel(FXObject* sender, FXSelector sel, void* ptr);
217 
219  long onCmdEnter(FXObject* sender, FXSelector sel, void* ptr);
220 
222  long onCmdHelp(FXObject* sender, FXSelector sel, void* ptr);
223 
225  long onCmdComputeJunctions(FXObject*, FXSelector, void*);
226 
228  long onCmdCleanJunctions(FXObject*, FXSelector, void*);
229 
231  long onCmdJoinJunctions(FXObject*, FXSelector, void*);
232 
234  long onCmdOptions(FXObject*, FXSelector, void*);
236 
238  FXGLCanvas* getBuildGLCanvas() const;
239 
241  SUMOTime getCurrentSimTime() const;
242 
244  FXCursor* getDefaultCursor();
245 
248 
250  void updateControls();
251 
252 protected:
255 
257  virtual void fillMenuBar();
258 
260  std::string myName;
261 
264 
267 
270 
272  FXMenuPane* myFileMenu,
273  *myEditMenu,
274  *myLocatorMenu,
276  *myWindowsMenu,
277  *myHelpMenu;
278 
281 
283  FXSplitter* myMainSplitter;
284 
288  *myMenuBarDrag;
289 
292 
294  FXMDIMenu* myMDIMenu;
295 
297  FXMenuBar* myMenuBar;
298 
301 
304 
306  FXRecentFiles myRecentConfigs;
307 
309  FXRecentFiles myRecentNets;
310 
312  std::string myConfigPattern;
313 
316 
319 
322 
324  const FXString myTitlePrefix;
325 
332  class GNEShapeHandler : public ShapeHandler {
333  public:
339  GNEShapeHandler(const std::string& file, GNENet* net, ShapeContainer& sc);
340 
342  virtual ~GNEShapeHandler();
343 
349  Position getLanePos(const std::string& poiID, const std::string& laneID, SUMOReal lanePos);
350 
351  private:
354  };
355 
356 private:
358  void loadConfigOrNet(const std::string file, bool isNet, bool isReload = false, bool optionsReady = false, bool newNet = false);
359 
361  void closeAllWindows();
362 
365 
367  GNEViewNet* getView();
368 
371 };
372 
373 
374 #endif
375 
376 /****************************************************************************/
377 
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 ...
long long int SUMOTime
Definition: SUMOTime.h:43
long onCmdNewNetwork(FXObject *, FXSelector, void *)
FXEX::FXThreadEvent myLoadThreadEvent
io-event with the load-thread
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
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:86
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
void loadConfigOrNet(const std::string file, bool isNet, bool isReload=false, bool optionsReady=false, bool newNet=false)
starts to load a netimport configuration or a network */
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:56
A window which displays the time line of one (or more) value(s)
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
SUMOTime getCurrentSimTime() const
get current simulation time (pure virtual but we don&#39;t need it)
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
void loadOnStartup()
load net on startup
long onCmdLocate(FXObject *, FXSelector, void *)
called when the command/FXCall locate is executed
FXCursor * getDefaultCursor()
get default cursor
Position getLanePos(const std::string &poiID, const std::string &laneID, SUMOReal lanePos)
get lane position
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 onCmdQuit(FXObject *, FXSelector, void *)
Called by FOX if the application shall be closed Called either by FileMenu->Quit, the normal close-me...
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.
FXToolBarShell * myMenuBarDrag
long onCmdClose(FXObject *, FXSelector, void *)
called when the command/FXCall close is executed
void handleEvent_Message(GUIEvent *e)
hanlde event of type message
FXGLCanvas * getBuildGLCanvas() const
get build OpenGL Canvas
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
#define SUMOReal
Definition: config.h:213
long onCmdSaveJoined(FXObject *, FXSelector, void *)
called when the command/FXCall save joined is executed
const FXString myTitlePrefix
the prefix for the window title
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.
void setStatusBarText(const std::string &)
set text of the statusBar
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