]> git.mxchange.org Git - flightgear.git/blob - src/GUI/new_gui.hxx
4a7f425ced4e880a97389a204344af6f9715601e
[flightgear.git] / src / GUI / new_gui.hxx
1 // new_gui.hxx - XML-configurable GUI subsystem.
2
3 #ifndef __NEW_GUI_HXX
4 #define __NEW_GUI_HXX 1
5
6 #ifndef __cplusplus
7 # error This library requires C++
8 #endif
9
10 #include <plib/pu.h>
11
12 #include <simgear/compiler.h>   // for SG_USING_STD
13 #include <simgear/misc/props.hxx>
14
15 #include <vector>
16 SG_USING_STD(vector);
17
18 #include <map>
19 SG_USING_STD(map);
20
21 #include <Main/fgfs.hxx>
22 #include <Main/fg_props.hxx>
23
24 class FGMenuBar;
25 class FGDialog;
26 class FGBinding;
27
28
29 class NewGUI : public FGSubsystem
30 {
31 public:
32
33     NewGUI ();
34     virtual ~NewGUI ();
35     virtual void init ();
36     virtual void update (double delta_time_sec);
37     virtual void display (const string &name);
38
39     virtual void setCurrentWidget (FGDialog * widget);
40     virtual FGDialog * getCurrentWidget ();
41
42     virtual FGMenuBar * getMenuBar ();
43
44
45 private:
46
47     void readDir (const char * path);
48
49     FGMenuBar * _menubar;
50     FGDialog * _current_widget;
51     map<string,SGPropertyNode_ptr> _widgets;
52
53 };
54
55
56 #endif // __NEW_GUI_HXX
57
58 // end of new_gui.hxx