]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/font.cpp
Applied patch [ 1776951 ] wxSizer::GetContainingWindow fails for nested sizers
[wxWidgets.git] / src / os2 / font.cpp
index f4077c70f81b6a4e9b3cb56aebac038c07f03257..4ed240007ce5cbb5e45fa9581e478c58cb9d1b74 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        font.cpp
+// Name:        src/os2/font.cpp
 // Purpose:     wxFont class
 // Author:      David Webster
 // Modified by:
 // headers
 // ----------------------------------------------------------------------------
 
+#include "wx/font.h"
+
 #ifndef WX_PRECOMP
     #include <stdio.h>
-    #include "wx/setup.h"
     #include "wx/list.h"
     #include "wx/utils.h"
     #include "wx/app.h"
-    #include "wx/font.h"
     #include "wx/log.h"
 #endif // WX_PRECOMP
 
@@ -51,7 +51,7 @@ class WXDLLEXPORT wxFontRefData: public wxGDIRefData
 public:
     wxFontRefData()
     {
-        Init(-1, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, FALSE,
+        Init(-1, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false,
              wxEmptyString, wxFONTENCODING_DEFAULT);
     }
 
@@ -196,12 +196,13 @@ public:
             m_nWeight = nWeight;
     }
 
-    inline void SetFaceName(const wxString& sFaceName)
+    inline bool SetFaceName(const wxString& sFaceName)
     {
         if (m_bNativeFontInfoOk)
-            m_vNativeFontInfo.SetFaceName(sFaceName);
+            return m_vNativeFontInfo.SetFaceName(sFaceName);
         else
             m_sFaceName = sFaceName;
+        return true;
     }
 
     inline void SetUnderlined(bool bUnderlined)
@@ -296,6 +297,8 @@ protected:
     bool                            m_bInternalPS; // Internally generated PS?
 }; // end of CLASS wxFontRefData
 
+#define M_FONTDATA ((wxFontRefData*)m_refData)
+
 // ============================================================================
 // implementation
 // ============================================================================
@@ -324,10 +327,10 @@ void wxFontRefData::Init(
     m_vEncoding   = vEncoding;
     m_hFont       = 0;
 
-    m_bNativeFontInfoOk = FALSE;
+    m_bNativeFontInfoOk = false;
 
     m_nFontId     = 0;
-    m_bTemporary  = FALSE;
+    m_bTemporary  = false;
     m_pFM         = (PFONTMETRICS)NULL;
     m_hPS         = NULLHANDLE;
     m_nNumFonts   = 0;
@@ -360,7 +363,7 @@ void wxFontRefData::Init(
         m_hPS = (HPS)hPS;
 
     m_nFontId     = 0;
-    m_bTemporary  = FALSE;
+    m_bTemporary  = false;
     m_pFM         = (PFONTMETRICS)NULL;
     m_nNumFonts   = 0;
 } // end of wxFontRefData::Init
@@ -690,11 +693,12 @@ void wxNativeFontInfo::SetUnderlined(
         fa.fsSelection |= FATTR_SEL_UNDERSCORE;
 } // end of wxNativeFontInfo::SetUnderlined
 
-void wxNativeFontInfo::SetFaceName(
-  wxString                          sFacename
+bool wxNativeFontInfo::SetFaceName(
+  const wxString&                   sFacename
 )
 {
     wxStrncpy((wxChar*)fa.szFacename, sFacename, WXSIZEOF(fa.szFacename));
+    return true;
 } // end of wxNativeFontInfo::SetFaceName
 
 void wxNativeFontInfo::SetFamily(
@@ -783,56 +787,56 @@ bool wxNativeFontInfo::FromString( const wxString& rsStr )
     wxString                        sToken = vTokenizer.GetNextToken();
 
     if (sToken != _T('0'))
-        return FALSE;
+        return false;
 
     sToken = vTokenizer.GetNextToken();
     if (!sToken.ToLong(&lVal))
-        return FALSE;
+        return false;
     fm.lEmHeight = lVal;
 
     sToken = vTokenizer.GetNextToken();
     if (!sToken.ToLong(&lVal))
-        return FALSE;
+        return false;
     fa.lAveCharWidth = lVal;
 
     sToken = vTokenizer.GetNextToken();
     if (!sToken.ToLong(&lVal))
-        return FALSE;
+        return false;
     fa.fsSelection = (USHORT)lVal;
 
     sToken = vTokenizer.GetNextToken();
     if (!sToken.ToLong(&lVal))
-        return FALSE;
+        return false;
     fa.fsType = (USHORT)lVal;
 
     sToken = vTokenizer.GetNextToken();
     if (!sToken.ToLong(&lVal))
-        return FALSE;
+        return false;
     fa.fsFontUse = (USHORT)lVal;
 
     sToken = vTokenizer.GetNextToken();
     if (!sToken.ToLong(&lVal))
-        return FALSE;
+        return false;
     fa.idRegistry = (USHORT)lVal;
 
     sToken = vTokenizer.GetNextToken();
     if (!sToken.ToLong(&lVal))
-        return FALSE;
+        return false;
     fa.usCodePage = (USHORT)lVal;
 
     sToken = vTokenizer.GetNextToken();
     if (!sToken.ToLong(&lVal))
-        return FALSE;
+        return false;
     fa.lMatch = lVal;
 
     sToken = vTokenizer.GetNextToken();
     if (!sToken.ToLong(&lVal))
-        return FALSE;
+        return false;
     fn.usWeightClass = (USHORT)lVal;
 
     sToken = vTokenizer.GetNextToken();
     if(!sToken)
-        return FALSE;
+        return false;
     wxStrcpy((wxChar*)fa.szFacename, sToken.c_str());
     return true;
 } // end of wxNativeFontInfo::FromString
@@ -853,7 +857,7 @@ wxString wxNativeFontInfo::ToString() const
                 fa.usCodePage,
                 fa.lMatch,
                 fn.usWeightClass,
-                fa.szFacename);
+                (char *)fa.szFacename);
     return sStr;
 } // end of wxNativeFontInfo::ToString
 
