]> git.saurik.com Git - wxWidgets.git/blob - include/wx/gtk/font.h
activating DrawRectangle optimization
[wxWidgets.git] / include / wx / gtk / font.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/gtk/font.h
3 // Purpose:
4 // Author: Robert Roebling
5 // Id: $Id$
6 // Copyright: (c) 1998 Robert Roebling
7 // Licence: wxWindows licence
8 /////////////////////////////////////////////////////////////////////////////
9
10 #ifndef _WX_GTK_FONT_H_
11 #define _WX_GTK_FONT_H_
12
13 // ----------------------------------------------------------------------------
14 // wxFont
15 // ----------------------------------------------------------------------------
16
17 class WXDLLIMPEXP_CORE wxFont : public wxFontBase
18 {
19 public:
20 wxFont() { }
21
22 // wxGTK-specific
23 wxFont(const wxString& nativeFontInfoString)
24 {
25 Create(nativeFontInfoString);
26 }
27
28 wxFont(const wxNativeFontInfo& info);
29
30 #if FUTURE_WXWIN_COMPATIBILITY_3_0
31 wxFont(int size,
32 int family,
33 int style,
34 int weight,
35 bool underlined = false,
36 const wxString& face = wxEmptyString,
37 wxFontEncoding encoding = wxFONTENCODING_DEFAULT)
38 {
39 (void)Create(size, (wxFontFamily)family, (wxFontStyle)style, (wxFontWeight)weight, underlined, face, encoding);
40 }
41 #endif
42
43 wxFont(int size,
44 wxFontFamily family,
45 wxFontStyle style,
46 wxFontWeight weight,
47 bool underlined = false,
48 const wxString& face = wxEmptyString,
49 wxFontEncoding encoding = wxFONTENCODING_DEFAULT)
50 {
51 Create(size, family, style, weight, underlined, face, encoding);
52 }
53
54 wxFont(const wxSize& pixelSize,
55 wxFontFamily family,
56 wxFontStyle style,
57 wxFontWeight weight,
58 bool underlined = false,
59 const wxString& face = wxEmptyString,
60 wxFontEncoding encoding = wxFONTENCODING_DEFAULT)
61 {
62 Create(10, family, style, weight, underlined, face, encoding);
63 SetPixelSize(pixelSize);
64 }
65
66 wxFont(int pointSize,
67 wxFontFamily family,
68 int flags = wxFONTFLAG_DEFAULT,
69 const wxString& face = wxEmptyString,
70 wxFontEncoding encoding = wxFONTENCODING_DEFAULT);
71
72 bool Create(int size,
73 wxFontFamily family,
74 wxFontStyle style,
75 wxFontWeight weight,
76 bool underlined = false,
77 const wxString& face = wxEmptyString,
78 wxFontEncoding encoding = wxFONTENCODING_DEFAULT);
79
80 // wxGTK-specific
81 bool Create(const wxString& fontname);
82
83 virtual ~wxFont();
84
85 // implement base class pure virtuals
86 virtual int GetPointSize() const;
87 virtual wxFontStyle GetStyle() const;
88 virtual wxFontWeight GetWeight() const;
89 virtual wxString GetFaceName() const;
90 virtual bool GetUnderlined() const;
91 virtual bool GetStrikethrough() const;
92 virtual wxFontEncoding GetEncoding() const;
93 virtual const wxNativeFontInfo *GetNativeFontInfo() const;
94 virtual bool IsFixedWidth() const;
95
96 virtual void SetPointSize( int pointSize );
97 virtual void SetFamily(wxFontFamily family);
98 virtual void SetStyle(wxFontStyle style);
99 virtual void SetWeight(wxFontWeight weight);
100 virtual bool SetFaceName( const wxString& faceName );
101 virtual void SetUnderlined( bool underlined );
102 virtual void SetStrikethrough(bool strikethrough);
103 virtual void SetEncoding(wxFontEncoding encoding);
104
105 wxDECLARE_COMMON_FONT_METHODS();
106
107 // Set Pango attributes in the specified layout. Currently only
108 // underlined and strike-through attributes are handled by this function.
109 //
110 // If neither of them is specified, returns false, otherwise sets up the
111 // attributes and returns true.
112 bool GTKSetPangoAttrs(PangoLayout* layout) const;
113
114 // implementation from now on
115 void Unshare();
116
117 // no data :-)
118
119 protected:
120 virtual void DoSetNativeFontInfo( const wxNativeFontInfo& info );
121
122 virtual wxGDIRefData* CreateGDIRefData() const;
123 virtual wxGDIRefData* CloneGDIRefData(const wxGDIRefData* data) const;
124
125 virtual wxFontFamily DoGetFamily() const;
126
127 private:
128 void Init();
129
130 DECLARE_DYNAMIC_CLASS(wxFont)
131 };
132
133 #endif // _WX_GTK_FONT_H_