]> git.mxchange.org Git - flightgear.git/blobdiff - src/GUI/new_gui.cxx
Remove hard-coded values wherever possible;
[flightgear.git] / src / GUI / new_gui.cxx
index 5f05a8f0ec95ff85303d5cbb0bb81ad46e5476de..c13456068ba39ca860d08ff393669c0e021a3b4c 100644 (file)
 #include "GL/glx.h"
 #endif
 
-#include "menubar.hxx"
-#include "dialog.hxx"
+#include "FGPUIMenuBar.hxx"
+
+#if defined(SG_MAC)
+#include "FGCocoaMenuBar.hxx"
+#endif
+
+#include "FGPUIDialog.hxx"
 #include "FGFontCache.hxx"
 #include "FGColor.hxx"
 
@@ -40,15 +45,18 @@ using std::string;
 
 
 
-NewGUI::NewGUI ()
-    : _menubar(new FGMenuBar),
-      _active_dialog(0)
+NewGUI::NewGUI () :
+  _active_dialog(0)
 {
+#if defined(SG_MAC)
+  _menubar.reset(new FGCocoaMenuBar);
+#else
+  _menubar.reset(new FGPUIMenuBar);
+#endif
 }
 
 NewGUI::~NewGUI ()
 {
-    delete _menubar;
     _dialog_props.clear();
     for (_itt_t it = _colors.begin(); it != _colors.end(); ++it)
         delete it->second;
@@ -80,7 +88,7 @@ void
 NewGUI::reset (bool reload)
 {
     map<string,FGDialog *>::iterator iter;
-    vector<string> dlg;
+    std::vector<string> dlg;
     // close all open dialogs and remember them ...
     for (iter = _active_dialogs.begin(); iter != _active_dialogs.end(); ++iter)
         dlg.push_back(iter->first);
@@ -92,8 +100,9 @@ NewGUI::reset (bool reload)
     setStyle();
 
     unbind();
-    delete _menubar;
-    _menubar = new FGMenuBar;
+#if !defined(SG_MAC)
+    _menubar.reset(new FGPUIMenuBar);
+#endif
 
     if (reload) {
         _dialog_props.clear();
@@ -138,7 +147,7 @@ NewGUI::showDialog (const string &name)
         return false;
     } else {
         if(!_active_dialogs[name])
-            _active_dialogs[name] = new FGDialog(_dialog_props[name]);
+            _active_dialogs[name] = new FGPUIDialog(_dialog_props[name]);
         return true;
     }
 }
@@ -214,7 +223,7 @@ NewGUI::getActiveDialog ()
 FGMenuBar *
 NewGUI::getMenuBar ()
 {
-    return _menubar;
+    return _menubar.get();
 }
 
 bool