// Modified by:
// Created: 20.09.99
// RCS-ID: $Id$
-// Copyright: (c) wxWindows team
-// Licence: wxWindows license
+// Copyright: (c) wxWidgets team
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// ============================================================================
// headers
// ----------------------------------------------------------------------------
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma implementation "fontbase.h"
#endif
#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"
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);
wxString wxFontBase::GetNativeFontInfoDesc() const
{
wxString fontDesc;
- wxNativeFontInfo *fontInfo = GetNativeFontInfo();
+ const wxNativeFontInfo *fontInfo = GetNativeFontInfo();
if ( fontInfo )
{
fontDesc = fontInfo->ToString();
- delete fontInfo;
}
return fontDesc;
wxString wxFontBase::GetNativeFontInfoUserDesc() const
{
wxString fontDesc;
- wxNativeFontInfo *fontInfo = GetNativeFontInfo();
+ const wxNativeFontInfo *fontInfo = GetNativeFontInfo();
if ( fontInfo )
{
fontDesc = fontInfo->ToUserString();
- delete fontInfo;
}
return fontDesc;
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
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;
}
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") )
{
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);
SetFaceName(face);
}
- return TRUE;
+ return true;
}
#endif // generic or wxMSW or wxOS2