X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/01cb1c26171efc494b94d77e4351362bb0eb2e7d..93bfd481b7f2f0fec50dd79fcab52374aa59ebbb:/src/common/fontcmn.cpp diff --git a/src/common/fontcmn.cpp b/src/common/fontcmn.cpp index df7590c806..7a5e05ca0c 100644 --- a/src/common/fontcmn.cpp +++ b/src/common/fontcmn.cpp @@ -5,8 +5,8 @@ // Modified by: // Created: 20.09.99 // RCS-ID: $Id$ -// Copyright: (c) wxWindows team -// Licence: wxWindows license +// Copyright: (c) wxWidgets team +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// // ============================================================================ @@ -17,7 +17,7 @@ // headers // ---------------------------------------------------------------------------- -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "fontbase.h" #endif @@ -34,6 +34,12 @@ #endif // WX_PRECOMP #include "wx/gdicmn.h" + +#if defined(__WXMSW__) + #include "wx/msw/private.h" // includes windows.h for LOGFONT + #include "wx/msw/winundef.h" +#endif + #include "wx/fontutil.h" // for wxNativeFontInfo #include "wx/fontmap.h" @@ -125,26 +131,7 @@ 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((wxFontFamily)GetFamily()); - fontInfo->SetStyle((wxFontStyle)GetStyle()); - fontInfo->SetWeight((wxFontWeight)GetWeight()); - fontInfo->SetUnderlined(GetUnderlined()); - fontInfo->SetFaceName(GetFaceName()); - fontInfo->SetEncoding(GetEncoding()); - - return fontInfo; -#else - return (wxNativeFontInfo *)NULL; -#endif -} - -void wxFontBase::SetNativeFontInfo(const wxNativeFontInfo& info) +void wxFontBase::DoSetNativeFontInfo(const wxNativeFontInfo& info) { #ifdef wxNO_NATIVE_FONTINFO SetPointSize(info.pointSize); @@ -162,11 +149,10 @@ void wxFontBase::SetNativeFontInfo(const wxNativeFontInfo& info) wxString wxFontBase::GetNativeFontInfoDesc() const { wxString fontDesc; - wxNativeFontInfo *fontInfo = GetNativeFontInfo(); + const wxNativeFontInfo *fontInfo = GetNativeFontInfo(); if ( fontInfo ) { fontDesc = fontInfo->ToString(); - delete fontInfo; } return fontDesc; @@ -175,11 +161,10 @@ wxString wxFontBase::GetNativeFontInfoDesc() const wxString wxFontBase::GetNativeFontInfoUserDesc() const { wxString fontDesc; - wxNativeFontInfo *fontInfo = GetNativeFontInfo(); + const wxNativeFontInfo *fontInfo = GetNativeFontInfo(); if ( fontInfo ) { fontDesc = fontInfo->ToUserString(); - delete fontInfo; } return fontDesc; @@ -299,39 +284,42 @@ bool wxNativeFontInfo::FromString(const wxString& s) token = tokenizer.GetNextToken(); if ( !token.ToLong(&l) ) - return FALSE; + return false; pointSize = (int)l; token = tokenizer.GetNextToken(); if ( !token.ToLong(&l) ) - return FALSE; + return false; family = (wxFontFamily)l; token = tokenizer.GetNextToken(); if ( !token.ToLong(&l) ) - return FALSE; + return false; style = (wxFontStyle)l; token = tokenizer.GetNextToken(); if ( !token.ToLong(&l) ) - return FALSE; + return false; weight = (wxFontWeight)l; token = tokenizer.GetNextToken(); if ( !token.ToLong(&l) ) - return FALSE; + return false; underlined = l != 0; faceName = tokenizer.GetNextToken(); + +#ifndef __WXMAC__ if( !faceName ) - return FALSE; + return false; +#endif token = tokenizer.GetNextToken(); if ( !token.ToLong(&l) ) - return FALSE; + return false; encoding = (wxFontEncoding)l; - return TRUE; + return true; } wxString wxNativeFontInfo::ToString() const @@ -353,11 +341,11 @@ wxString wxNativeFontInfo::ToString() const void wxNativeFontInfo::Init() { - pointSize = wxNORMAL_FONT->GetPointSize(); + pointSize = 0; family = wxFONTFAMILY_DEFAULT; style = wxFONTSTYLE_NORMAL; weight = wxFONTWEIGHT_NORMAL; - underlined = FALSE; + underlined = false; faceName.clear(); encoding = wxFONTENCODING_DEFAULT; } @@ -531,12 +519,12 @@ bool wxNativeFontInfo::FromUserString(const wxString& s) wxString token = tokenizer.GetNextToken(); // normalize it - token.Trim(TRUE).Trim(FALSE).MakeLower(); + token.Trim(true).Trim(false).MakeLower(); // look for the known tokens if ( token == _T("underlined") || token == _("underlined") ) { - SetUnderlined(TRUE); + SetUnderlined(true); } else if ( token == _T("light") || token == _("light") ) { @@ -555,7 +543,7 @@ bool wxNativeFontInfo::FromUserString(const wxString& s) SetPointSize(size); } #if wxUSE_FONTMAP - else if ( (encoding = wxFontMapper::Get()->CharsetToEncoding(token, FALSE)) + else if ( (encoding = wxFontMapper::Get()->CharsetToEncoding(token, false)) != wxFONTENCODING_DEFAULT ) { SetEncoding(encoding); @@ -590,7 +578,7 @@ bool wxNativeFontInfo::FromUserString(const wxString& s) SetFaceName(face); } - return TRUE; + return true; } #endif // generic or wxMSW or wxOS2