X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/21802234dfc226c369e7d48af58e6c1b7f7242a3..8e77fd8bca165aab9709649d79a7cbc6a172d4e1:/include/wx/os2/font.h?ds=sidebyside diff --git a/include/wx/os2/font.h b/include/wx/os2/font.h index d645c30e38..e0eabda61f 100644 --- a/include/wx/os2/font.h +++ b/include/wx/os2/font.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: font.h +// Name: wx/os2/font.h // Purpose: wxFont class // Author: David Webster // Modified by: @@ -13,85 +13,145 @@ #define _WX_FONT_H_ #include "wx/gdiobj.h" +#include "wx/os2/private.h" -WXDLLEXPORT_DATA(extern const wxChar*) wxEmptyString; +WXDLLIMPEXP_DATA_CORE(extern const wxChar*) wxEmptyString; // ---------------------------------------------------------------------------- // wxFont // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxFont : public wxFontBase +class WXDLLIMPEXP_CORE wxFont : public wxFontBase { public: // ctors and such - wxFont() { Init(); } - wxFont(const wxFont& font) { Init(); Ref(font); } + 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()); + } + +#if FUTURE_WXWIN_COMPATIBILITY_3_0 wxFont(int size, int family, int style, int weight, - bool underlined = FALSE, + bool underlined = false, const wxString& face = wxEmptyString, wxFontEncoding encoding = wxFONTENCODING_DEFAULT) { - Init(); + (void)Create(size, (wxFontFamily)family, (wxFontStyle)style, (wxFontWeight)weight, underlined, face, encoding); + } +#endif - (void)Create(size, family, style, weight, underlined, face, encoding); + wxFont(int size, + wxFontFamily family, + wxFontStyle style, + wxFontWeight weight, + bool underlined = false, + const wxString& face = wxEmptyString, + wxFontEncoding encoding = wxFONTENCODING_DEFAULT) + { + 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, - int family, - int style, - int weight, - bool underlined = FALSE, + wxFontFamily family, + wxFontStyle style, + wxFontWeight weight, + bool underlined = false, const wxString& face = wxEmptyString, wxFontEncoding encoding = wxFONTENCODING_DEFAULT); + wxFont( const wxNativeFontInfo& rInfo + ,WXHFONT hFont = 0 + ) + + { + (void)Create( rInfo + ,hFont + ); + } + + wxFont(const wxString& rsFontDesc); + + bool Create( const wxNativeFontInfo& rInfo + ,WXHFONT hFont = 0 + ); + virtual ~wxFont(); - // assignment - wxFont& operator=(const wxFont& font); - - // implement base class pure virtuals - virtual int GetPointSize() const; - virtual int GetFamily() const; - virtual int GetStyle() const; - virtual int GetWeight() const; - virtual bool GetUnderlined() const; - virtual wxString GetFaceName() const; - virtual wxFontEncoding GetEncoding() const; - - virtual void SetPointSize(int pointSize); - virtual void SetFamily(int family); - virtual void SetStyle(int style); - virtual void SetWeight(int weight); - virtual void SetFaceName(const wxString& faceName); - virtual void SetUnderlined(bool underlined); - virtual void SetEncoding(wxFontEncoding encoding); - - // implementation only from now on + // + // Implement base class pure virtuals + // + virtual int GetPointSize(void) const; + virtual wxFontStyle GetStyle() const; + virtual wxFontWeight GetWeight() const; + virtual bool GetUnderlined(void) const; + virtual wxString GetFaceName(void) const; + virtual wxFontEncoding GetEncoding(void) const; + virtual const wxNativeFontInfo* GetNativeFontInfo() const; + + virtual void SetPointSize(int nPointSize); + virtual void SetFamily(wxFontFamily family); + virtual void SetStyle(wxFontStyle style); + virtual void SetWeight(wxFontWeight weight); + virtual bool SetFaceName(const wxString& rsFaceName); + virtual void SetUnderlined(bool bUnderlined); + virtual void SetEncoding(wxFontEncoding vEncoding); + + wxDECLARE_COMMON_FONT_METHODS(); + + // + // For internal use only! + // + void SetPS(HPS hPS); + void SetFM( PFONTMETRICS pFM + ,int nNumFonts + ); + // + // Implementation only from now on // ------------------------------- + // + virtual bool IsFree(void) const; + virtual bool RealizeResource(void); + virtual WXHANDLE GetResourceHandle(void) const; + virtual bool FreeResource(bool bForce = false); - int GetFontId() const; - virtual bool IsFree() const; - virtual bool RealizeResource(); - virtual WXHANDLE GetResourceHandle(); - virtual bool FreeResource(bool force = FALSE); - /* - virtual bool UseResource(); - virtual bool ReleaseResource(); - */ + WXHFONT GetHFONT(void) const; protected: - // common part of all ctors - void Init(); + virtual void DoSetNativeFontInfo(const wxNativeFontInfo& rInfo); + virtual wxFontFamily DoGetFamily() const; - void Unshare(); + // implement wxObject virtuals which are used by AllocExclusive() + virtual wxGDIRefData *CreateGDIRefData() const; + virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const; private: DECLARE_DYNAMIC_CLASS(wxFont) -}; +}; // end of wxFont -#endif - // _WX_FONT_H_ +#endif // _WX_FONT_H_