#include <simgear/structure/subsystem_mgr.hxx>
#include <simgear/misc/sg_path.hxx>
-#include <string.h>
-#include <functional>
#include <vector>
#include <map>
#include <memory> // for auto_ptr on some systems
-
-class SGBinding;
+#include <cstring> // for strcmp in lstr() (in this header, alas)
class FGMenuBar;
class FGDialog;
*/
virtual void init ();
+ virtual void shutdown ();
+
/**
* Reinitialize the GUI subsystem. Reloads all XML dialogs.
*/
virtual void reset (bool reload);
private:
+ void createMenuBarImplementation();
+
struct ltstr
{
bool operator()(const char* s1, const char* s2) const {
std::auto_ptr<FGMenuBar> _menubar;
FGDialog * _active_dialog;
- std::map<std::string,FGDialog *> _active_dialogs;
- std::map<std::string,SGPropertyNode_ptr> _dialog_props;
+ typedef std::map<std::string,FGDialog *> DialogDict;
+ DialogDict _active_dialogs;
+
+ typedef std::map<std::string, SGPath> NamePathDict;
+ // mapping from dialog names to the corresponding XML property list
+ // which defines them
+ NamePathDict _dialog_names;
+
+ // cache of loaded dialog proeprties
+ typedef std::map<std::string,SGPropertyNode_ptr> NameDialogDict;
+ NameDialogDict _dialog_props;
};