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 <string>
27 #include <vector>
28 #include <iostream>
29 #include <fx.h>
37 
38 // ===========================================================================
39 // class declarations
40 // ===========================================================================
41 class GNELoadThread;
42 class GNEUndoList;
43 class GNENet;
44 class GNEViewNet;
45 class GUIEvent;
48 
49 
50 // ===========================================================================
51 // class definition
52 // ===========================================================================
65  FXDECLARE(GNEApplicationWindow)
66 
67 public:
74  class GNEShapeHandler : public ShapeHandler {
75  public:
80  GNEShapeHandler(const std::string& file, GNENet* net);
81 
84 
90  Position getLanePos(const std::string& poiID, const std::string& laneID, double lanePos, double lanePosLat);
91 
92  private:
95  };
96 
97 
102  GNEApplicationWindow(FXApp* a, const std::string& configPattern);
103 
105  virtual ~GNEApplicationWindow();
106 
108  virtual void create();
109 
111  virtual void detach();
112 
114  void loadOptionOnStartup();
115 
117  void dependentBuild();
118 
120  void setStatusBarText(const std::string& statusBarText);
121 
123  void setAdditionalsFile(const std::string& additionalsFile);
124 
126  void setShapesFile(const std::string& shapesFile);
127 
129  void setTLSProgramsFile(const std::string& TLSProgramsFile);
130 
133 
136 
138  void enableSaveShapesMenu();
139 
141  void disableSaveShapesMenu();
142 
145 
149  virtual void eventOccurred();
150 
153 
155  void handleEvent_Message(GUIEvent* e);
157 
161  long onCmdNewNetwork(FXObject*, FXSelector, void*);
162 
164  long onCmdOpenConfiguration(FXObject*, FXSelector, void*);
165 
167  long onCmdOpenNetwork(FXObject*, FXSelector, void*);
168 
170  long onCmdOpenForeign(FXObject*, FXSelector, void*);
171 
173  long onCmdOpenShapes(FXObject*, FXSelector, void*);
174 
176  long onCmdOpenAdditionals(FXObject*, FXSelector, void*);
177 
179  long onCmdOpenTLSPrograms(FXObject*, FXSelector, void*);
180 
182  long onCmdReload(FXObject*, FXSelector, void*);
183 
185  long onCmdOpenRecent(FXObject*, FXSelector, void*);
186 
188  long onCmdClose(FXObject*, FXSelector, void*);
189 
191  long onCmdEditViewScheme(FXObject*, FXSelector, void*);
192 
194  long onCmdEditViewport(FXObject*, FXSelector, void*);
195 
197  long onCmdLocate(FXObject*, FXSelector, void*);
198 
200  long onCmdSaveNetwork(FXObject*, FXSelector, void*);
201 
203  long onCmdSaveAdditionals(FXObject*, FXSelector, void*);
204 
206  long onCmdSaveAdditionalsAs(FXObject*, FXSelector, void*);
207 
209  long onCmdSaveTLSPrograms(FXObject*, FXSelector, void*);
210 
212  long onCmdSaveTLSProgramsAs(FXObject*, FXSelector, void*);
213 
215  long onUpdSaveNetwork(FXObject*, FXSelector, void*);
216 
218  long onCmdSaveAsNetwork(FXObject*, FXSelector, void*);
219 
221  long onUpdNeedsNetwork(FXObject*, FXSelector, void*);
222 
224  long onUpdReload(FXObject*, FXSelector, void*);
225 
227  long onCmdSaveAsPlainXML(FXObject*, FXSelector, void*);
228 
230  long onCmdSaveJoined(FXObject*, FXSelector, void*);
231 
233  long onCmdSaveShapes(FXObject*, FXSelector, void*);
234 
236  long onCmdSaveShapesAs(FXObject*, FXSelector, void*);
237 
239  long onKeyPress(FXObject* o, FXSelector sel, void* data);
240 
242  long onKeyRelease(FXObject* o, FXSelector sel, void* data);
243 
247  long onCmdQuit(FXObject*, FXSelector, void*);
248 
250  long onCmdEditChosen(FXObject*, FXSelector, void*);
251 
253  long onCmdAppSettings(FXObject*, FXSelector, void*);
254 
256  long onCmdGaming(FXObject*, FXSelector, void*);
257 
259  long onCmdAbout(FXObject*, FXSelector, void*);
260 
262  long onCmdNewView(FXObject*, FXSelector, void*);
263 
265  long onUpdOpen(FXObject*, FXSelector, void*);
266 
268  long onCmdClearMsgWindow(FXObject*, FXSelector, void*);
269 
271  long onLoadThreadEvent(FXObject*, FXSelector, void*);
272 
274  long onClipboardRequest(FXObject* sender, FXSelector sel, void* ptr);
275 
277  long onCmdSetMode(FXObject* sender, FXSelector sel, void* ptr);
278 
280  long onCmdOpenSUMOGUI(FXObject* sender, FXSelector sel, void* ptr);
281 
283  long onCmdAbort(FXObject* sender, FXSelector sel, void* ptr);
284 
286  long onCmdDel(FXObject* sender, FXSelector sel, void* ptr);
287 
289  long onCmdEnter(FXObject* sender, FXSelector sel, void* ptr);
290 
292  long onCmdFocusFrame(FXObject* sender, FXSelector sel, void* ptr);
293 
295  long onCmdToogleGrid(FXObject*, FXSelector, void*);
296 
298  long onCmdHelp(FXObject* sender, FXSelector sel, void* ptr);
299 
301  long onCmdComputeJunctions(FXObject*, FXSelector, void*);
302 
304  long onCmdComputeJunctionsVolatile(FXObject*, FXSelector, void*);
305 
307  long onCmdCleanJunctions(FXObject*, FXSelector, void*);
308 
310  long onCmdJoinJunctions(FXObject*, FXSelector, void*);
311 
313  long onCmdCleanInvalidCrossings(FXObject*, FXSelector, void*);
314 
316  long onCmdOptions(FXObject*, FXSelector, void*);
318 
320  FXGLCanvas* getBuildGLCanvas() const;
321 
323  SUMOTime getCurrentSimTime() const;
325  double getTrackerInterval() const;
326 
328  FXCursor* getDefaultCursor();
329 
332 
334  void updateControls();
335 
336 protected:
339 
341  virtual void fillMenuBar();
342 
344  std::string myName;
345 
348 
351 
354 
356  FXMenuPane* myFileMenu,
359  *myFileMenuTLS,
360  *myEditMenu,
362  *myLocatorMenu,
363  *myWindowsMenu,
364  *myHelpMenu;
365 
368 
370  FXSplitter* myMainSplitter;
371 
375  *myMenuBarDrag;
376 
379 
381  FXMDIMenu* myMDIMenu;
382 
384  FXMenuBar* myMenuBar;
385 
388 
391 
393  FXRecentFiles myRecentConfigs;
394 
396  FXRecentFiles myRecentNets;
397 
399  std::string myConfigPattern;
400 
403 
406 
409 
411  const FXString myTitlePrefix;
412 
414  std::string myAdditionalsFile;
415 
417  std::string myShapesFile;
418 
420  std::string myTLSProgramsFile;
421 
422 private:
425 
428 
430  FXMenuCommand* mySaveShapesMenuCommand;
431 
434 
437 
439  void loadConfigOrNet(const std::string file, bool isNet, bool isReload = false, bool useStartupOptions = false, bool newNet = false);
440 
442  void closeAllWindows();
443 
446 
448  GNEViewNet* getView();
449 
452 
455 
458 };
459 
460 
461 #endif
462 
463 /****************************************************************************/
464 
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:80
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
A window which displays the time line of one (or more) value(s)
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.
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