#ifndef _WX_FONT_H_BASE_
#define _WX_FONT_H_BASE_
+#ifdef __GNUG__
+ #pragma interface "fontbase.h"
+#endif
+
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
#include "wx/defs.h" // for wxDEFAULT &c
+#include "wx/fontenc.h" // the font encoding constants
#include "wx/gdiobj.h" // the base class
// ----------------------------------------------------------------------------
// forward declarations
// ----------------------------------------------------------------------------
+class WXDLLEXPORT wxFontData;
class WXDLLEXPORT wxFontBase;
class WXDLLEXPORT wxFont;
wxFONTWEIGHT_MAX
};
-// font encodings
-enum wxFontEncoding
-{
- wxFONTENCODING_SYSTEM = -1, // system default
- wxFONTENCODING_DEFAULT, // current default encoding
-
- // ISO8859 standard defines a number of single-byte charsets
- wxFONTENCODING_ISO8859_1, // West European (Latin1)
- wxFONTENCODING_ISO8859_2, // Central and East European (Latin2)
- wxFONTENCODING_ISO8859_3, // Esperanto (Latin3)
- wxFONTENCODING_ISO8859_4, // Baltic languages (Estonian) (Latin4)
- wxFONTENCODING_ISO8859_5, // Cyrillic
- wxFONTENCODING_ISO8859_6, // Arabic
- wxFONTENCODING_ISO8859_7, // Greek
- wxFONTENCODING_ISO8859_8, // Hebrew
- wxFONTENCODING_ISO8859_9, // Turkish (Latin5)
- wxFONTENCODING_ISO8859_10, // Variation of Latin4 (Latin6)
- wxFONTENCODING_ISO8859_11, // Thai
- wxFONTENCODING_ISO8859_12, // doesn't exist currently, but put it
- // here anyhow to make all ISO8859
- // consecutive numbers
- wxFONTENCODING_ISO8859_13, // Latin7
- wxFONTENCODING_ISO8859_14, // Latin8
- wxFONTENCODING_ISO8859_15, // Latin9 (a.k.a. Latin0, includes euro)
-
- // Cyrillic charset soup (see http://czyborra.com/charsets/cyrillic.html)
- wxFONTENCODING_KOI8, // we don't support any of KOI8 variants
- wxFONTENCODING_ALTERNATIVE, // same as MS-DOS CP866
- wxFONTENCODING_BULGARIAN, // used under Linux in Bulgaria
-
- // what would we do without Microsoft? They have their own encodings
- // for DOS
- wxFONTENCODING_CP437, // original MS-DOS codepage
- wxFONTENCODING_CP850, // CP437 merged with Latin1
- wxFONTENCODING_CP852, // CP437 merged with Latin2
- wxFONTENCODING_CP855, // another cyrillic encoding
- wxFONTENCODING_CP866 = wxFONTENCODING_ALTERNATIVE,
- // and for Windows
- wxFONTENCODING_CP1250, // WinLatin2
- wxFONTENCODING_CP1251, // WinCyrillic
- wxFONTENCODING_CP1252, // WinLatin1
-
- wxFONTENCODING_MAX
-};
-
// ----------------------------------------------------------------------------
// wxFontBase represents a font object
// ----------------------------------------------------------------------------
-class wxFontBase : public wxGDIObject
+class WXDLLEXPORT wxFontRefData;
+struct WXDLLEXPORT wxNativeFontInfo;
+
+class WXDLLEXPORT wxFontBase : public wxGDIObject
{
public:
// creator function
+#ifdef __WXMAC_X__
+ virtual ~wxFontBase() {} // Added min for Mac X
+#endif
+
+ // from the font components
static wxFont *New(
int pointSize, // size of the font in points
int family, // see wxFontFamily enum
const wxString& face = wxEmptyString, // facename
wxFontEncoding encoding = wxFONTENCODING_DEFAULT); // ISO8859-X, ...
+ // from the (opaque) native font description object
+ static wxFont *New(const wxNativeFontInfo& nativeFontDesc);
+
+ // from the string representation of wxNativeFontInfo
+ static wxFont *New(const wxString& strNativeFontDesc);
+
// was the font successfully created?
bool Ok() const { return m_refData != NULL; }
virtual bool GetUnderlined() const = 0;
virtual wxString GetFaceName() const = 0;
virtual wxFontEncoding GetEncoding() const = 0;
+ virtual wxNativeFontInfo *GetNativeFontInfo() const;
+ wxString GetNativeFontInfoDesc() const;
// change the font characteristics
virtual void SetPointSize( int pointSize ) = 0;
virtual void SetFaceName( const wxString& faceName ) = 0;
virtual void SetUnderlined( bool underlined ) = 0;
virtual void SetEncoding(wxFontEncoding encoding) = 0;
+ virtual void SetNativeFontInfo(const wxNativeFontInfo& info);
+
+ // VZ: there is no void SetNativeFontInfo(const wxString& info), needed?
// translate the fonts into human-readable string (i.e. GetStyleString()
// will return "wxITALIC" for an italic font, ...)
protected:
// get the internal data
- class WXDLLEXPORT wxFontRefData *GetFontData() const
+ wxFontRefData *GetFontData() const
{ return (wxFontRefData *)m_refData; }
private:
// macros
// ----------------------------------------------------------------------------
-// VZ: this is ugly (FIXME)
#define M_FONTDATA GetFontData()
#endif