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