// ----------------------------------------------------------------------------
#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"
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,
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());
token = tokenizer.GetNextToken();
if ( !token.ToLong(&l) )
return FALSE;
- family = (int)l;
+ family = (wxFontFamily)l;
token = tokenizer.GetNextToken();
if ( !token.ToLong(&l) )
return faceName;
}
+wxFontFamily wxNativeFontInfo::GetFamily() const
+{
+ return family;
+}
+
wxFontEncoding wxNativeFontInfo::GetEncoding() const
{
return encoding;
void wxNativeFontInfo::SetFaceName(wxString facename_)
{
- facename = facename_;
+ faceName = facename_;
+}
+
+void wxNativeFontInfo::SetFamily(wxFontFamily family_)
+{
+ family = family_;
}
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
{
// we don't distinguish between the two for now anyhow...
case wxFONTSTYLE_ITALIC:
case wxFONTSTYLE_SLANT:
- desc << _("italic ");
+ desc << _("italic");
break;
}
- if ( !facename.empty() )
+ wxString face = GetFaceName();
+ if ( !face.empty() )
{
- desc << facename << _T(' ');
+ desc << _T(' ') << face;
}
- if ( pointsize != wxNORMAL_FONT->GetPointSize() )
+ int size = GetPointSize();
+ if ( size != wxNORMAL_FONT->GetPointSize() )
{
- desc << pointsize;
+ 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;
}
bool wxNativeFontInfo::FromUserString(const wxString& s)
wxString face;
unsigned long size;
+
+#if wxUSE_FONTMAP
wxFontEncoding encoding;
+#endif // wxUSE_FONTMAP
while ( tokenizer.HasMoreTokens() )
{
}
else if ( token.ToULong(&size) )
{
- pointsize = (int)size;
+ 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() )
return TRUE;
}
-#endif // generic or wxMSW
+#endif // generic or wxMSW or wxOS2