wxNativeFontInfo changes

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8949 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2000-12-18 21:15:16 +00:00
parent accb325754
commit 7826e2dd83
17 changed files with 265 additions and 186 deletions

View File

@@ -18,7 +18,6 @@
#include "wx/window.h"
#include "wx/font.h"
#include "wx/fontutil.h"
#include "wx/colour.h"
#include "wx/gdicmn.h"

View File

@@ -1697,9 +1697,16 @@ typedef enum {
wxPRINT_MODE_PRINTER = 3 // Send to printer
} wxPrintMode;
// ---------------------------------------------------------------------------
// Macro to specify "All Files" on different platforms
// ---------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// miscellaneous
// ----------------------------------------------------------------------------
// define this macro if font handling is done using the X font names
#if defined(__WXGTK__) || defined(__X__)
#define _WX_X_FONTLIKE
#endif
// macro to specify "All Files" on different platforms
#if defined(__WXMSW__)
# define wxALL_FILES_PATTERN "*.*"
# define wxALL_FILES gettext_noop("All files (*.*)|*.*")
@@ -1707,6 +1714,7 @@ typedef enum {
# define wxALL_FILES_PATTERN "*"
# define wxALL_FILES gettext_noop("All files (*)|*")
#endif
// ---------------------------------------------------------------------------
// macros that enable wxWindows apps to be compiled in absence of the
// sytem headers, although some platform specific types are used in the

View File

@@ -67,50 +67,19 @@ enum wxFontWeight
wxFONTWEIGHT_MAX
};
// ----------------------------------------------------------------------------
// wxNativeFontInfo is platform-specific font representation
// ----------------------------------------------------------------------------
// this struct should be considered as opaque font description only used by
// the native functions, the user code can only get the objects of this type
// from somewhere and pass it somewhere else (possibly save them somewhere
// using ToString() and restore them using FromString())
struct WXDLLEXPORT wxNativeFontInfo
{
#if defined(__WXGTK__)
wxString xFontName;
#else // other platforms
//
// This is a generic implementation that should work on all ports
// without specific support by the port.
//
int pointSize;
int family;
int style;
int weight;
bool underlined;
wxString faceName;
wxFontEncoding encoding;
#endif // platforms
// it is important to be able to serialize wxNativeFontInfo objects to be
// able to store them (in config file, for example)
bool FromString(const wxString& s);
wxString ToString() const;
};
WXDLLEXPORT_DATA(extern wxNativeFontInfo) wxNullNativeFontInfo;
// ----------------------------------------------------------------------------
// wxFontBase represents a font object
// ----------------------------------------------------------------------------
class WXDLLEXPORT wxFontRefData;
class WXDLLEXPORT wxNativeFontInfo;
class WXDLLEXPORT wxFontBase : public wxGDIObject
{
public:
// creator function
// from the font components
static wxFont *New(
int pointSize, // size of the font in points
int family, // see wxFontFamily enum
@@ -119,7 +88,12 @@ public:
bool underlined = FALSE, // not underlined by default
const wxString& face = wxEmptyString, // facename
wxFontEncoding encoding = wxFONTENCODING_DEFAULT); // ISO8859-X, ...
static wxFont *New(const wxNativeFontInfo& info);
// 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; }
@@ -136,7 +110,8 @@ public:
virtual bool GetUnderlined() const = 0;
virtual wxString GetFaceName() const = 0;
virtual wxFontEncoding GetEncoding() const = 0;
virtual wxNativeFontInfo GetNativeFontInfo() const;
virtual wxNativeFontInfo *GetNativeFontInfo() const;
wxString GetNativeFontInfoDesc() const;
// change the font characteristics
virtual void SetPointSize( int pointSize ) = 0;
@@ -148,6 +123,8 @@ public:
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, ...)
wxString GetFamilyString() const;

View File

