]> git.mxchange.org Git - flightgear.git/blobdiff - src/GUI/new_gui.hxx
ok, so the old ~FGFontCache() was useless. But at least it didn't call
[flightgear.git] / src / GUI / new_gui.hxx
index 59425d86d4f7055b95a83e9afc57bf450bdae947..352024a66b07511f153e3b4602dee0962979b54b 100644 (file)
@@ -143,7 +143,7 @@ public:
      * @param name The name of the dialog box.
      * @return node pointer if the dialog was found, zero otherwise.
      */
-    virtual SGPropertyNode_ptr getDialog (const string &name);
+    virtual SGPropertyNode_ptr getDialogProperties (const string &name);
 
     /**
      * Return a pointer to the current menubar.
@@ -165,6 +165,15 @@ public:
      */
     virtual FGDialog * getActiveDialog ();
 
+
+    /**
+     * Get the named dialog if active.
+     *
+     * @return The named dialog, or 0 if it isn't active.
+     */
+    virtual FGDialog * getDialog (const string &name);
+
+
     virtual FGColor *getColor (const char * name) const {
         _citt_t it = _colors.find(name);
         return (it != _colors.end()) ? it->second : NULL;
@@ -177,15 +186,8 @@ public:
     virtual puFont *getDefaultFont() { return _font; }
 
 
-    /**
-     * menu wide font cache, accessible from other classes as well.
-     */
-    FGFontCache *get_fontcache() { return _fontcache; }
-
 protected:
 
-    FGFontCache * _fontcache;
-
     /**
      * Test if the menubar is visible.
      *
@@ -293,7 +295,7 @@ class FGFontCache {
 private:
     struct fnt {
         fnt(puFont *pu = 0) : pufont(pu), texfont(0) {}
-        ~fnt() { delete pufont; delete texfont; }
+        ~fnt() { if (texfont) { delete pufont; delete texfont; } }
         puFont *pufont;
         fntTexFont *texfont;
     };
@@ -301,6 +303,8 @@ private:
 
     map<const string,fnt *> _fonts;
     typedef map<const string,fnt *>::const_iterator _itt_t;
+    bool _initialized;
+    struct fnt *getfnt(const char *name, float size, float slant);
 
 public:
     FGFontCache();
@@ -308,6 +312,8 @@ public:
 
     puFont *get(const char *name, float size=15.0, float slant=0.0);
     puFont *get(SGPropertyNode *node);
+
+    fntTexFont *getTexFont(const char *name, float size=15.0, float slant=0.0);
 };