// Modified by:
// Created: 01/02/97
// RCS-ID: $Id$
-// Copyright: (c) wxWindows team
+// Copyright: (c) wxWidgets team
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// headers
// ----------------------------------------------------------------------------
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma implementation "font.h"
#endif
#include "wx/app.h"
#include "wx/font.h"
#include "wx/log.h"
+ #include "wx/encinfo.h"
#endif // WX_PRECOMP
#include "wx/msw/private.h"
#if wxUSE_EXTENDED_RTTI
-WX_BEGIN_ENUM( wxFontFamily )
- WX_ENUM_MEMBER( wxDEFAULT )
- WX_ENUM_MEMBER( wxDECORATIVE )
- WX_ENUM_MEMBER( wxROMAN )
- WX_ENUM_MEMBER( wxSCRIPT )
- WX_ENUM_MEMBER( wxSWISS )
- WX_ENUM_MEMBER( wxMODERN )
- WX_ENUM_MEMBER( wxTELETYPE )
-WX_END_ENUM( wxFontFamily )
-
-WX_BEGIN_ENUM( wxFontStyle )
- WX_ENUM_MEMBER( wxNORMAL )
- WX_ENUM_MEMBER( wxITALIC )
- WX_ENUM_MEMBER( wxSLANT )
-WX_END_ENUM( wxFontStyle )
-
-WX_BEGIN_ENUM( wxFontWeight )
- WX_ENUM_MEMBER( wxNORMAL )
- WX_ENUM_MEMBER( wxLIGHT )
- WX_ENUM_MEMBER( wxBOLD )
-WX_END_ENUM( wxFontWeight )
+wxBEGIN_ENUM( wxFontFamily )
+ wxENUM_MEMBER( wxDEFAULT )
+ wxENUM_MEMBER( wxDECORATIVE )
+ wxENUM_MEMBER( wxROMAN )
+ wxENUM_MEMBER( wxSCRIPT )
+ wxENUM_MEMBER( wxSWISS )
+ wxENUM_MEMBER( wxMODERN )
+ wxENUM_MEMBER( wxTELETYPE )
+wxEND_ENUM( wxFontFamily )
+
+wxBEGIN_ENUM( wxFontStyle )
+ wxENUM_MEMBER( wxNORMAL )
+ wxENUM_MEMBER( wxITALIC )
+ wxENUM_MEMBER( wxSLANT )
+wxEND_ENUM( wxFontStyle )
+
+wxBEGIN_ENUM( wxFontWeight )
+ wxENUM_MEMBER( wxNORMAL )
+ wxENUM_MEMBER( wxLIGHT )
+ wxENUM_MEMBER( wxBOLD )
+wxEND_ENUM( wxFontWeight )
IMPLEMENT_DYNAMIC_CLASS_WITH_COPY_XTI(wxFont, wxGDIObject,"wx/font.h")
-WX_BEGIN_PROPERTIES_TABLE(wxFont)
- WX_PROPERTY( Size,int, SetPointSize, GetPointSize, 12 )
- WX_PROPERTY( Family, int , SetFamily, GetFamily, (int)wxDEFAULT ) // wxFontFamily
- WX_PROPERTY( Style, int , SetStyle, GetStyle, (int)wxNORMAL ) // wxFontStyle
- WX_PROPERTY( Weight, int , SetWeight, GetWeight, (int)wxNORMAL ) // wxFontWeight
- WX_PROPERTY( Underlined, bool , SetUnderlined, GetUnderlined, false )
- WX_PROPERTY_SET_BY_REF( Face, wxString , SetFaceName, GetFaceName, )
- WX_PROPERTY( Encoding, wxFontEncoding , SetEncoding, GetEncoding, wxFONTENCODING_DEFAULT )
-WX_END_PROPERTIES_TABLE()
+wxBEGIN_PROPERTIES_TABLE(wxFont)
+ wxPROPERTY( Size,int, SetPointSize, GetPointSize, 12 , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY( Family, int , SetFamily, GetFamily, (int)wxDEFAULT , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // wxFontFamily
+ wxPROPERTY( Style, int , SetStyle, GetStyle, (int)wxNORMAL , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // wxFontStyle
+ wxPROPERTY( Weight, int , SetWeight, GetWeight, (int)wxNORMAL , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // wxFontWeight
+ wxPROPERTY( Underlined, bool , SetUnderlined, GetUnderlined, false , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY( Face, wxString , SetFaceName, GetFaceName, EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+ wxPROPERTY( Encoding, wxFontEncoding , SetEncoding, GetEncoding, wxFONTENCODING_DEFAULT , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
+wxEND_PROPERTIES_TABLE()
-WX_CONSTRUCTOR_6( wxFont , int , Size , int , Family , int , Style , int , Weight , bool , Underlined , wxString , Face )
+wxCONSTRUCTOR_6( wxFont , int , Size , int , Family , int , Style , int , Weight , bool , Underlined , wxString , Face )
-WX_BEGIN_HANDLERS_TABLE(wxFont)
-WX_END_HANDLERS_TABLE()
+wxBEGIN_HANDLERS_TABLE(wxFont)
+wxEND_HANDLERS_TABLE()
#else
- IMPLEMENT_DYNAMIC_CLASS(wxFont, wxGDIObject)
+ IMPLEMENT_DYNAMIC_CLASS(wxFont, wxGDIObject)
#endif
wxFontRefData()
{
Init(-1, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL,
- FALSE, wxEmptyString, wxFONTENCODING_DEFAULT);
+ false, wxEmptyString, wxFONTENCODING_DEFAULT);
}
wxFontRefData(int size,
m_hFont = 0;
- m_nativeFontInfoOk = FALSE;
+ m_nativeFontInfoOk = false;
}
void wxFontRefData::Init(const wxNativeFontInfo& info, WXHFONT hFont)
// to LOGFONT back to HFONT)
m_hFont = hFont;
- m_nativeFontInfoOk = TRUE;
+ m_nativeFontInfoOk = true;
m_nativeFontInfo = info;
// This is the best we can do since we don't have the
// correct information at this point.
if ( !m_nativeFontInfoOk )
{
wxFillLogFont(&m_nativeFontInfo.lf, font);
- m_nativeFontInfoOk = TRUE;
+ m_nativeFontInfoOk = true;
}
HFONT hfont = ::CreateFontIndirect(&m_nativeFontInfo.lf);
{
wxLogLastError(wxT("CreateFont"));
- return FALSE;
+ return false;
}
m_hFont = (WXHFONT)hfont;
- return TRUE;
+ return true;
}
void wxFontRefData::Free()
void wxNativeFontInfo::SetPointSize(int pointsize)
{
#if wxFONT_SIZE_COMPATIBILITY
- // Incorrect, but compatible with old wxWindows behaviour
+ // Incorrect, but compatible with old wxWidgets behaviour
lf.lfHeight = (pointSize*ppInch)/72;
#else // wxFONT_SIZE_COMPATIBILITY
// FIXME: using the screen here results in incorrect font size calculation
// first the version
wxString token = tokenizer.GetNextToken();
if ( token != _T('0') )
- return FALSE;
+ return false;
token = tokenizer.GetNextToken();
if ( !token.ToLong(&l) )
- return FALSE;
+ return false;
lf.lfHeight = l;
token = tokenizer.GetNextToken();
if ( !token.ToLong(&l) )
- return FALSE;
+ return false;
lf.lfWidth = l;
token = tokenizer.GetNextToken();
if ( !token.ToLong(&l) )
- return FALSE;
+ return false;
lf.lfEscapement = l;
token = tokenizer.GetNextToken();
if ( !token.ToLong(&l) )
- return FALSE;
+ return false;
lf.lfOrientation = l;
token = tokenizer.GetNextToken();
if ( !token.ToLong(&l) )
- return FALSE;
+ return false;
lf.lfWeight = l;
token = tokenizer.GetNextToken();
if ( !token.ToLong(&l) )
- return FALSE;
+ return false;
lf.lfItalic = (BYTE)l;
token = tokenizer.GetNextToken();
if ( !token.ToLong(&l) )
- return FALSE;
+ return false;
lf.lfUnderline = (BYTE)l;
token = tokenizer.GetNextToken();
if ( !token.ToLong(&l) )
- return FALSE;
+ return false;
lf.lfStrikeOut = (BYTE)l;
token = tokenizer.GetNextToken();
if ( !token.ToLong(&l) )
- return FALSE;
+ return false;
lf.lfCharSet = (BYTE)l;
token = tokenizer.GetNextToken();
if ( !token.ToLong(&l) )
- return FALSE;
+ return false;
lf.lfOutPrecision = (BYTE)l;
token = tokenizer.GetNextToken();
if ( !token.ToLong(&l) )
- return FALSE;
+ return false;
lf.lfClipPrecision = (BYTE)l;
token = tokenizer.GetNextToken();
if ( !token.ToLong(&l) )
- return FALSE;
+ return false;
lf.lfQuality = (BYTE)l;
token = tokenizer.GetNextToken();
if ( !token.ToLong(&l) )
- return FALSE;
+ return false;
lf.lfPitchAndFamily = (BYTE)l;
token = tokenizer.GetNextToken();
if(!token)
- return FALSE;
+ return false;
wxStrcpy(lf.lfFaceName, token.c_str());
- return TRUE;
+ return true;
}
wxString wxNativeFontInfo::ToString() const
RealizeResource();
- return TRUE;
+ return true;
}
wxFont::wxFont(const wxString& fontdesc)
RealizeResource();
- return TRUE;
+ return true;
}
wxFont::~wxFont()
{
if ( GetResourceHandle() )
{
- // VZ: the old code returned FALSE in this case, but it doesn't seem
+ // VZ: the old code returned false in this case, but it doesn't seem
// to make sense because the font _was_ created
- return TRUE;
+ return true;
}
return M_FONTDATA->Alloc(this);
{
M_FONTDATA->Free();
- return TRUE;
+ return true;
}
- return FALSE;
+ return false;
}
WXHANDLE wxFont::GetResourceHandle() const
bool wxFont::GetUnderlined() const
{
- wxCHECK_MSG( Ok(), FALSE, wxT("invalid font") );
+ wxCHECK_MSG( Ok(), false, wxT("invalid font") );
return M_FONTDATA->GetUnderlined();
}
return M_FONTDATA->GetEncoding();
}
-wxNativeFontInfo *wxFont::GetNativeFontInfo() const
+const wxNativeFontInfo *wxFont::GetNativeFontInfo() const
{
- if ( M_FONTDATA->HasNativeFontInfo() )
- return new wxNativeFontInfo(M_FONTDATA->GetNativeFontInfo());
-
- return 0;
+ return M_FONTDATA->HasNativeFontInfo() ? &(M_FONTDATA->GetNativeFontInfo())
+ : NULL;
}
bool wxFont::IsFixedWidth() const