@@ -12,6 +12,8 @@
#ifndef _WX_FONTENC_H_
#define _WX_FONTENC_H_
#include "wx/string.h"
// font encodings
enum wxFontEncoding
{
@@ -68,4 +70,44 @@ enum wxFontEncoding
wxFONTENCODING_MAX
};
// ----------------------------------------------------------------------------
// types
// ----------------------------------------------------------------------------
// This private structure specifies all the parameters needed to create a font
// with the given encoding on this platform.
//
// Under X, it contains the last 2 elements of the font specifications
// (registry and encoding).
//
// Under Windows, it contains a number which is one of predefined CHARSET_XXX
// values.
//
// Under all platforms it also contains a facename string which should be
// used, if not empty, to create fonts in this encoding (this is the only way
// to create a font of non-standard encoding (like KOI8) under Windows - the
// facename specifies the encoding then)
struct WXDLLEXPORT wxNativeEncodingInfo
{
wxString facename; // may be empty meaning "any"
wxFontEncoding encoding; // so that we know what this struct represents
#if defined(__WXMSW__) || defined(__WXPM__) || defined(__WXMAC__)
wxNativeEncodingInfo() { charset = 0; /* ANSI_CHARSET */ }
int charset;
#elif defined(_WX_X_FONTLIKE)
wxString xregistry,
xencoding;
#else
#error "Unsupported toolkit"
#endif
// this struct is saved in config by wxFontMapper, so it should know to
// serialise itself (implemented in platform-specific code)
bool FromString(const wxString& s);
wxString ToString() const;
};
#endif // _WX_FONTENC_H_

View File

@@ -21,9 +21,6 @@
// ----------------------------------------------------------------------------
#include "wx/fontenc.h" // for wxFontEncoding
#if wxUSE_GUI
#include "wx/fontutil.h" // for wxNativeEncodingInfo
#endif // wxUSE_GUI
#if wxUSE_CONFIG
class WXDLLEXPORT wxConfigBase;

View File

@@ -26,47 +26,35 @@
#include "wx/font.h" // for wxFont and wxFontEncoding
// for our purposes here, GDK and X are identical
#if defined(__WXGTK__) || defined(__X__)
#define _WX_X_FONTLIKE
#endif
// ----------------------------------------------------------------------------
// types
// ----------------------------------------------------------------------------
// This private structure specifies all the parameters needed to create a font
// with the given encoding on this platform.
//
// Under X, it contains the last 2 elements of the font specifications
// (registry and encoding).
//
// Under Windows, it contains a number which is one of predefined CHARSET_XXX
// values.
//
// Under all platforms it also contains a facename string which should be
// used, if not empty, to create fonts in this encoding (this is the only way
// to create a font of non-standard encoding (like KOI8) under Windows - the
// facename specifies the encoding then)
struct WXDLLEXPORT wxNativeEncodingInfo
// wxNativeFontInfo is platform-specific font representation: this struct
// should be considered as opaque font description only used by the native
// functions, the user code can only get the objects of this type from
// somewhere and pass it somewhere else (possibly save them somewhere using
// ToString() and restore them using FromString())
struct WXDLLEXPORT wxNativeFontInfo
{
wxString facename; // may be empty meaning "any"
wxFontEncoding encoding; // so that we know what this struct represents
#if defined(__WXGTK__)
wxString xFontName;
#else // other platforms
//
// This is a generic implementation that should work on all ports
// without specific support by the port.
//
int pointSize;
int family;
int style;
int weight;
bool underlined;
wxString faceName;
wxFontEncoding encoding;
#endif // platforms
#if defined(__WXMSW__) || defined(__WXPM__) || defined(__WXMAC__)
wxNativeEncodingInfo() { charset = 0; /* ANSI_CHARSET */ }
int charset;
#elif defined(_WX_X_FONTLIKE)
wxString xregistry,
xencoding;
#else
#error "Unsupported toolkit"
#endif
// this struct is saved in config by wxFontMapper, so it should know to
// serialise itself (implemented in platform-specific code)
// it is important to be able to serialize wxNativeFontInfo objects to be
// able to store them (in config file, for example)
bool FromString(const wxString& s);
wxString ToString() const;
};

View File

@@ -36,11 +36,15 @@ public:
// ctors and such
wxFont() { Init(); }
wxFont(const wxFont& font) { Init(); Ref(font); }
wxFont(const wxString& fontname, const wxFontData& fontdata) { Create(fontname, fontdata); }
wxFont(const wxNativeFontInfo& info);
wxFont(const wxString& fontname,
wxFontEncoding fontenc = wxFONTENCODING_DEFAULT)
{
Init();
// assignment
wxFont& operator=(const wxFont& font);
Create(fontname, fontenc);
}
wxFont(const wxNativeFontInfo& info);
wxFont(int size,
int family,
@@ -61,13 +65,18 @@ public:
int weight,
bool underlined = FALSE,
const wxString& face = wxEmptyString,
wxFontEncoding encoding = wxFONTENCODING_DEFAULT,
const wxNativeFontInfo& info = wxNullNativeFontInfo);
wxFontEncoding encoding = wxFONTENCODING_DEFAULT);
bool Create(const wxString& fontname, const wxFontData& fontdata);
// wxGTK-specific
bool Create(const wxString& fontname,
wxFontEncoding fontenc = wxFONTENCODING_DEFAULT);
bool Create(const wxNativeFontInfo& fontinfo);
~wxFont();
// assignment
wxFont& operator=(const wxFont& font);
// implement base class pure virtuals
virtual int GetPointSize() const;
virtual int GetFamily() const;
@@ -76,7 +85,7 @@ public:
virtual wxString GetFaceName() const;
virtual bool GetUnderlined() const;
virtual wxFontEncoding GetEncoding() const;
virtual wxNativeFontInfo GetNativeFontInfo() const;
virtual wxNativeFontInfo *GetNativeFontInfo() const;
virtual void SetPointSize( int pointSize );
virtual void SetFamily( int family );

View File

@@ -36,11 +36,15 @@ public:
// ctors and such
wxFont() { Init(); }
wxFont(const wxFont& font) { Init(); Ref(font); }
wxFont(const wxString& fontname, const wxFontData& fontdata) { Create(fontname, fontdata); }
wxFont(const wxNativeFontInfo& info);
wxFont(const wxString& fontname,
wxFontEncoding fontenc = wxFONTENCODING_DEFAULT)
{
Init();
// assignment
wxFont& operator=(const wxFont& font);
Create(fontname, fontenc);
}
wxFont(const wxNativeFontInfo& info);
wxFont(int size,
int family,
@@ -61,13 +65,18 @@ public:
int weight,
bool underlined = FALSE,
const wxString& face = wxEmptyString,
wxFontEncoding encoding = wxFONTENCODING_DEFAULT,
const wxNativeFontInfo& info = wxNullNativeFontInfo);
wxFontEncoding encoding = wxFONTENCODING_DEFAULT);
bool Create(const wxString& fontname, const wxFontData& fontdata);
// wxGTK-specific
bool Create(const wxString& fontname,
wxFontEncoding fontenc = wxFONTENCODING_DEFAULT);
bool Create(const wxNativeFontInfo& fontinfo);
~wxFont();
// assignment
wxFont& operator=(const wxFont& font);
// implement base class pure virtuals
virtual int GetPointSize() const;
virtual int GetFamily() const;
@@ -76,7 +85,7 @@ public:
virtual wxString GetFaceName() const;
virtual bool GetUnderlined() const;
virtual wxFontEncoding GetEncoding() const;
virtual wxNativeFontInfo GetNativeFontInfo() const;
virtual wxNativeFontInfo *GetNativeFontInfo() const;
virtual void SetPointSize( int pointSize );
virtual void SetFamily( int family );