]> git.saurik.com Git - wxWidgets.git/blob - include/wx/osx/dvrenderers.h
39a122f5574083678b0f9bb77288d8db9379c61c
[wxWidgets.git] / include / wx / osx / dvrenderers.h
1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: wx/osx/dvrenderers.h
3 // Purpose: All OS X wxDataViewCtrl renderer classes
4 // Author: Vadim Zeitlin
5 // Created: 2009-11-07 (extracted from wx/osx/dataview.h)
6 // RCS-ID: $Id: wxhead.h,v 1.11 2009-06-29 10:23:04 zeitlin Exp $
7 // Copyright: (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org>
8 // Licence: wxWindows licence
9 ///////////////////////////////////////////////////////////////////////////////
10
11 #ifndef _WX_OSX_DVRENDERERS_H_
12 #define _WX_OSX_DVRENDERERS_H_
13
14 // ---------------------------------------------------------
15 // wxDataViewCustomRenderer
16 // ---------------------------------------------------------
17
18 class WXDLLIMPEXP_ADV wxDataViewCustomRenderer : public wxDataViewCustomRendererBase
19 {
20 public:
21 wxDataViewCustomRenderer(const wxString& varianttype = "string",
22 wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
23 int align = wxDVR_DEFAULT_ALIGNMENT);
24
25 virtual ~wxDataViewCustomRenderer();
26
27
28 // implementation only
29 // -------------------
30
31 virtual bool MacRender();
32
33 virtual void OSXApplyAttr(const wxDataViewItemAttr& attr);
34
35 virtual wxDC* GetDC(); // creates a device context and keeps it
36 void SetDC(wxDC* newDCPtr); // this method takes ownership of the pointer
37
38 private:
39 wxControl* m_editorCtrlPtr; // pointer to an in-place editor control
40
41 wxDC* m_DCPtr;
42
43 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewCustomRenderer)
44 };
45
46 // ---------------------------------------------------------
47 // wxDataViewTextRenderer
48 // ---------------------------------------------------------
49
50 class WXDLLIMPEXP_ADV wxDataViewTextRenderer: public wxDataViewRenderer
51 {
52 public:
53 wxDataViewTextRenderer(const wxString& varianttype = "string",
54 wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
55 int align = wxDVR_DEFAULT_ALIGNMENT);
56
57 virtual bool MacRender();
58
59 virtual void OSXOnCellChanged(NSObject *value,
60 const wxDataViewItem& item,
61 unsigned col);
62
63 private:
64 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewTextRenderer)
65 };
66
67 // ---------------------------------------------------------
68 // wxDataViewBitmapRenderer
69 // ---------------------------------------------------------
70
71 class WXDLLIMPEXP_ADV wxDataViewBitmapRenderer: public wxDataViewRenderer
72 {
73 public:
74 wxDataViewBitmapRenderer(const wxString& varianttype = "wxBitmap",
75 wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
76 int align = wxDVR_DEFAULT_ALIGNMENT);
77
78 virtual bool MacRender();
79
80 private:
81 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewBitmapRenderer)
82 };
83
84 // -------------------------------------
85 // wxDataViewChoiceRenderer
86 // -------------------------------------
87
88 class WXDLLIMPEXP_ADV wxDataViewChoiceRenderer: public wxDataViewRenderer
89 {
90 public:
91 wxDataViewChoiceRenderer(const wxArrayString& choices,
92 wxDataViewCellMode mode = wxDATAVIEW_CELL_EDITABLE,
93 int alignment = wxDVR_DEFAULT_ALIGNMENT );
94
95 virtual bool MacRender();
96
97 wxString GetChoice(size_t index) const { return m_choices[index]; }
98 const wxArrayString& GetChoices() const { return m_choices; }
99
100 private:
101 wxArrayString m_choices;
102
103 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewChoiceRenderer)
104 };
105
106 // ---------------------------------------------------------
107 // wxDataViewIconTextRenderer
108 // ---------------------------------------------------------
109 class WXDLLIMPEXP_ADV wxDataViewIconTextRenderer: public wxDataViewRenderer
110 {
111 public:
112 wxDataViewIconTextRenderer(const wxString& varianttype = "wxDataViewIconText",
113 wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
114 int align = wxDVR_DEFAULT_ALIGNMENT);
115
116 virtual bool MacRender();
117
118 virtual void OSXOnCellChanged(NSObject *value,
119 const wxDataViewItem& item,
120 unsigned col);
121
122 private:
123 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewIconTextRenderer)
124 };
125
126 // ---------------------------------------------------------
127 // wxDataViewToggleRenderer
128 // ---------------------------------------------------------
129
130 class WXDLLIMPEXP_ADV wxDataViewToggleRenderer: public wxDataViewRenderer
131 {
132 public:
133 wxDataViewToggleRenderer(const wxString& varianttype = "bool",
134 wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
135 int align = wxDVR_DEFAULT_ALIGNMENT);
136
137 virtual bool MacRender();
138
139 virtual void OSXOnCellChanged(NSObject *value,
140 const wxDataViewItem& item,
141 unsigned col);
142
143 private:
144 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewToggleRenderer)
145 };
146
147 // ---------------------------------------------------------
148 // wxDataViewProgressRenderer
149 // ---------------------------------------------------------
150
151 class WXDLLIMPEXP_ADV wxDataViewProgressRenderer: public wxDataViewRenderer
152 {
153 public:
154 wxDataViewProgressRenderer(const wxString& label = wxEmptyString,
155 const wxString& varianttype = "long",
156 wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
157 int align = wxDVR_DEFAULT_ALIGNMENT);
158
159 virtual bool MacRender();
160
161 virtual void OSXOnCellChanged(NSObject *value,
162 const wxDataViewItem& item,
163 unsigned col);
164
165 private:
166 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewProgressRenderer)
167 };
168
169 // ---------------------------------------------------------
170 // wxDataViewDateRenderer
171 // ---------------------------------------------------------
172
173 class WXDLLIMPEXP_ADV wxDataViewDateRenderer: public wxDataViewRenderer
174 {
175 public:
176 wxDataViewDateRenderer(const wxString& varianttype = "datetime",
177 wxDataViewCellMode mode = wxDATAVIEW_CELL_ACTIVATABLE,
178 int align = wxDVR_DEFAULT_ALIGNMENT);
179
180 virtual bool MacRender();
181
182 virtual void OSXOnCellChanged(NSObject *value,
183 const wxDataViewItem& item,
184 unsigned col);
185
186 private:
187 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewDateRenderer)
188 };
189
190 #endif // _WX_OSX_DVRENDERERS_H_
191