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-2017 German Aerospace Center (DLR) and others.
4 /****************************************************************************/
5 //
6 // This program and the accompanying materials
7 // are made available under the terms of the Eclipse Public License v2.0
8 // which accompanies this distribution, and is available at
9 // http://www.eclipse.org/legal/epl-v20.html
10 //
11 /****************************************************************************/
17 // The main window of Netedit (adapted from GUIApplicationWindow)
18 /****************************************************************************/
19 #ifndef GNEApplicationWindow_h
20 #define GNEApplicationWindow_h
21 
22 
23 // ===========================================================================
24 // included modules
25 // ===========================================================================
26 #ifdef _MSC_VER
27 #include <windows_config.h>
28 #else
29 #include <config.h>
30 #endif
31 
32 #include <string>
33 #include <vector>
34 #include <iostream>
35 #include <fx.h>
43 
44 // ===========================================================================
45 // class declarations
46 // ===========================================================================
47 class GNELoadThread;
48 class GNEUndoList;
49 class GNENet;
50 class GNEViewNet;
51 class GUIEvent;
54 
55 
56 // ===========================================================================
57 // class definition
58 // ===========================================================================
71  FXDECLARE(GNEApplicationWindow)
72 
73 public:
80  class GNEShapeHandler : public ShapeHandler {
81  public:
86  GNEShapeHandler(const std::string& file, GNENet* net);
87 
90 
96  Position getLanePos(const std::string& poiID, const std::string& laneID, double lanePos, double lanePosLat);
97 
98  private:
101  };
102 
103 
108  GNEApplicationWindow(FXApp* a, const std::string& configPattern);
109 
111  virtual ~GNEApplicationWindow();
112 
114  virtual void create();
115 
117  virtual void detach();
118 
120  void loadOptionOnStartup();
121 
123  void dependentBuild();
124 
126  void setStatusBarText(const std::string& statusBarText);
127 
129  void setAdditionalsFile(const std::string& additionalsFile);
130 
132  void setShapesFile(const std::string& shapesFile);
133 
136 
138  void enableSaveShapesMenu();
139 
143  virtual void eventOccured();
144 
147 
149  void handleEvent_Message(GUIEvent* e);
151 
155  long onCmdNewNetwork(FXObject*, FXSelector, void*);
156 
158  long onCmdOpenConfiguration(FXObject*, FXSelector, void*);
159 
161  long onCmdOpenNetwork(FXObject*, FXSelector, void*);
162 
164  long onCmdOpenForeign(FXObject*, FXSelector, void*);
165 
167  long onCmdOpenShapes(FXObject*, FXSelector, void*);
168 
170  long onCmdOpenAdditionals(FXObject*, FXSelector, void*);
171 
173  long onCmdReload(FXObject*, FXSelector, void*);
174 
176  long onCmdOpenRecent(FXObject*, FXSelector, void*);
177 
179  long onCmdClose(FXObject*, FXSelector, void*);
180 
182  long onCmdLocate(FXObject*, FXSelector, void*);
183 
185  long onCmdSaveNetwork(FXObject*, FXSelector, void*);
186 
188  long onCmdSaveAdditionals(FXObject*, FXSelector, void*);
189 
191  long onCmdSaveAdditionalsAs(FXObject*, FXSelector, void*);
192 
194  long onUpdSaveNetwork(FXObject*, FXSelector, void*);
195 
197  long onCmdSaveAsNetwork(FXObject*, FXSelector, void*);
198 
200  long onUpdNeedsNetwork(FXObject*, FXSelector, void*);
201 
203  long onUpdReload(FXObject*, FXSelector, void*);
204 
206  long onCmdSaveAsPlainXML(FXObject*, FXSelector, void*);
207 
209  long onCmdSaveJoined(FXObject*, FXSelector, void*);
210 
212  long onCmdSaveShapes(FXObject*, FXSelector, void*);
213 
215  long onCmdSaveShapesAs(FXObject*, FXSelector, void*);
216 
218  long onKeyPress(FXObject* o, FXSelector sel, void* data);
219 
221  long onKeyRelease(FXObject* o, FXSelector sel, void* data);
222 
226  long onCmdQuit(FXObject*, FXSelector, void*);
227 
229  long onCmdEditChosen(FXObject*, FXSelector, void*);
230 
232  long onCmdAppSettings(FXObject*, FXSelector, void*);
233 
235  long onCmdGaming(FXObject*, FXSelector, void*);
236 
238  long onCmdAbout(FXObject*, FXSelector, void*);
239 
241  long onCmdNewView(FXObject*, FXSelector, void*);
242 
244  long onUpdOpen(FXObject*, FXSelector, void*);
245 
247  long onCmdClearMsgWindow(FXObject*, FXSelector, void*);
248 
250  long onLoadThreadEvent(FXObject*, FXSelector, void*);
251 
253  long onClipboardRequest(FXObject* sender, FXSelector sel, void* ptr);
254 
256  long onCmdSetMode(FXObject* sender, FXSelector sel, void* ptr);
257 
259  long onCmdAbort(FXObject* sender, FXSelector sel, void* ptr);
260 
262  long onCmdDel(FXObject* sender, FXSelector sel, void* ptr);
263 
265  long onCmdEnter(FXObject* sender, FXSelector sel, void* ptr);
266 
268  long onCmdFocusFrame(FXObject* sender, FXSelector sel, void* ptr);
269 
271  long onCmdEditViewport(FXObject*, FXSelector, void*);
272 
274  long onCmdHelp(FXObject* sender, FXSelector sel, void* ptr);
275 
277  long onCmdComputeJunctions(FXObject*, FXSelector, void*);
278 
280  long onCmdComputeJunctionsVolatile(FXObject*, FXSelector, void*);
281 
283  long onCmdCleanJunctions(FXObject*, FXSelector, void*);
284 
286  long onCmdJoinJunctions(FXObject*, FXSelector, void*);
287 
289  long onCmdCleanInvalidCrossings(FXObject*, FXSelector, void*);
290 
292  long onCmdOptions(FXObject*, FXSelector, void*);
294 
296  FXGLCanvas* getBuildGLCanvas() const;
297 
299  SUMOTime getCurrentSimTime() const;
301  double getTrackerInterval() const;
302 
304  FXCursor* getDefaultCursor();
305 
308 
310  void updateControls();
311 
312 protected:
315 
317  virtual void fillMenuBar();
318 
320  std::string myName;
321 
324 
327 
330 
332  FXMenuPane* myFileMenu,
333  *myEditMenu,
335  *myLocatorMenu,
336  *myWindowsMenu,
337  *myHelpMenu;
338 
341 
343  FXSplitter* myMainSplitter;
344 
348  *myMenuBarDrag;
349 
352 
354  FXMDIMenu* myMDIMenu;
355 
357  FXMenuBar* myMenuBar;
358 
361 
364 
366  FXRecentFiles myRecentConfigs;
367 
369  FXRecentFiles myRecentNets;
370 
372  std::string myConfigPattern;
373 
376 
379 
382 
384  const FXString myTitlePrefix;
385 
387  std::string myAdditionalsFile;
388 
390  std::string myShapesFile;
391 
392 private:
395 
397  FXMenuCommand* mySaveShapesMenuCommand;
398 
400  void loadConfigOrNet(const std::string file, bool isNet, bool isReload = false, bool useStartupOptions = false, bool newNet = false);
401 
403  void closeAllWindows();
404 
407 
409  GNEViewNet* getView();
410 
413 
416 
419 };
420 
421 
422 #endif
423 
424 /****************************************************************************/
425 
std::string myConfigPattern
Input file pattern.
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 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
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.
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
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 onCmdOpenForeign(FXObject *, FXSelector, void *)
called when the command/FXCall open foreign is executed
A NBNetBuilder extended by visualisation and editing capabilities.
Definition: GNENet.h:91
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
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:55
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:45
Position getLanePos(const std::string &poiID, const std::string &laneID, double lanePos, double lanePosLat)
get lane position
virtual void fillMenuBar()
Builds the menu bar.
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
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
FXMenuCommand * mySaveAdditionalsMenuCommand
FXMenuCommand for enable or disable save additionals.
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:51
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.
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
void setShapesFile(const std::string &shapesFile)
set shapes file