// headers
// ----------------------------------------------------------------------------
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
- #pragma implementation "font.h"
-#endif
-
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#pragma hdrstop
#endif
+#include "wx/font.h"
+
#ifndef WX_PRECOMP
- #include "wx/setup.h"
#include "wx/list.h"
#include "wx/utils.h"
#include "wx/app.h"
- #include "wx/font.h"
#include "wx/log.h"
#include "wx/encinfo.h"
#endif // WX_PRECOMP
#include "wx/tokenzr.h"
-#if wxUSE_EXTENDED_RTTI
-
-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")
-
-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()
-
-wxCONSTRUCTOR_6( wxFont , int , Size , int , Family , int , Style , int , Weight , bool , Underlined , wxString , Face )
-
-wxBEGIN_HANDLERS_TABLE(wxFont)
-wxEND_HANDLERS_TABLE()
-
-#else
- IMPLEMENT_DYNAMIC_CLASS(wxFont, wxGDIObject)
-#endif
-
-
// ----------------------------------------------------------------------------
// constants
// ----------------------------------------------------------------------------
wxFontRefData(int size,
const wxSize& pixelSize,
bool sizeUsingPixels,
- int family,
- int style,
- int weight,
+ wxFontFamily family,
+ wxFontStyle style,
+ wxFontWeight weight,
bool underlined,
const wxString& faceName,
wxFontEncoding encoding)
}
}
- void SetFamily(int family)
+ void SetFamily(wxFontFamily family)
{
m_family = family;
}
- void SetStyle(int style)
+ void SetStyle(wxFontStyle style)
{
if ( m_nativeFontInfoOk )
m_nativeFontInfo.SetStyle((wxFontStyle)style);
m_style = style;
}
- void SetWeight(int weight)
+ void SetWeight(wxFontWeight weight)
{
if ( m_nativeFontInfoOk )
m_nativeFontInfo.SetWeight((wxFontWeight)weight);
m_weight = weight;
}
- void SetFaceName(const wxString& faceName)
+ bool SetFaceName(const wxString& faceName)
{
if ( m_nativeFontInfoOk )
m_nativeFontInfo.SetFaceName(faceName);
void Init(int size,
const wxSize& pixelSize,
bool sizeUsingPixels,
- int family,
- int style,
- int weight,
+ wxFontFamily family,
+ wxFontStyle style,
+ wxFontWeight weight,
bool underlined,
const wxString& faceName,
wxFontEncoding encoding);
int m_pointSize;
wxSize m_pixelSize;
bool m_sizeUsingPixels;
- int m_family;
- int m_style;
- int m_weight;
+ wxFontFamily m_family;
+ wxFontStyle m_style;
+ wxFontWeight m_weight;
bool m_underlined;
wxString m_faceName;
wxFontEncoding m_encoding;
bool m_nativeFontInfoOk;
};
+#define M_FONTDATA ((wxFontRefData*)m_refData)
+
// ============================================================================
// implementation
// ============================================================================
void wxFontRefData::Init(int pointSize,
const wxSize& pixelSize,
bool sizeUsingPixels,
- int family,
- int style,
- int weight,
+ wxFontFamily family,
+ wxFontStyle style,
+ wxFontWeight weight,
bool underlined,
const wxString& faceName,
wxFontEncoding encoding)
// wxFont
// ----------------------------------------------------------------------------
-void wxFont::Init()
-{
-}
-
bool wxFont::Create(const wxNativeFontInfo& info, WXHFONT hFont)
{
return false;
bool wxFont::DoCreate(int pointSize,
const wxSize& pixelSize,
bool sizeUsingPixels,
- int family,
- int style,
- int weight,
+ wxFontFamily family,
+ wxFontStyle style,
+ wxFontWeight weight,
bool underlined,
const wxString& faceName,
wxFontEncoding encoding)
// ----------------------------------------------------------------------------
// real implementation
// ----------------------------------------------------------------------------
+wxGDIRefData *wxFont::CreateGDIRefData() const
+{
+ return new wxFontRefData();
+}
+
+wxGDIRefData *wxFont::CloneGDIRefData(const wxGDIRefData *data) const
+{
+ return new wxFontRefData(*static_cast<const wxFontRefData *>(data));
+}
bool wxFont::RealizeResource()
{
return false;
}
-void wxFont::Unshare()
-{
-}
-
// ----------------------------------------------------------------------------
// change font attribute: we recreate font when doing it
// ----------------------------------------------------------------------------
{
}
-void wxFont::SetFamily(int family)
+void wxFont::SetFamily(wxFontFamily family)
{
}
-void wxFont::SetStyle(int style)
+void wxFont::SetStyle(wxFontStyle style)
{
}
-void wxFont::SetWeight(int weight)
+void wxFont::SetWeight(wxFontWeight weight)
{
}
-void wxFont::SetFaceName(const wxString& faceName)
+bool wxFont::SetFaceName(const wxString& faceName)
{
+ return true;
}
void wxFont::SetUnderlined(bool underlined)
return false;
}
-int wxFont::GetFamily() const
+wxFontFamily wxFont::DoGetFamily() const
{
return wxFONTFAMILY_ROMAN;
}
-int wxFont::GetStyle() const
+wxFontStyle wxFont::GetStyle() const
{
return wxFONTSTYLE_NORMAL;
}
-int wxFont::GetWeight() const
+wxFontWeight wxFont::GetWeight() const
{
return wxFONTWEIGHT_NORMAL;
}
return NULL;
}
+wxString wxFont::GetNativeFontInfoDesc() const
+{
+ wxCHECK_MSG( IsOk(), wxEmptyString, wxT("invalid font") );
+
+ // be sure we have an HFONT associated...
+ wxConstCast(this, wxFont)->RealizeResource();
+ return wxFontBase::GetNativeFontInfoDesc();
+}
+
+wxString wxFont::GetNativeFontInfoUserDesc() const
+{
+ wxCHECK_MSG( IsOk(), wxEmptyString, wxT("invalid font") );
+
+ // be sure we have an HFONT associated...
+ wxConstCast(this, wxFont)->RealizeResource();
+ return wxFontBase::GetNativeFontInfoUserDesc();
+}
+
bool wxFont::IsFixedWidth() const
{
return false;
}
-