1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: wx/gtk/dvrenderers.h
3 // Purpose: All GTK wxDataViewCtrl renderer classes
4 // Author: Robert Roebling, Vadim Zeitlin
5 // Created: 2009-11-07 (extracted from wx/gtk/dataview.h)
6 // RCS-ID: $Id: wxhead.h,v 1.11 2009-06-29 10:23:04 zeitlin Exp $
7 // Copyright: (c) 2006 Robert Roebling
8 // (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org>
9 // Licence: wxWindows licence
10 ///////////////////////////////////////////////////////////////////////////////
12 #ifndef _WX_GTK_DVRENDERERS_H_
13 #define _WX_GTK_DVRENDERERS_H_
15 // ---------------------------------------------------------
16 // wxDataViewTextRenderer
17 // ---------------------------------------------------------
19 class WXDLLIMPEXP_ADV wxDataViewTextRenderer
: public wxDataViewRenderer
22 wxDataViewTextRenderer( const wxString
&varianttype
= "string",
23 wxDataViewCellMode mode
= wxDATAVIEW_CELL_INERT
,
24 int align
= wxDVR_DEFAULT_ALIGNMENT
);
26 virtual bool SetValue( const wxVariant
&value
)
28 return SetTextValue(value
);
31 virtual bool GetValue( wxVariant
&value
) const
34 if ( !GetTextValue(str
) )
42 virtual void SetAlignment( int align
);
44 virtual bool GtkSupportsAttrs() const { return true; }
47 // implementation of Set/GetValue()
48 bool SetTextValue(const wxString
& str
);
49 bool GetTextValue(wxString
& str
) const;
52 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewTextRenderer
)
55 // ---------------------------------------------------------
56 // wxDataViewBitmapRenderer
57 // ---------------------------------------------------------
59 class WXDLLIMPEXP_ADV wxDataViewBitmapRenderer
: public wxDataViewRenderer
62 wxDataViewBitmapRenderer( const wxString
&varianttype
= "wxBitmap",
63 wxDataViewCellMode mode
= wxDATAVIEW_CELL_INERT
,
64 int align
= wxDVR_DEFAULT_ALIGNMENT
);
66 bool SetValue( const wxVariant
&value
);
67 bool GetValue( wxVariant
&value
) const;
70 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewBitmapRenderer
)
73 // ---------------------------------------------------------
74 // wxDataViewToggleRenderer
75 // ---------------------------------------------------------
77 class WXDLLIMPEXP_ADV wxDataViewToggleRenderer
: public wxDataViewRenderer
80 wxDataViewToggleRenderer( const wxString
&varianttype
= "bool",
81 wxDataViewCellMode mode
= wxDATAVIEW_CELL_INERT
,
82 int align
= wxDVR_DEFAULT_ALIGNMENT
);
84 bool SetValue( const wxVariant
&value
);
85 bool GetValue( wxVariant
&value
) const;
88 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewToggleRenderer
)
91 // ---------------------------------------------------------
92 // wxDataViewCustomRenderer
93 // ---------------------------------------------------------
95 class WXDLLIMPEXP_ADV wxDataViewCustomRenderer
: public wxDataViewCustomRendererBase
98 wxDataViewCustomRenderer( const wxString
&varianttype
= "string",
99 wxDataViewCellMode mode
= wxDATAVIEW_CELL_INERT
,
100 int align
= wxDVR_DEFAULT_ALIGNMENT
,
101 bool no_init
= false );
102 virtual ~wxDataViewCustomRenderer();
105 // Create DC on request
106 virtual wxDC
*GetDC();
108 // override the base class function to use GTK text cell renderer
109 virtual void RenderText(const wxString
& text
,
117 bool Init(wxDataViewCellMode mode
, int align
);
123 // Internal, temporary for RenderText.
124 GtkCellRenderer
*m_text_renderer
;
127 void *background_area
;
133 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewCustomRenderer
)
136 // ---------------------------------------------------------
137 // wxDataViewProgressRenderer
138 // ---------------------------------------------------------
140 class WXDLLIMPEXP_ADV wxDataViewProgressRenderer
: public wxDataViewCustomRenderer
143 wxDataViewProgressRenderer( const wxString
&label
= wxEmptyString
,
144 const wxString
&varianttype
= "long",
145 wxDataViewCellMode mode
= wxDATAVIEW_CELL_INERT
,
146 int align
= wxDVR_DEFAULT_ALIGNMENT
);
147 virtual ~wxDataViewProgressRenderer();
149 bool SetValue( const wxVariant
&value
);
150 bool GetValue( wxVariant
&value
) const;
152 virtual bool Render( wxRect cell
, wxDC
*dc
, int state
);
153 virtual wxSize
GetSize() const;
160 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewProgressRenderer
)
163 // ---------------------------------------------------------
164 // wxDataViewIconTextRenderer
165 // ---------------------------------------------------------
167 class WXDLLIMPEXP_ADV wxDataViewIconTextRenderer
: public wxDataViewTextRenderer
170 wxDataViewIconTextRenderer( const wxString
&varianttype
= "wxDataViewIconText",
171 wxDataViewCellMode mode
= wxDATAVIEW_CELL_INERT
,
172 int align
= wxDVR_DEFAULT_ALIGNMENT
);
173 virtual ~wxDataViewIconTextRenderer();
175 bool SetValue( const wxVariant
&value
);
176 bool GetValue( wxVariant
&value
) const;
178 virtual void GtkPackIntoColumn(GtkTreeViewColumn
*column
);
181 virtual void GtkOnCellChanged(const wxVariant
& value
,
182 const wxDataViewItem
& item
,
186 wxDataViewIconText m_value
;
188 // we use the base class m_renderer for the text and this one for the icon
189 GtkCellRenderer
*m_rendererIcon
;
191 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewIconTextRenderer
)
194 // ---------------------------------------------------------
195 // wxDataViewDateRenderer
196 // ---------------------------------------------------------
198 class WXDLLIMPEXP_ADV wxDataViewDateRenderer
: public wxDataViewCustomRenderer
201 wxDataViewDateRenderer( const wxString
&varianttype
= "datetime",
202 wxDataViewCellMode mode
= wxDATAVIEW_CELL_ACTIVATABLE
,
203 int align
= wxDVR_DEFAULT_ALIGNMENT
);
205 bool SetValue( const wxVariant
&value
);
206 bool GetValue( wxVariant
&value
) const;
208 virtual bool Render( wxRect cell
, wxDC
*dc
, int state
);
209 virtual wxSize
GetSize() const;
210 virtual bool Activate( wxRect cell
,
211 wxDataViewModel
*model
,
212 const wxDataViewItem
&item
,
219 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewDateRenderer
)
222 // -------------------------------------
223 // wxDataViewChoiceRenderer
224 // -------------------------------------
226 class WXDLLIMPEXP_ADV wxDataViewChoiceRenderer
: public wxDataViewCustomRenderer
229 wxDataViewChoiceRenderer(const wxArrayString
&choices
,
230 wxDataViewCellMode mode
= wxDATAVIEW_CELL_EDITABLE
,
231 int alignment
= wxDVR_DEFAULT_ALIGNMENT
);
232 virtual bool Render( wxRect rect
, wxDC
*dc
, int state
);
233 virtual wxSize
GetSize() const;
234 virtual bool SetValue( const wxVariant
&value
);
235 virtual bool GetValue( wxVariant
&value
) const;
237 void SetAlignment( int align
);
240 wxArrayString m_choices
;
244 #endif // _WX_GTK_DVRENDERERS_H_