]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mgl/settings.cpp
DJGPP compilation
[wxWidgets.git] / src / mgl / settings.cpp
index 4e6b6d28f8f162974b3b622c102d60bb81c06f7b..a4142e571a3700bdfe2e3f2565e07a19309b583a 100644 (file)
 #pragma implementation "settings.h"
 #endif
 
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
 #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 +53,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))