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 ///////////////////////////////////////////////////////////////////////////////
11 #ifndef _WX_OSX_DVRENDERERS_H_
12 #define _WX_OSX_DVRENDERERS_H_
14 // ---------------------------------------------------------
15 // wxDataViewCustomRenderer
16 // ---------------------------------------------------------
18 class WXDLLIMPEXP_ADV wxDataViewCustomRenderer
: public wxDataViewCustomRendererBase
21 wxDataViewCustomRenderer(const wxString
& varianttype
= "string",
22 wxDataViewCellMode mode
= wxDATAVIEW_CELL_INERT
,
23 int align
= wxDVR_DEFAULT_ALIGNMENT
);
25 virtual ~wxDataViewCustomRenderer();
27 void RenderText( const wxString
&text
, int xoffset
, wxRect cell
, wxDC
*dc
, int state
);
29 virtual wxSize
GetSize() const = 0;
31 virtual bool Render(wxRect cell
, wxDC
* dc
, int state
) = 0;
34 // implementation only
35 // -------------------
37 virtual bool MacRender();
39 virtual wxDC
* GetDC(); // creates a device context and keeps it
40 void SetDC(wxDC
* newDCPtr
); // this method takes ownership of the pointer
43 wxControl
* m_editorCtrlPtr
; // pointer to an in-place editor control
47 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewCustomRenderer
)
50 // ---------------------------------------------------------
51 // wxDataViewTextRenderer
52 // ---------------------------------------------------------
54 class WXDLLIMPEXP_ADV wxDataViewTextRenderer
: public wxDataViewRenderer
57 wxDataViewTextRenderer(const wxString
& varianttype
= "string",
58 wxDataViewCellMode mode
= wxDATAVIEW_CELL_INERT
,
59 int align
= wxDVR_DEFAULT_ALIGNMENT
);
61 virtual bool MacRender();
64 virtual void OSXOnCellChanged(NSObject
*value
,
65 const wxDataViewItem
& item
,
70 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewTextRenderer
)
73 // ---------------------------------------------------------
74 // wxDataViewBitmapRenderer
75 // ---------------------------------------------------------
77 class WXDLLIMPEXP_ADV wxDataViewBitmapRenderer
: public wxDataViewRenderer
80 wxDataViewBitmapRenderer(const wxString
& varianttype
= "wxBitmap",
81 wxDataViewCellMode mode
= wxDATAVIEW_CELL_INERT
,
82 int align
= wxDVR_DEFAULT_ALIGNMENT
);
84 virtual bool MacRender();
87 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewBitmapRenderer
)
92 // -------------------------------------
93 // wxDataViewChoiceRenderer
94 // -------------------------------------
96 class WXDLLIMPEXP_ADV wxDataViewChoiceRenderer
: public wxDataViewRenderer
99 wxDataViewChoiceRenderer(const wxArrayString
& choices
,
100 wxDataViewCellMode mode
= wxDATAVIEW_CELL_EDITABLE
,
101 int alignment
= wxDVR_DEFAULT_ALIGNMENT
);
103 virtual bool MacRender();
105 wxString
GetChoice(size_t index
) const { return m_choices
[index
]; }
106 const wxArrayString
& GetChoices() const { return m_choices
; }
109 wxArrayString m_choices
;
111 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewChoiceRenderer
)
114 #endif // wxOSX_USE_COCOA
116 // ---------------------------------------------------------
117 // wxDataViewIconTextRenderer
118 // ---------------------------------------------------------
119 class WXDLLIMPEXP_ADV wxDataViewIconTextRenderer
: public wxDataViewRenderer
122 wxDataViewIconTextRenderer(const wxString
& varianttype
= "wxDataViewIconText",
123 wxDataViewCellMode mode
= wxDATAVIEW_CELL_INERT
,
124 int align
= wxDVR_DEFAULT_ALIGNMENT
);
126 virtual bool MacRender();
129 virtual void OSXOnCellChanged(NSObject
*value
,
130 const wxDataViewItem
& item
,
135 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewIconTextRenderer
)
138 // ---------------------------------------------------------
139 // wxDataViewToggleRenderer
140 // ---------------------------------------------------------
142 class WXDLLIMPEXP_ADV wxDataViewToggleRenderer
: public wxDataViewRenderer
145 wxDataViewToggleRenderer(const wxString
& varianttype
= "bool",
146 wxDataViewCellMode mode
= wxDATAVIEW_CELL_INERT
,
147 int align
= wxDVR_DEFAULT_ALIGNMENT
);
149 virtual bool MacRender();
152 virtual void OSXOnCellChanged(NSObject
*value
,
153 const wxDataViewItem
& item
,
158 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewToggleRenderer
)
161 // ---------------------------------------------------------
162 // wxDataViewProgressRenderer
163 // ---------------------------------------------------------
165 class WXDLLIMPEXP_ADV wxDataViewProgressRenderer
: public wxDataViewRenderer
168 wxDataViewProgressRenderer(const wxString
& label
= wxEmptyString
,
169 const wxString
& varianttype
= "long",
170 wxDataViewCellMode mode
= wxDATAVIEW_CELL_INERT
,
171 int align
= wxDVR_DEFAULT_ALIGNMENT
);
173 virtual bool MacRender();
176 virtual void OSXOnCellChanged(NSObject
*value
,
177 const wxDataViewItem
& item
,
182 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewProgressRenderer
)
185 // ---------------------------------------------------------
186 // wxDataViewDateRenderer
187 // ---------------------------------------------------------
189 class WXDLLIMPEXP_ADV wxDataViewDateRenderer
: public wxDataViewRenderer
192 wxDataViewDateRenderer(const wxString
& varianttype
= "datetime",
193 wxDataViewCellMode mode
= wxDATAVIEW_CELL_ACTIVATABLE
,
194 int align
= wxDVR_DEFAULT_ALIGNMENT
);
196 virtual bool MacRender();
199 virtual void OSXOnCellChanged(NSObject
*value
,
200 const wxDataViewItem
& item
,
205 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewDateRenderer
)
208 #endif // _WX_OSX_DVRENDERERS_H_