]> git.saurik.com Git - wxWidgets.git/commitdiff
added wxGetCCDefaultFont() returning the default icon font
authorVadim Zeitlin <vadim@wxwidgets.org>
Thu, 1 Apr 2004 00:09:48 +0000 (00:09 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Thu, 1 Apr 2004 00:09:48 +0000 (00:09 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26524 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/msw/wrapcctl.h
src/msw/settings.cpp

index c8d13f8378555dffbd917686a7698c65aa92bcb2..6c916ffa7f0c800718a389b25c6510d5607e7428 100644 (file)
 inline void wxSetCCUnicodeFormat(HWND hwnd)
 {
 #ifndef __WXWINCE__
-    SendMessage(hwnd, CCM_SETUNICODEFORMAT,
-#if wxUSE_UNICODE
-                TRUE
-#else
-                FALSE
-#endif
-                , 0);
-#endif
-  // __WXWINCE__
+    ::SendMessage(hwnd, CCM_SETUNICODEFORMAT, wxUSE_UNICODE, 0);
+#endif // __WXWINCE__
 }
 
+// Return the default font for the common controls
+//
+// this is implemented in msw/settings.cpp
+extern wxFont wxGetCCDefaultFont();
+
 #endif // _WX_MSW_WRAPCCTL_H_
 
index a2c3447c996d0b1b8ab90ca095a51c1e5c22acfd..633f9bd50cd254b62e856f9bf4b65e5eab318b36 100644 (file)
@@ -249,22 +249,13 @@ 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 )
-    {
-        LOGFONT lf;
-        SystemParametersInfo(SPI_GETICONTITLELOGFONT, sizeof(lf), &lf, 0);
-        return wxCreateFontFromLogFont(&lf);
-    }
-#endif // __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);
@@ -415,3 +406,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