]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/font.cpp
Hopefully fixed library names generated by wx-config for OS/2's PM port.
[wxWidgets.git] / src / msw / font.cpp
index d87bdd0821ea09a08a8174d90c3c935cc1dd7522..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 )
         {
@@ -165,10 +165,10 @@ public:
         return m_nativeFontInfoOk ? m_nativeFontInfo.GetPixelSize()
                                   : m_pixelSize;
     }
-    
+
     bool IsUsingSizeInPixels() const
     {
-        return m_nativeFontInfoOk ? TRUE : m_sizeUsingPixels;
+        return m_nativeFontInfoOk ? true : m_sizeUsingPixels;
     }
 
     int GetFamily() const
@@ -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)
@@ -1041,8 +1044,8 @@ bool wxFont::IsFixedWidth() const
     {
         // the two low-order bits specify the pitch of the font, the rest is
         // family
-        BYTE pitch = M_FONTDATA->GetNativeFontInfo().
-                        lf.lfPitchAndFamily & PITCH_MASK;
+        BYTE pitch =
+            (BYTE)(M_FONTDATA->GetNativeFontInfo().lf.lfPitchAndFamily & PITCH_MASK);
 
         return pitch == FIXED_PITCH;
     }