]> git.mxchange.org Git - flightgear.git/blobdiff - src/GUI/menubar.cxx
- Added ultra-light traffic is now a separate traffic class that can have its
[flightgear.git] / src / GUI / menubar.cxx
index db26c919db139919c82b29bb1ab07b6a0b0e6c84..51ce861ea7a2276d4160e3b8b3eb2bea2ac62c7d 100644 (file)
@@ -7,10 +7,8 @@
 #include <plib/pu.h>
 #include <simgear/debug/logstream.hxx>
 
-#include <Autopilot/auto_gui.hxx>
 #include <Input/input.hxx>
 #include <Main/globals.hxx>
-#include <Main/fg_props.hxx>
 
 #include "new_gui.hxx"
 #include "menubar.hxx"
@@ -56,56 +54,6 @@ do_print_dialog (const SGPropertyNode * arg)
 }
 #endif
 
-extern void prop_pickerView (puObject *);
-static bool
-do_properties_dialog (const SGPropertyNode * arg)
-{
-    prop_pickerView(0);
-    return true;
-}
-
-extern void AddWayPoint (puObject *);
-static bool
-do_ap_add_waypoint_dialog (const SGPropertyNode * arg)
-{
-    AddWayPoint(0);
-    return true;
-}
-
-extern void PopWayPoint (puObject *);
-static bool
-do_ap_pop_waypoint_dialog (const SGPropertyNode * arg)
-{
-    PopWayPoint(0);
-    return true;
-}
-
-extern void ClearRoute (puObject *);
-static bool
-do_ap_clear_route_dialog (const SGPropertyNode * arg)
-{
-    ClearRoute(0);
-    return true;
-}
-
-#if 0
-extern void fgAPAdjust (puObject *);
-static bool
-do_ap_adjust_dialog (const SGPropertyNode * arg)
-{
-    fgAPAdjust(0);
-    return true;
-}
-#endif
-
-extern void fgLatLonFormatToggle (puObject *);
-static bool
-do_lat_lon_format_dialog (const SGPropertyNode * arg)
-{
-    fgLatLonFormatToggle(0);
-    return true;
-}
-
 extern void helpCb (puObject *);
 static bool
 do_help_dialog (const SGPropertyNode * arg)
@@ -125,11 +73,6 @@ static struct {
 #if defined( WIN32 ) && !defined( __CYGWIN__) && !defined(__MINGW32__)
     { "old-print-dialog", do_print_dialog },
 #endif
-    { "old-properties-dialog", do_properties_dialog },
-    { "old-ap-add-waypoint-dialog", do_ap_add_waypoint_dialog },
-    { "old-ap-pop-waypoint-dialog", do_ap_pop_waypoint_dialog },
-    { "old-ap-clear-route-dialog", do_ap_clear_route_dialog },
-    { "old-lat-lon-format-dialog", do_lat_lon_format_dialog },
     { "old-help-dialog", do_help_dialog },
     { 0, 0 }
 };
@@ -213,7 +156,7 @@ void
 FGMenuBar::fireItem (puObject * item)
 {
     const char * name = item->getLegend();
-    vector<FGBinding *> &bindings = _bindings[name];
+    vector<SGBinding *> &bindings = _bindings[name];
     int nBindings = bindings.size();
 
     for (int i = 0; i < nBindings; i++)
@@ -245,13 +188,13 @@ FGMenuBar::make_menu (SGPropertyNode * node)
 
         for (unsigned int k = 0; k < bindings.size(); k++) {
             unsigned int m = 0;
-            SGPropertyNode *binding;
+            SGPropertyNode_ptr binding;
             while (dest->getChild("binding", m))
                 m++;
 
             binding = dest->getChild("binding", m, true);
             copyProperties(bindings[k], binding);
-            _bindings[items[j]].push_back(new FGBinding(binding));
+            _bindings[items[j]].push_back(new SGBinding(binding, globals->get_props()));
         }
     }
 
@@ -340,7 +283,7 @@ FGMenuBar::destroy_menubar ()
 
                                 // Delete all those bindings
     SG_LOG(SG_GENERAL, SG_INFO, "Deleting bindings");
-    map<string,vector<FGBinding *> >::iterator it;
+    map<string,vector<SGBinding *> >::iterator it;
     it = _bindings.begin();
     for (it = _bindings.begin(); it != _bindings.end(); it++) {
         SG_LOG(SG_GENERAL, SG_INFO, "Deleting bindings for " << it->first);
@@ -423,12 +366,13 @@ FGMenuBar::add_enabled_listener(SGPropertyNode * node)
 bool
 FGMenuBar::enable_item(const SGPropertyNode * node, bool state)
 {
-    if (!node || _objects.find(node->getPath()) == _objects.end()) {
-        SG_LOG(SG_GENERAL, SG_WARN, "Trying to enable/disable "
-            "non-existent menu item");
+    const char *path = node->getPath();
+    if (_objects.find(path) == _objects.end()) {
+        SG_LOG(SG_GENERAL, SG_ALERT, "Trying to enable/disable "
+            "non-existent menu item for node `" << path << '\'');
         return false;
     }
-    puObject *object = _objects[node->getPath()];
+    puObject *object = _objects[path];
     if (state)
         object->activate();
     else