]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/font.cpp
don't test for WINVER inside the library, we do all the tests at run-time, not compil...
[wxWidgets.git] / src / msw / font.cpp
index d79b4b74a691bc9b81cffdec94b9e81b999cf1ea..c9f7b35890abc19e053b661beff8ed69ca7625cb 100644 (file)
@@ -108,8 +108,8 @@ public:
     // constructors
     wxFontRefData()
     {
-        Init(-1, wxSize(0, 0), FALSE, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL,
-             wxFONTWEIGHT_NORMAL, FALSE, wxEmptyString,
+        Init(-1, wxSize(0,0), false, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL,
+             wxFONTWEIGHT_NORMAL, false, wxEmptyString,
              wxFONTENCODING_DEFAULT);
     }
 
@@ -132,7 +132,7 @@ public:
         Init(info, hFont);
     }
 
-    wxFontRefData(const wxFontRefData& data)
+    wxFontRefData(const wxFontRefData& data) : wxGDIRefData()
     {
         if ( data.m_nativeFontInfoOk )
         {
@@ -223,7 +223,7 @@ public:
         else
         {
             m_pointSize = pointSize;
-            m_sizeUsingPixels = FALSE;
+            m_sizeUsingPixels = false;
         }
     }
 
@@ -236,7 +236,7 @@ public:
         else
         {
             m_pixelSize = pixelSize;
-            m_sizeUsingPixels = TRUE;
+            m_sizeUsingPixels = true;
         }
     }
 
@@ -506,16 +506,11 @@ wxFontEncoding wxNativeFontInfo::GetEncoding() const
 
 void wxNativeFontInfo::SetPointSize(int pointsize)
 {
-#if wxFONT_SIZE_COMPATIBILITY
-    // Incorrect, but compatible with old wxWidgets behaviour
-    lf.lfHeight = (pointSize*ppInch)/72;
-#else // wxFONT_SIZE_COMPATIBILITY
     // FIXME: using the screen here results in incorrect font size calculation
     //        for printing!
     const int ppInch = ::GetDeviceCaps(ScreenHDC(), LOGPIXELSY);
 
     lf.lfHeight = -(int)((pointsize*((double)ppInch)/72.0) + 0.5);
-#endif // wxFONT_SIZE_COMPATIBILITY/!wxFONT_SIZE_COMPATIBILITY
 }
 
 void wxNativeFontInfo::SetPixelSize(const wxSize& pixelSize)
@@ -578,7 +573,7 @@ void wxNativeFontInfo::SetFaceName(wxString facename)
 
 void wxNativeFontInfo::SetFamily(wxFontFamily family)
 {
-    int ff_family;
+    BYTE ff_family;
     wxString facename;
 
     switch ( family )
@@ -611,11 +606,19 @@ void wxNativeFontInfo::SetFamily(wxFontFamily family)
 
         case wxDEFAULT:
         default:
+        {
+            // We want Windows 2000 or later to have new fonts even MS Shell Dlg
+            // is returned as default GUI font for compatibility
+            int verMaj;
             ff_family = FF_SWISS;
-            facename = _T("MS Sans Serif");
+            if(wxGetOsVersion(&verMaj) == wxWINDOWS_NT && verMaj >= 5)
+                facename = _T("MS Shell Dlg 2");
+            else
+                facename = _T("MS Shell Dlg");
+        }
     }
 
-    lf.lfPitchAndFamily = DEFAULT_PITCH | ff_family;
+    lf.lfPitchAndFamily = (BYTE)(DEFAULT_PITCH) | ff_family;
 
     if ( !wxStrlen(lf.lfFaceName) )
     {
@@ -647,7 +650,7 @@ void wxNativeFontInfo::SetEncoding(wxFontEncoding encoding)
         }
     }
 
-    lf.lfCharSet = info.charset;
+    lf.lfCharSet = (BYTE)info.charset;
 }
 
 bool wxNativeFontInfo::FromString(const wxString& s)