]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/font.cpp
Some compilers don't define SIZE_T (e.g. dmc) so use size_t instead.
[wxWidgets.git] / src / msw / font.cpp
index d87bdd0821ea09a08a8174d90c3c935cc1dd7522..059e4bdb59a91d092c0f2ece91b04250a998beab 100644 (file)
 // headers
 // ----------------------------------------------------------------------------
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-    #pragma implementation "font.h"
-#endif
-
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
@@ -29,7 +25,6 @@
 #endif
 
 #ifndef WX_PRECOMP
-    #include "wx/setup.h"
     #include "wx/list.h"
     #include "wx/utils.h"
     #include "wx/app.h"
@@ -108,8 +103,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 +127,7 @@ public:
         Init(info, hFont);
     }
 
-    wxFontRefData(const wxFontRefData& data)
+    wxFontRefData(const wxFontRefData& data) : wxGDIRefData()
     {
         if ( data.m_nativeFontInfoOk )
         {
@@ -165,10 +160,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 +218,7 @@ public:
         else
         {
             m_pointSize = pointSize;
-            m_sizeUsingPixels = FALSE;
+            m_sizeUsingPixels = false;
         }
     }
 
@@ -236,7 +231,7 @@ public:
         else
         {
             m_pixelSize = pixelSize;
-            m_sizeUsingPixels = TRUE;
+            m_sizeUsingPixels = true;
         }
     }
 
@@ -506,16 +501,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)
@@ -571,14 +561,14 @@ void wxNativeFontInfo::SetUnderlined(bool underlined)
     lf.lfUnderline = underlined;
 }
 
-void wxNativeFontInfo::SetFaceName(wxString facename)
+void wxNativeFontInfo::SetFaceName(const wxString& facename)
 {
     wxStrncpy(lf.lfFaceName, facename, WXSIZEOF(lf.lfFaceName));
 }
 
 void wxNativeFontInfo::SetFamily(wxFontFamily family)
 {
-    int ff_family;
+    BYTE ff_family;
     wxString facename;
 
     switch ( family )
@@ -611,11 +601,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 +645,7 @@ void wxNativeFontInfo::SetEncoding(wxFontEncoding encoding)
         }
     }
 
-    lf.lfCharSet = info.charset;
+    lf.lfCharSet = (BYTE)info.charset;
 }
 
 bool wxNativeFontInfo::FromString(const wxString& s)
@@ -762,10 +760,6 @@ wxString wxNativeFontInfo::ToString() const
 // wxFont
 // ----------------------------------------------------------------------------
 
-void wxFont::Init()
-{
-}
-
 bool wxFont::Create(const wxNativeFontInfo& info, WXHFONT hFont)
 {
     UnRef();
@@ -1041,12 +1035,11 @@ 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;
     }
 
     return wxFontBase::IsFixedWidth();
 }
-