@@ -861,10 +865,6 @@ wxString wxNativeFontInfo::ToString() const
 // wxFont
 // ----------------------------------------------------------------------------
 
-void wxFont::Init()
-{
-} // end of wxFont::Init
-
 bool wxFont::Create( const wxNativeFontInfo& rInfo,
                      WXHFONT hFont )
 {
@@ -950,7 +950,7 @@ bool wxFont::FreeResource( bool WXUNUSED(bForce) )
     return false;
 } // end of wxFont::FreeResource
 
-WXHANDLE wxFont::GetResourceHandle()
+WXHANDLE wxFont::GetResourceHandle() const
 {
     return GetHFONT();
 } // end of wxFont::GetResourceHandle
@@ -1028,15 +1028,17 @@ void wxFont::SetWeight(
     RealizeResource();
 } // end of wxFont::SetWeight
 
-void wxFont::SetFaceName(
+bool wxFont::SetFaceName(
   const wxString&                   rsFaceName
 )
 {
     Unshare();
 
-    M_FONTDATA->SetFaceName(rsFaceName);
+    bool refdataok = M_FONTDATA->SetFaceName(rsFaceName);
 
     RealizeResource();
+
+    return refdataok && wxFontBase::SetFaceName(rsFaceName);
 } // end of wxFont::SetFaceName
 
 void wxFont::SetUnderlined(
@@ -1108,14 +1110,14 @@ int wxFont::GetWeight() const
 
 bool wxFont::GetUnderlined() const
 {
-    wxCHECK_MSG( Ok(), FALSE, wxT("invalid font") );
+    wxCHECK_MSG( Ok(), false, wxT("invalid font") );
 
     return M_FONTDATA->GetUnderlined();
 } // end of wxFont::GetUnderlined
 
 wxString wxFont::GetFaceName() const
 {
-    wxCHECK_MSG( Ok(), wxT(""), wxT("invalid font") );
+    wxCHECK_MSG( Ok(), wxEmptyString, wxT("invalid font") );
 
     return M_FONTDATA->GetFaceName();
 } // end of wxFont::GetFaceName
@@ -1136,19 +1138,14 @@ const wxNativeFontInfo* wxFont::GetNativeFontInfo() const
 //
 // Internal use only method to set the FONTMETRICS array
 //
-void wxFont::SetFM(
-  PFONTMETRICS                      pFM
-, int                               nNumFonts
-)
+void wxFont::SetFM( PFONTMETRICS pFM, int nNumFonts )
 {
     M_FONTDATA->SetFM(pFM);
     M_FONTDATA->SetNumFonts(nNumFonts);
 } // end of wxFont::SetFM
 
 
-void wxFont::SetPS(
-  HPS                               hPS
-)
+void wxFont::SetPS( HPS hPS )
 {
     Unshare();