]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mgl/settings.cpp
changes to match listctrl.h changes (forgot to commit yesterday, sorry)
[wxWidgets.git] / src / mgl / settings.cpp
index 4e6b6d28f8f162974b3b622c102d60bb81c06f7b..b99f6e5ee5eefb7686157f60d193e2c62c6ca5a2 100644 (file)
 #include "wx/settings.h"
 #include "wx/colour.h"
 #include "wx/font.h"
+#include "wx/module.h"
+
+// ----------------------------------------------------------------------------
+// global data
+// ----------------------------------------------------------------------------
+
+static wxFont *gs_fontDefault = NULL;
+
+class wxSystemSettingsModule : public wxModule
+{
+public:
+    virtual bool OnInit() { return TRUE; }
+    virtual void OnExit()
+    {
+        delete gs_fontDefault;
+        gs_fontDefault = NULL;
+    }
+
+private:
+    DECLARE_DYNAMIC_CLASS(wxSystemSettingsModule)
+};
+
+IMPLEMENT_DYNAMIC_CLASS(wxSystemSettingsModule, wxModule)
+
+
 
 wxColour wxSystemSettings::GetSystemColour(int WXUNUSED(index))
 {
@@ -21,10 +46,25 @@ wxColour wxSystemSettings::GetSystemColour(int WXUNUSED(index))
     return wxColour(0,0,0);
 }
 
-wxFont wxSystemSettings::GetSystemFont(int WXUNUSED(index))
+wxFont wxSystemSettings::GetSystemFont(int index)
 {
+    bool isDefaultRequested = (index == wxSYS_DEFAULT_GUI_FONT);
+
+    if ( isDefaultRequested && gs_fontDefault )
+    {
+        return *gs_fontDefault;
+    }
+
     // FIXME_MGL
-    return wxFont(10, wxSWISS, wxNORMAL, wxNORMAL, FALSE, "Arial");
+    wxFont font(10, wxSWISS, wxNORMAL, wxNORMAL, FALSE, "Arial");
+
+    if ( isDefaultRequested )
+    {
+        // if we got here it means we hadn't cached it yet - do now
+        gs_fontDefault = new wxFont(font);
+    }
+
+    return font;
 }
 
 int wxSystemSettings::GetSystemMetric(int WXUNUSED(index))