]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/fontcmn.cpp
don't inherit the controls colours from the parent - at least for the background...
[wxWidgets.git] / src / common / fontcmn.cpp
index d0b940a5c176e75d1b5f8af64946a4ce84cd8bdc..50b3b19db8f602d46f719a08934e6f04f634fe7a 100644 (file)
 // ----------------------------------------------------------------------------
 
 #ifdef __GNUG__
-    #pragma implementation "fontbase.h"
+#pragma implementation "fontbase.h"
 #endif
 
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
-    #pragma hdrstop
+#pragma hdrstop
 #endif
 
 #ifndef WX_PRECOMP
-    #include "wx/font.h"
+#include "wx/font.h"
+#include "wx/intl.h"
 #endif // WX_PRECOMP
 
 #include "wx/gdicmn.h"
 
 wxFontEncoding wxFontBase::ms_encodingDefault = wxFONTENCODING_SYSTEM;
 
+/* static */
+void wxFontBase::SetDefaultEncoding(wxFontEncoding encoding)
+{
+    // GetDefaultEncoding() should return something != wxFONTENCODING_DEFAULT
+    // and, besides, using this value here doesn't make any sense
+    wxCHECK_RET( encoding != wxFONTENCODING_DEFAULT,
+                 _T("can't set default encoding to wxFONTENCODING_DEFAULT") );
+
+    ms_encodingDefault = encoding;
+}
+
+wxFontBase::~wxFontBase()
+{
+    // this destructor is required for Darwin
+}
+
 /* static */
 wxFont *wxFontBase::New(int size,
                         int family,
@@ -76,13 +93,18 @@ wxFont *wxFontBase::New(const wxString& strNativeFontDesc)
     return New(fontInfo);
 }
 
+bool wxFontBase::IsFixedWidth() const
+{
+    return GetFamily() == wxFONTFAMILY_TELETYPE;
+}
+
 wxNativeFontInfo *wxFontBase::GetNativeFontInfo() const
 {
 #ifdef wxNO_NATIVE_FONTINFO
     wxNativeFontInfo *fontInfo = new wxNativeFontInfo();
 
     fontInfo->SetPointSize(GetPointSize());
-    fontInfo->SetFamily(GetFamily());
+    fontInfo->SetFamily((wxFontFamily)GetFamily());
     fontInfo->SetStyle((wxFontStyle)GetStyle());
     fontInfo->SetWeight((wxFontWeight)GetWeight());
     fontInfo->SetUnderlined(GetUnderlined());
@@ -256,7 +278,7 @@ bool wxNativeFontInfo::FromString(const wxString& s)
     token = tokenizer.GetNextToken();
     if ( !token.ToLong(&l) )
         return FALSE;
-    family = (int)l;
+    family = (wxFontFamily)l;
 
     token = tokenizer.GetNextToken();
     if ( !token.ToLong(&l) )
@@ -338,6 +360,11 @@ wxString wxNativeFontInfo::GetFaceName() const
     return faceName;
 }
 
+wxFontFamily wxNativeFontInfo::GetFamily() const
+{
+    return family;
+}
+
 wxFontEncoding wxNativeFontInfo::GetEncoding() const
 {
     return encoding;
@@ -365,7 +392,12 @@ void wxNativeFontInfo::SetUnderlined(bool underlined_)
 
 void wxNativeFontInfo::SetFaceName(wxString facename_)
 {
-    facename = facename_;
+    faceName = facename_;
+}
+
+void wxNativeFontInfo::SetFamily(wxFontFamily family_)
+{
+    family = family_;
 }
 
 void wxNativeFontInfo::SetEncoding(wxFontEncoding encoding_)
@@ -380,7 +412,7 @@ void wxNativeFontInfo::SetEncoding(wxFontEncoding encoding_)
 // format there anyhow (but there is a well-defined standard for X11 fonts used
 // by wxGTK and wxMotif)
 
-#if defined(wxNO_NATIVE_FONTINFO) || defined(__WXMSW__)
+#if defined(wxNO_NATIVE_FONTINFO) || defined(__WXMSW__) || defined (__WXPM__)
 
 wxString wxNativeFontInfo::ToUserString() const
 {
@@ -439,11 +471,13 @@ wxString wxNativeFontInfo::ToUserString() const
         desc << _T(' ') << size;
     }
 
+#if wxUSE_FONTMAP
     wxFontEncoding enc = GetEncoding();
     if ( enc != wxFONTENCODING_DEFAULT && enc != wxFONTENCODING_SYSTEM )
     {
         desc << _T(' ') << wxTheFontMapper->GetEncodingName(enc);
     }
+#endif // wxUSE_FONTMAP
 
     return desc;
 }
@@ -460,7 +494,10 @@ bool wxNativeFontInfo::FromUserString(const wxString& s)
 
     wxString face;
     unsigned long size;
+
+#if wxUSE_FONTMAP
     wxFontEncoding encoding;
+#endif // wxUSE_FONTMAP
 
     while ( tokenizer.HasMoreTokens() )
     {
@@ -490,11 +527,13 @@ bool wxNativeFontInfo::FromUserString(const wxString& s)
         {
             SetPointSize(size);
         }
+#if wxUSE_FONTMAP
         else if ( (encoding = wxTheFontMapper->CharsetToEncoding(token, FALSE))
                     != wxFONTENCODING_DEFAULT )
         {
             SetEncoding(encoding);
         }
+#endif // wxUSE_FONTMAP
         else // assume it is the face name
         {
             if ( !face.empty() )
@@ -527,5 +566,5 @@ bool wxNativeFontInfo::FromUserString(const wxString& s)
     return TRUE;
 }
 
-#endif // generic or wxMSW
+#endif // generic or wxMSW or wxOS2