X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6762286db6cf974817dead5b88bebf0e390dbb7e..438959cca892a7651634cc3a7aad4819ac49b23c:/include/wx/osx/font.h diff --git a/include/wx/osx/font.h b/include/wx/osx/font.h index 05f1b50601..d5e277f979 100644 --- a/include/wx/osx/font.h +++ b/include/wx/osx/font.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: font.h +// Name: wx/osx/font.h // Purpose: wxFont class // Author: Julian Smart // Modified by: @@ -16,12 +16,47 @@ // wxFont // ---------------------------------------------------------------------------- +// font styles +enum wxOSXSystemFont +{ + wxOSX_SYSTEM_FONT_NONE = 0, + wxOSX_SYSTEM_FONT_NORMAL, + wxOSX_SYSTEM_FONT_BOLD, + wxOSX_SYSTEM_FONT_SMALL, + wxOSX_SYSTEM_FONT_SMALL_BOLD, + wxOSX_SYSTEM_FONT_MINI, + wxOSX_SYSTEM_FONT_MINI_BOLD, + wxOSX_SYSTEM_FONT_LABELS, + wxOSX_SYSTEM_FONT_VIEWS +}; + + class WXDLLIMPEXP_CORE wxFont : public wxFontBase { public: // ctors and such wxFont() { } + wxFont(const wxFontInfo& info) + { + Create(info.GetPointSize(), + info.GetFamily(), + info.GetStyle(), + info.GetWeight(), + info.IsUnderlined(), + info.GetFaceName(), + info.GetEncoding()); + + if ( info.IsUsingSizeInPixels() ) + SetPixelSize(info.GetPixelSize()); + } + + wxFont( wxOSXSystemFont systemFont ); + +#if wxOSX_USE_COCOA + wxFont(WX_NSFont nsfont); +#endif + #if FUTURE_WXWIN_COMPATIBILITY_3_0 wxFont(int size, int family, @@ -46,6 +81,18 @@ public: Create(size, family, style, weight, underlined, face, encoding); } + wxFont(const wxSize& pixelSize, + wxFontFamily family, + wxFontStyle style, + wxFontWeight weight, + bool underlined = false, + const wxString& face = wxEmptyString, + wxFontEncoding encoding = wxFONTENCODING_DEFAULT) + { + Create(10, family, style, weight, underlined, face, encoding); + SetPixelSize(pixelSize); + } + bool Create(int size, wxFontFamily family, wxFontStyle style, @@ -63,21 +110,11 @@ public: bool Create(const wxNativeFontInfo& info); -#if wxOSX_USE_ATSU_TEXT - bool MacCreateFromThemeFont( wxUint16 themeFontID ) ; -#endif -#if wxOSX_USE_CORE_TEXT - bool MacCreateFromUIFont( wxUint32 coreTextFontType ); - bool MacCreateFromCTFontDescriptor( const void * ctFontDescriptor, int pointSize = 0 ); - bool MacCreateFromCTFont( const void * ctFont ); -#endif - virtual ~wxFont(); // implement base class pure virtuals virtual int GetPointSize() const; virtual wxSize GetPixelSize() const; - virtual wxFontFamily GetFamily() const; virtual wxFontStyle GetStyle() const; virtual wxFontWeight GetWeight() const; virtual bool GetUnderlined() const; @@ -85,6 +122,8 @@ public: virtual wxFontEncoding GetEncoding() const; virtual const wxNativeFontInfo *GetNativeFontInfo() const; + virtual bool IsFixedWidth() const; + virtual void SetPointSize(int pointSize); virtual void SetFamily(wxFontFamily family); virtual void SetStyle(wxFontStyle style); @@ -93,45 +132,61 @@ public: virtual void SetUnderlined(bool underlined); virtual void SetEncoding(wxFontEncoding encoding); - WXDECLARE_COMPAT_SETTERS + wxDECLARE_COMMON_FONT_METHODS(); // implementation only from now on // ------------------------------- virtual bool RealizeResource(); - // Unofficial API, don't use - virtual void SetNoAntiAliasing( bool noAA = TRUE ) ; - virtual bool GetNoAntiAliasing() const ; - // Mac-specific, risks to change, don't use in portable code -#if wxOSX_USE_ATSU_TEXT +#if wxOSX_USE_CARBON && wxOSX_USE_ATSU_TEXT + wxUint16 MacGetThemeFontID() const ; + // 'old' Quickdraw accessors short MacGetFontNum() const; - short MacGetFontSize() const; wxByte MacGetFontStyle() const; +#endif - // 'new' ATSUI accessors - wxUint32 MacGetATSUFontID() const; - wxUint32 MacGetATSUAdditionalQDStyles() const; - wxUint16 MacGetThemeFontID() const ; - - // Returns an ATSUStyle not ATSUStyle* +#if wxOSX_USE_COCOA_OR_CARBON + CGFontRef OSXGetCGFont() const; #endif + #if wxOSX_USE_CORE_TEXT - const void * MacGetCTFont() const; + CTFontRef OSXGetCTFont() const; #endif -#if wxOSX_USE_CORE_TEXT || wxOSX_USE_ATSU_TEXT + +#if wxOSX_USE_ATSU_TEXT + // Returns an ATSUStyle not ATSUStyle* void* MacGetATSUStyle() const ; + void* OSXGetATSUStyle() const { return MacGetATSUStyle() ; } + + wxDEPRECATED( wxUint32 MacGetATSUFontID() const ); + wxDEPRECATED( wxUint32 MacGetATSUAdditionalQDStyles() const ); +#endif + +#if wxOSX_USE_COCOA + WX_NSFont OSXGetNSFont() const; + static WX_NSFont OSXCreateNSFont(wxOSXSystemFont font, wxNativeFontInfo* info); + static WX_NSFont OSXCreateNSFont(const wxNativeFontInfo* info); + static void SetNativeInfoFromNSFont(WX_NSFont nsfont, wxNativeFontInfo* info); +#endif + +#if wxOSX_USE_IPHONE + WX_UIFont OSXGetUIFont() const; + static WX_UIFont OSXCreateUIFont(wxOSXSystemFont font, wxNativeFontInfo* info); + static WX_UIFont OSXCreateUIFont(const wxNativeFontInfo* info); #endif protected: + virtual void DoSetNativeFontInfo(const wxNativeFontInfo& info); + virtual wxFontFamily DoGetFamily() const; + virtual wxGDIRefData *CreateGDIRefData() const; virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const; private: - void Unshare(); DECLARE_DYNAMIC_CLASS(wxFont) };