]> git.mxchange.org Git - flightgear.git/blob - src/GUI/new_gui.hxx
75d910a541bc1240693a12d8b15ebfeef5e12ded
[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 bind ();
37     virtual void unbind ();
38     virtual void update (double delta_time_sec);
39     virtual void display (const string &name);
40
41     virtual void setCurrentWidget (FGDialog * widget);
42     virtual FGDialog * getCurrentWidget ();
43
44     virtual FGMenuBar * getMenuBar ();
45
46 protected:
47
48     virtual bool getMenuBarVisible () const;
49     virtual void setMenuBarVisible (bool visible);
50
51
52 private:
53
54     void readDir (const char * path);
55
56     FGMenuBar * _menubar;
57     FGDialog * _current_widget;
58     map<string,SGPropertyNode_ptr> _widgets;
59
60 };
61
62
63 #endif // __NEW_GUI_HXX
64
65 // end of new_gui.hxx