X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a9249b2eb2a40d8c71f828669045c4ddaa8dc5ff..4e5a4c69c540b430fba8efe5dae1bc1ffd5caeca:/src/common/fontcmn.cpp diff --git a/src/common/fontcmn.cpp b/src/common/fontcmn.cpp index d0b940a5c1..50b3b19db8 100644 --- a/src/common/fontcmn.cpp +++ b/src/common/fontcmn.cpp @@ -18,18 +18,19 @@ // ---------------------------------------------------------------------------- #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" @@ -48,6 +49,22 @@ 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