SUMO - Simulation of Urban MObility
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GUIApplicationWindow.h
Go to the documentation of this file.
1 /****************************************************************************/
10 // The main window of the SUMO-gui.
11 /****************************************************************************/
12 // SUMO, Simulation of Urban MObility; see http://sumo-sim.org/
13 // Copyright (C) 2001-2014 DLR (http://www.dlr.de/) and contributors
14 /****************************************************************************/
15 //
16 // This file is part of SUMO.
17 // SUMO is free software: you can redistribute it and/or modify
18 // it under the terms of the GNU General Public License as published by
19 // the Free Software Foundation, either version 3 of the License, or
20 // (at your option) any later version.
21 //
22 /****************************************************************************/
23 #ifndef GUIApplicationWindow_h
24 #define GUIApplicationWindow_h
25 
26 
27 // ===========================================================================
28 // included modules
29 // ===========================================================================
30 #ifdef _MSC_VER
31 #include <windows_config.h>
32 #else
33 #include <config.h>
34 #endif
35 
36 #include <string>
37 #include <vector>
38 #include <iostream>
39 #include <fx.h>
49 #include "GUISUMOViewParent.h"
50 
51 
52 // ===========================================================================
53 // class declarations
54 // ===========================================================================
55 class GUILoadThread;
56 class GUIRunThread;
57 class GUIMessageWindow;
58 class GUIEvent;
61 
62 
63 // ===========================================================================
64 // class definition
65 // ===========================================================================
76  // FOX-declarations
77  FXDECLARE(GUIApplicationWindow)
78 public:
79 
84  GUIApplicationWindow(FXApp* a, const std::string& configPattern);
85 
86 
88  virtual ~GUIApplicationWindow();
89 
90 
93 
95  virtual void create();
96 
98  virtual void detach();
100 
101  void loadOnStartup();
102 
103 
104  void dependentBuild(bool game);
105 
106  void setStatusBarText(const std::string&);
107 
108  FXGLCanvas* getBuildGLCanvas() const;
109  SUMOTime getCurrentSimTime() const;
110 
111  FXCursor* getDefaultCursor();
112 
113 
114 
115 
118 
119  virtual void eventOccured();
122  void handleEvent_Message(GUIEvent* e);
125 
126 
127 
130 
132  long onCmdOpenConfiguration(FXObject*, FXSelector, void*);
133 
135  long onCmdOpenNetwork(FXObject*, FXSelector, void*);
136 
138  long onCmdReload(FXObject*, FXSelector, void*);
139 
141  long onCmdOpenRecent(FXObject*, FXSelector, void*);
142 
144  long onCmdClose(FXObject*, FXSelector, void*);
145 
149  long onCmdQuit(FXObject*, FXSelector, void*);
150 
152  long onCmdEditChosen(FXObject*, FXSelector, void*);
153 
155  long onCmdEditBreakpoints(FXObject*, FXSelector, void*);
156 
158  long onCmdAppSettings(FXObject*, FXSelector, void*);
159 
161  long onCmdGaming(FXObject*, FXSelector, void*);
162 
164  long onCmdListInternal(FXObject*, FXSelector, void*);
165 
167  long onCmdAbout(FXObject*, FXSelector, void*);
168 
170  long onCmdStart(FXObject*, FXSelector, void*);
171 
173  long onCmdStop(FXObject*, FXSelector, void*);
174 
176  long onCmdStep(FXObject*, FXSelector, void*);
177 
179  long onCmdTimeToggle(FXObject*, FXSelector, void*);
180 
182  long onCmdDelayToggle(FXObject*, FXSelector, void*);
183 
185  long onCmdNewView(FXObject*, FXSelector, void*);
186 
187 #ifdef HAVE_OSG
188 
189  long onCmdNewOSG(FXObject*, FXSelector, void*);
190 #endif
191 
193  long onUpdOpen(FXObject*, FXSelector, void*);
194 
196  long onUpdReload(FXObject*, FXSelector, void*);
197 
199  long onUpdOpenRecent(FXObject*, FXSelector, void*);
200 
202  long onUpdAddView(FXObject*, FXSelector, void*);
203 
205  long onUpdStart(FXObject* sender, FXSelector, void* ptr);
206 
208  long onUpdStop(FXObject*, FXSelector, void*);
209 
211  long onUpdStep(FXObject*, FXSelector, void*);
212 
214  long onUpdNeedsSimulation(FXObject*, FXSelector, void*);
215 
217  long onCmdClearMsgWindow(FXObject*, FXSelector, void*);
218 
220  long onCmdLocate(FXObject*, FXSelector, void*);
221 
223  long onLoadThreadEvent(FXObject*, FXSelector, void*);
224 
226  long onRunThreadEvent(FXObject*, FXSelector, void*);
227 
229  long onClipboardRequest(FXObject* sender, FXSelector sel, void* ptr);
231 
232 protected:
233  virtual void addToWindowsMenu(FXMenuPane*) { }
234 
235 private:
237  void load(const std::string& file, bool isNet, bool isReload = false);
238 
240  void closeAllWindows();
241 
243  void updateTimeLCD(SUMOTime time);
244 
247 
249  void checkGamingEvents();
250 
251 protected:
254 
255 protected:
257  virtual void fillMenuBar();
258 
260  virtual void buildToolBars();
261 
262 protected:
264  std::string myName;
265 
268 
271 
274 
276  size_t myViewNumber;
277 
280 
285 
288 
290  FXSplitter* myMainSplitter;
291 
295 
298 
301 
304 
306  FXMDIMenu* myMDIMenu;
307 
309  FXMenuBar* myMenuBar;
310 
313 
316 
319 
322 
324  FXRecentFiles myRecentConfigs;
325 
327  FXRecentFiles myRecentNets;
328 
330  std::string myConfigPattern;
331 
333 
336 
337 
345 
351  FXToolBar* myToolBar6, *myToolBar7;
352  FXToolBarShell* myToolBarDrag6, *myToolBarDrag7;
354 
355 };
356 
357 
358 #endif
359 
360 /****************************************************************************/
361