1 ///////////////////////////////////////////////////////////////////////////// 2 // Name: wx/msw/font.h 3 // Purpose: wxFont class 4 // Author: Julian Smart 5 // Modified by: 6 // Created: 01/02/97 7 // RCS-ID: $Id: font.h 39411 2006-05-29 00:03:36Z VZ $ 8 // Copyright: (c) Julian Smart 9 // Licence: wxWindows licence 10 ///////////////////////////////////////////////////////////////////////////// 11 12 #ifndef _WX_FONT_H_ 13 #define _WX_FONT_H_ 14 15 #include "wx/gdicmn.h" 16 17 // ---------------------------------------------------------------------------- 18 // wxFont 19 // ---------------------------------------------------------------------------- 20 21 class WXDLLEXPORT wxFont : public wxFontBase 22 { 23 public: 24 // ctors and such wxFont()25 wxFont() { } 26 27 wxFont(int size, 28 int family, 29 int style, 30 int weight, 31 bool underlined = false, 32 const wxString& face = wxEmptyString, 33 wxFontEncoding encoding = wxFONTENCODING_DEFAULT) 34 { 35 (void)Create(size, family, style, weight, underlined, face, encoding); 36 } 37 38 wxFont(const wxSize& pixelSize, 39 int family, 40 int style, 41 int weight, 42 bool underlined = false, 43 const wxString& face = wxEmptyString, 44 wxFontEncoding encoding = wxFONTENCODING_DEFAULT) 45 { 46 (void)Create(pixelSize, family, style, weight, 47 underlined, face, encoding); 48 } 49 50 wxFont(const wxNativeFontInfo& info, WXHFONT hFont = 0) 51 { 52 Create(info, hFont); 53 } 54 55 wxFont(const wxString& fontDesc); 56 57 bool Create(int size, 58 int family, 59 int style, 60 int weight, 61 bool underlined = false, 62 const wxString& face = wxEmptyString, 63 wxFontEncoding encoding = wxFONTENCODING_DEFAULT) 64 { 65 return DoCreate(size, wxDefaultSize, false, family, style, 66 weight, underlined, face, encoding); 67 } 68 69 bool Create(const wxSize& pixelSize, 70 int family, 71 int style, 72 int weight, 73 bool underlined = false, 74 const wxString& face = wxEmptyString, 75 wxFontEncoding encoding = wxFONTENCODING_DEFAULT) 76 { 77 return DoCreate(-1, pixelSize, true, family, style, 78 weight, underlined, face, encoding); 79 } 80 81 bool Create(const wxNativeFontInfo& info, WXHFONT hFont = 0); 82 83 virtual ~wxFont(); 84 85 // wxFontBase overridden functions 86 virtual wxString GetNativeFontInfoDesc() const; 87 virtual wxString GetNativeFontInfoUserDesc() const; 88 89 // implement base class pure virtuals 90 virtual int GetPointSize() const; 91 virtual wxSize GetPixelSize() const; 92 virtual bool IsUsingSizeInPixels() const; 93 virtual int GetFamily() const; 94 virtual int GetStyle() const; 95 virtual int GetWeight() const; 96 virtual bool GetUnderlined() const; 97 virtual wxString GetFaceName() const; 98 virtual wxFontEncoding GetEncoding() const; 99 virtual const wxNativeFontInfo *GetNativeFontInfo() const; 100 101 virtual void SetPointSize(int pointSize); 102 virtual void SetPixelSize(const wxSize& pixelSize); 103 virtual void SetFamily(int family); 104 virtual void SetStyle(int style); 105 virtual void SetWeight(int weight); 106 virtual bool SetFaceName(const wxString& faceName); 107 virtual void SetUnderlined(bool underlined); 108 virtual void SetEncoding(wxFontEncoding encoding); 109 110 virtual bool IsFixedWidth() const; 111 112 // implementation only from now on 113 // ------------------------------- 114 115 virtual bool IsFree() const; 116 virtual bool RealizeResource(); 117 virtual WXHANDLE GetResourceHandle() const; 118 virtual bool FreeResource(bool force = false); 119 120 // for consistency with other wxMSW classes 121 WXHFONT GetHFONT() const; 122 123 /* 124 virtual bool UseResource(); 125 virtual bool ReleaseResource(); 126 */ 127 128 protected: 129 // real font creation function, used in all cases 130 bool DoCreate(int size, 131 const wxSize& pixelSize, 132 bool sizeUsingPixels, 133 int family, 134 int style, 135 int weight, 136 bool underlined = false, 137 const wxString& face = wxEmptyString, 138 wxFontEncoding encoding = wxFONTENCODING_DEFAULT); 139 140 virtual void DoSetNativeFontInfo(const wxNativeFontInfo& info); 141 142 void Unshare(); 143 144 private: 145 DECLARE_DYNAMIC_CLASS(wxFont) 146 }; 147 148 #endif // _WX_FONT_H_ 149