#ifndef __NEW_GUI_HXX #define __NEW_GUI_HXX 1 #ifndef __cplusplus # error This library requires C++ #endif #include #include // for SG_USING_STD #include #include SG_USING_STD(vector); #include SG_USING_STD(map); #include
class NewGUI : public FGSubsystem { public: NewGUI (); virtual ~NewGUI (); virtual void init (); virtual void update (double delta_time_sec); virtual void display (const string &name); virtual void updateProperties (); virtual void applyProperties (); virtual void closeActiveObject (); private: puObject * makeObject (SGPropertyNode * props, int parentWidth, int parentHeight); void setupObject (puObject * object, SGPropertyNode * props); void setupGroup (puGroup * group, SGPropertyNode * props, int width, int height, bool makeFrame = false); map _objects; puObject * _activeObject; struct PropertyObject { PropertyObject (puObject * object, SGPropertyNode_ptr node); puObject * object; SGPropertyNode_ptr node; }; vector _propertyObjects; }; #endif // __NEW_GUI_HXX