SUMO - Simulation of Urban MObility
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
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 loadOptionOnStartup();
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 onCmdSaveAdditionalsAs(FXObject*, FXSelector, void*);
153 
155  long onUpdSaveNetwork(FXObject*, FXSelector, void*);
156 
158  long onCmdSaveAsNetwork(FXObject*, FXSelector, void*);
159 
161  long onUpdNeedsNetwork(FXObject*, FXSelector, void*);
162 
164  long onUpdReload(FXObject*, FXSelector, void*);
165 
167  long onCmdSaveAsPlainXML(FXObject*, FXSelector, void*);
168 
170  long onCmdSaveJoined(FXObject*, FXSelector, void*);
171 
173  long onCmdSavePois(FXObject*, FXSelector, void*);
174 
176  long onKeyPress(FXObject* o, FXSelector sel, void* data);
177 
179  long onKeyRelease(FXObject* o, FXSelector sel, void* data);
180 
184  long onCmdQuit(FXObject*, FXSelector, void*);
185 
187  long onCmdEditChosen(FXObject*, FXSelector, void*);
188 
190  long onCmdAppSettings(FXObject*, FXSelector, void*);
191 
193  long onCmdGaming(FXObject*, FXSelector, void*);
194 
196  long onCmdAbout(FXObject*, FXSelector, void*);
197 
199  long onCmdNewView(FXObject*, FXSelector, void*);
200 
202  long onUpdOpen(FXObject*, FXSelector, void*);
203 
205  long onCmdClearMsgWindow(FXObject*, FXSelector, void*);
206 
208  long onLoadThreadEvent(FXObject*, FXSelector, void*);
209 
211  long onClipboardRequest(FXObject* sender, FXSelector sel, void* ptr);
212 
214  long onCmdSetMode(FXObject* sender, FXSelector sel, void* ptr);
215 
217  long onCmdAbort(FXObject* sender, FXSelector sel, void* ptr);
218 
220  long onCmdDel(FXObject* sender, FXSelector sel, void* ptr);
221 
223  long onCmdEnter(FXObject* sender, FXSelector sel, void* ptr);
224 
226  long onCmdHelp(FXObject* sender, FXSelector sel, void* ptr);
227 
229  long onCmdComputeJunctions(FXObject*, FXSelector, void*);
230 
232  long onCmdCleanJunctions(FXObject*, FXSelector, void*);
233 
235  long onCmdJoinJunctions(FXObject*, FXSelector, void*);
236 
238  long onCmdOptions(FXObject*, FXSelector, void*);
240 
242  FXGLCanvas* getBuildGLCanvas() const;
243 
245  SUMOTime getCurrentSimTime() const;
246 
248  FXCursor* getDefaultCursor();
249 
252 
254  void updateControls();
255 
256 protected:
259 
261  virtual void fillMenuBar();
262 
264  std::string myName;
265 
268 
271 
274 
276  FXMenuPane* myFileMenu,
277  *myEditMenu,
278  *myLocatorMenu,
280  *myWindowsMenu,
281  *myHelpMenu;
282 
285 
287  FXSplitter* myMainSplitter;
288 
292  *myMenuBarDrag;
293 
296 
298  FXMDIMenu* myMDIMenu;
299 
301  FXMenuBar* myMenuBar;
302 
305 
308 
310  FXRecentFiles myRecentConfigs;
311 
313  FXRecentFiles myRecentNets;
314 
316  std::string myConfigPattern;
317 
320 
323 
326 
328  const FXString myTitlePrefix;
329 
336  class GNEShapeHandler : public ShapeHandler {
337  public:
343  GNEShapeHandler(const std::string& file, GNENet* net, ShapeContainer& sc);
344 
346  virtual ~GNEShapeHandler();
347 
353  Position getLanePos(const std::string& poiID, const std::string& laneID, SUMOReal lanePos);
354 
355  private:
358  };
359 
360 private:
362  void loadConfigOrNet(const std::string file, bool isNet, bool isReload = false, bool useStartupOptions = false, bool newNet = false);
363 
365  void closeAllWindows();
366 
369 
371  GNEViewNet* getView();
372 
375 };
376 
377 
378 #endif
379 
380 /****************************************************************************/
381 
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
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:87
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
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 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'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
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.
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
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:214
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'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