From 688bcb579fceb155b79a0b24596bebbcdf629e2e Mon Sep 17 00:00:00 2001 From: mfranz Date: Fri, 9 Dec 2005 10:43:09 +0000 Subject: [PATCH] final cosmetics (s/_entries/_objects/ and comments) --- src/GUI/menubar.cxx | 52 ++++++++++++++++++++++----------------------- src/GUI/menubar.hxx | 4 +++- 2 files changed, 29 insertions(+), 27 deletions(-) diff --git a/src/GUI/menubar.cxx b/src/GUI/menubar.cxx index 6b229b510..285fc5eb4 100644 --- a/src/GUI/menubar.cxx +++ b/src/GUI/menubar.cxx @@ -351,27 +351,6 @@ FGMenuBar::destroy_menubar () SG_LOG(SG_GENERAL, SG_INFO, "Done."); } -struct EnabledListener : SGPropertyChangeListener { - void valueChanged(SGPropertyNode* node) { - NewGUI * gui = (NewGUI *)globals->get_subsystem("gui"); - if (!gui) - return; - FGMenuBar *menubar = gui->getMenuBar(); - if (menubar) - menubar->enable_item(node->getParent(), node->getBoolValue()); - } -}; - -void -FGMenuBar::add_enabled_listener(SGPropertyNode * node) -{ - if (!node->hasValue("enabled")) - node->setBoolValue("enabled", true); - - enable_item(node, node->getBoolValue("enabled")); - node->getNode("enabled")->addChangeListener(new EnabledListener()); -} - void FGMenuBar::make_map(SGPropertyNode * node) { @@ -391,7 +370,7 @@ FGMenuBar::make_map(SGPropertyNode * node) continue; } - _entries[menu->getPath()] = obj; + _objects[menu->getPath()] = obj; add_enabled_listener(menu); puGroup *popup = (puGroup *)obj->getUserData(); @@ -399,7 +378,7 @@ FGMenuBar::make_map(SGPropertyNode * node) continue; // the entries are for some reason reversed (last first), and we - // don't know yet how many will be usable; so we collect first + // don't know yet how many there will be; so we collect first vector e; for (puObject *me = popup->getFirstChild(); me; me = me->getNextObject()) e.push_back(me); @@ -411,22 +390,43 @@ FGMenuBar::make_map(SGPropertyNode * node) << menu->getPath() << "/item[" << i << ']'); continue; } - _entries[item->getPath()] = e[i]; + _objects[item->getPath()] = e[i]; add_enabled_listener(item); } menu_index++; } } +struct EnabledListener : SGPropertyChangeListener { + void valueChanged(SGPropertyNode *node) { + NewGUI * gui = (NewGUI *)globals->get_subsystem("gui"); + if (!gui) + return; + FGMenuBar *menubar = gui->getMenuBar(); + if (menubar) + menubar->enable_item(node->getParent(), node->getBoolValue()); + } +}; + +void +FGMenuBar::add_enabled_listener(SGPropertyNode * node) +{ + if (!node->hasValue("enabled")) + node->setBoolValue("enabled", true); + + enable_item(node, node->getBoolValue("enabled")); + node->getNode("enabled")->addChangeListener(new EnabledListener()); +} + bool FGMenuBar::enable_item(const SGPropertyNode * node, bool state) { - if (!node || _entries.find(node->getPath()) == _entries.end()) { + if (!node || _objects.find(node->getPath()) == _objects.end()) { SG_LOG(SG_GENERAL, SG_WARN, "Trying to enable/disable " "non-existent menu item"); return false; } - puObject *object = _entries[node->getPath()]; + puObject *object = _objects[node->getPath()]; if (state) object->activate(); else diff --git a/src/GUI/menubar.hxx b/src/GUI/menubar.hxx index a22a77f58..f50222b4f 100644 --- a/src/GUI/menubar.hxx +++ b/src/GUI/menubar.hxx @@ -95,6 +95,7 @@ public: */ void destroy_menubar (); + /** * Disable/enable menu titles and entries */ @@ -133,7 +134,8 @@ private: vector _char_arrays; vector _callback_arrays; - map _entries; + // A map for {menu node path}->puObject translation. + map _objects; }; #endif // __MENUBAR_HXX -- 2.39.5