diff --git a/src/GUI/new_gui.cxx b/src/GUI/new_gui.cxx index 6be566c65..21c6dca0b 100644 --- a/src/GUI/new_gui.cxx +++ b/src/GUI/new_gui.cxx @@ -42,6 +42,19 @@ NewGUI::init () #endif } +void +NewGUI::bind () +{ + fgTie("/sim/menubar/visibility", this, + &NewGUI::getMenuBarVisible, &NewGUI::setMenuBarVisible); +} + +void +NewGUI::unbind () +{ + fgUntie("/sim/menubar/visibility"); +} + void NewGUI::update (double delta_time_sec) { @@ -75,6 +88,21 @@ NewGUI::getMenuBar () return _menubar; } +bool +NewGUI::getMenuBarVisible () const +{ + return _menubar->isVisible(); +} + +void +NewGUI::setMenuBarVisible (bool visible) +{ + if (visible) + _menubar->show(); + else + _menubar->hide(); +} + void NewGUI::readDir (const char * path) { diff --git a/src/GUI/new_gui.hxx b/src/GUI/new_gui.hxx index 4a7f425ce..75d910a54 100644 --- a/src/GUI/new_gui.hxx +++ b/src/GUI/new_gui.hxx @@ -33,6 +33,8 @@ public: NewGUI (); virtual ~NewGUI (); virtual void init (); + virtual void bind (); + virtual void unbind (); virtual void update (double delta_time_sec); virtual void display (const string &name); @@ -41,6 +43,11 @@ public: virtual FGMenuBar * getMenuBar (); +protected: + + virtual bool getMenuBarVisible () const; + virtual void setMenuBarVisible (bool visible); + private: