X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/409d5a58605cfb202774b59c3af078d3be89d7d5..9905656a35761f368f6775f6f8d50ca393c63088:/include/wx/font.h diff --git a/include/wx/font.h b/include/wx/font.h index a95b73d002..14935c6833 100644 --- a/include/wx/font.h +++ b/include/wx/font.h @@ -5,14 +5,14 @@ // Modified by: // Created: 20.09.99 // RCS-ID: $Id$ -// Copyright: (c) wxWindows team -// Licence: wxWindows license +// Copyright: (c) wxWidgets team +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifndef _WX_FONT_H_BASE_ #define _WX_FONT_H_BASE_ -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma interface "fontbase.h" #endif @@ -71,6 +71,39 @@ enum wxFontWeight wxFONTWEIGHT_MAX }; +// the font flag bits for the new font ctor accepting one combined flags word +enum +{ + // no special flags: font with default weight/slant/anti-aliasing + wxFONTFLAG_DEFAULT = 0, + + // slant flags (default: no slant) + wxFONTFLAG_ITALIC = 1 << 0, + wxFONTFLAG_SLANT = 1 << 1, + + // weight flags (default: medium) + wxFONTFLAG_LIGHT = 1 << 2, + wxFONTFLAG_BOLD = 1 << 3, + + // anti-aliasing flag: force on or off (default: the current system default) + wxFONTFLAG_ANTIALIASED = 1 << 4, + wxFONTFLAG_NOT_ANTIALIASED = 1 << 5, + + // underlined/strikethrough flags (default: no lines) + wxFONTFLAG_UNDERLINED = 1 << 6, + wxFONTFLAG_STRIKETHROUGH = 1 << 7, + + // the mask of all currently used flags + wxFONTFLAG_MASK = wxFONTFLAG_ITALIC | + wxFONTFLAG_SLANT | + wxFONTFLAG_LIGHT | + wxFONTFLAG_BOLD | + wxFONTFLAG_ANTIALIASED | + wxFONTFLAG_NOT_ANTIALIASED | + wxFONTFLAG_UNDERLINED | + wxFONTFLAG_STRIKETHROUGH +}; + // ---------------------------------------------------------------------------- // wxFontBase represents a font object // ---------------------------------------------------------------------------- @@ -94,6 +127,14 @@ public: const wxString& face = wxEmptyString, // facename wxFontEncoding encoding = wxFONTENCODING_DEFAULT); // ISO8859-X, ... + // from the font components but using the font flags instead of separate + // parameters for each flag + static wxFont *New(int pointSize, + wxFontFamily family, + int flags = wxFONTFLAG_DEFAULT, + const wxString& face = wxEmptyString, + wxFontEncoding encoding = wxFONTENCODING_DEFAULT); + // from the (opaque) native font description object static wxFont *New(const wxNativeFontInfo& nativeFontDesc); @@ -115,7 +156,7 @@ public: virtual bool GetUnderlined() const = 0; virtual wxString GetFaceName() const = 0; virtual wxFontEncoding GetEncoding() const = 0; - virtual wxNativeFontInfo *GetNativeFontInfo() const; + virtual const wxNativeFontInfo *GetNativeFontInfo() const = 0; virtual bool IsFixedWidth() const; @@ -130,7 +171,8 @@ public: 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); + void SetNativeFontInfo(const wxNativeFontInfo& info) + { DoSetNativeFontInfo(info); } void SetNativeFontInfo(const wxString& info); void SetNativeFontInfoUserDesc(const wxString& info); @@ -141,18 +183,23 @@ public: wxString GetStyleString() const; wxString GetWeightString() const; + // Unofficial API, don't use + virtual void SetNoAntiAliasing( bool WXUNUSED(no) = TRUE ) { } + virtual bool GetNoAntiAliasing() const { return FALSE; } + // the default encoding is used for creating all fonts with default // encoding parameter - static wxFontEncoding GetDefaultEncoding() - { return ms_encodingDefault; } - static void SetDefaultEncoding(wxFontEncoding encoding) - { ms_encodingDefault = encoding; } + static wxFontEncoding GetDefaultEncoding() { return ms_encodingDefault; } + static void SetDefaultEncoding(wxFontEncoding encoding); protected: // get the internal data wxFontRefData *GetFontData() const { return (wxFontRefData *)m_refData; } + // the function called by both overloads of SetNativeFontInfo() + virtual void DoSetNativeFontInfo(const wxNativeFontInfo& info); + private: // the currently default encoding: by default, it's the default system // encoding, but may be changed by the application using @@ -168,14 +215,16 @@ private: #include "wx/motif/font.h" #elif defined(__WXGTK__) #include "wx/gtk/font.h" +#elif defined(__WXX11__) + #include "wx/x11/font.h" #elif defined(__WXMGL__) #include "wx/mgl/font.h" #elif defined(__WXMAC__) #include "wx/mac/font.h" +#elif defined(__WXCOCOA__) + #include "wx/cocoa/font.h" #elif defined(__WXPM__) #include "wx/os2/font.h" -#elif defined(__WXSTUBS__) - #include "wx/stubs/font.h" #endif // ----------------------------------------------------------------------------