]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/settings.cpp
removed mpthread and added thread.cpp and tglbutton.cpp
[wxWidgets.git] / src / msw / settings.cpp
index a2c3447c996d0b1b8ab90ca095a51c1e5c22acfd..bad418ac1e2dbcc459b4b5785d7770800c6d8c12 100644 (file)
@@ -249,22 +249,24 @@ wxFont wxCreateFontFromStockObject(int index)
 
 wxFont wxSystemSettingsNative::GetFont(wxSystemFont index)
 {
-#ifndef __WXWINCE__
-    // this one is special: we don't get it from GetStockObject()
-    if ( index == wxSYS_ICONTITLE_FONT )
+#ifdef __WXWINCE__
+    // under CE only a single SYSTEM_FONT exists
+    index;
+
+    if ( !gs_fontDefault )
     {
-        LOGFONT lf;
-        SystemParametersInfo(SPI_GETICONTITLELOGFONT, sizeof(lf), &lf, 0);
-        return wxCreateFontFromLogFont(&lf);
+        gs_fontDefault = new wxFont(wxCreateFontFromStockObject(SYSTEM_FONT));
     }
-#endif // __WXWINCE__
 
+    return *gs_fontDefault;
+#else // !__WXWINCE__
     // wxWindow ctor calls GetSystemFont(wxSYS_DEFAULT_GUI_FONT) so we're
-    // called fairly often - this is why we cache this particular font
-    bool isDefaultRequested = index == wxSYS_DEFAULT_GUI_FONT;
-    if ( isDefaultRequested && gs_fontDefault )
+    // called fairly often -- this is why we cache this particular font
+    const bool isDefaultRequested = index == wxSYS_DEFAULT_GUI_FONT;
+    if ( isDefaultRequested )
     {
-        return *gs_fontDefault;
+        if ( gs_fontDefault )
+            return *gs_fontDefault;
     }
 
     wxFont font = wxCreateFontFromStockObject(index);
@@ -276,6 +278,7 @@ wxFont wxSystemSettingsNative::GetFont(wxSystemFont index)
     }
 
     return font;
+#endif // __WXWINCE__/!__WXWINCE__
 }
 
 // ----------------------------------------------------------------------------
@@ -415,3 +418,60 @@ bool wxSystemSettingsNative::HasFeature(wxSystemFeature index)
             return FALSE;
     }
 }
+
+// ----------------------------------------------------------------------------
+// function from wx/msw/wrapcctl.h: there is really no other place for it...
+// ----------------------------------------------------------------------------
+
+#if wxUSE_LISTCTRL || wxUSE_TREECTRL
+
+extern wxFont wxGetCCDefaultFont()
+{
+#ifndef __WXWINCE__
+    // under the systems enumerated below (anything released after Win98), the
+    // default font used for the common controls seems to be the desktop font
+    // which is also used for the icon titles and not the stock default GUI
+    // font
+    bool useIconFont;
+    int verMaj, verMin;
+    switch ( wxGetOsVersion(&verMaj, &verMin) )
+    {
+        case wxWIN95:
+            // 4.10 is Win98
+            useIconFont = verMin == 4 && verMin >= 10;
+            break;
+
+        case wxWINDOWS_NT:
+            // 5.0 is Win2k
+            useIconFont = verMaj >= 5;
+            break;
+
+        default:
+            useIconFont = false;
+    }
+
+    if ( useIconFont )
+    {
+        LOGFONT lf;
+        if ( ::SystemParametersInfo
+               (
+                    SPI_GETICONTITLELOGFONT,
+                    sizeof(lf),
+                    &lf,
+                    0
+               ) )
+        {
+            return wxFont(wxCreateFontFromLogFont(&lf));
+        }
+        else
+        {
+            wxLogLastError(_T("SystemParametersInfo(SPI_GETICONTITLELOGFONT"));
+        }
+    }
+#endif // __WXWINCE__
+
+    // fall back to the default font for the normal controls
+    return wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT);
+}
+
+#endif // wxUSE_LISTCTRL || wxUSE_TREECTRL