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
);
45 // implementation of Set/GetValue()
46 bool SetTextValue(const wxString
& str
);
47 bool GetTextValue(wxString
& str
) const;
50 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewTextRenderer
)
53 // ---------------------------------------------------------
54 // wxDataViewBitmapRenderer
55 // ---------------------------------------------------------
57 class WXDLLIMPEXP_ADV wxDataViewBitmapRenderer
: public wxDataViewRenderer
60 wxDataViewBitmapRenderer( const wxString
&varianttype
= "wxBitmap",
61 wxDataViewCellMode mode
= wxDATAVIEW_CELL_INERT
,
62 int align
= wxDVR_DEFAULT_ALIGNMENT
);
64 bool SetValue( const wxVariant
&value
);
65 bool GetValue( wxVariant
&value
) const;
68 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewBitmapRenderer
)
71 // ---------------------------------------------------------
72 // wxDataViewToggleRenderer
73 // ---------------------------------------------------------
75 class WXDLLIMPEXP_ADV wxDataViewToggleRenderer
: public wxDataViewRenderer
78 wxDataViewToggleRenderer( const wxString
&varianttype
= "bool",
79 wxDataViewCellMode mode
= wxDATAVIEW_CELL_INERT
,
80 int align
= wxDVR_DEFAULT_ALIGNMENT
);
82 bool SetValue( const wxVariant
&value
);
83 bool GetValue( wxVariant
&value
) const;
86 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewToggleRenderer
)
89 // ---------------------------------------------------------
90 // wxDataViewCustomRenderer
91 // ---------------------------------------------------------
93 class WXDLLIMPEXP_ADV wxDataViewCustomRenderer
: public wxDataViewCustomRendererBase
96 wxDataViewCustomRenderer( const wxString
&varianttype
= "string",
97 wxDataViewCellMode mode
= wxDATAVIEW_CELL_INERT
,
98 int align
= wxDVR_DEFAULT_ALIGNMENT
,
99 bool no_init
= false );
100 virtual ~wxDataViewCustomRenderer();
103 virtual bool Render( wxRect cell
, wxDC
*dc
, int state
) = 0;
105 void RenderText( const wxString
&text
, int xoffset
, wxRect cell
, wxDC
*dc
, int state
);
107 virtual wxSize
GetSize() const = 0;
109 // Create DC on request
110 virtual wxDC
*GetDC();
115 bool Init(wxDataViewCellMode mode
, int align
);
121 // Internal, temporary for RenderText.
122 GtkCellRenderer
*m_text_renderer
;
125 void *background_area
;
131 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewCustomRenderer
)
134 // ---------------------------------------------------------
135 // wxDataViewProgressRenderer
136 // ---------------------------------------------------------
138 class WXDLLIMPEXP_ADV wxDataViewProgressRenderer
: public wxDataViewCustomRenderer
141 wxDataViewProgressRenderer( const wxString
&label
= wxEmptyString
,
142 const wxString
&varianttype
= "long",
143 wxDataViewCellMode mode
= wxDATAVIEW_CELL_INERT
,
144 int align
= wxDVR_DEFAULT_ALIGNMENT
);
145 virtual ~wxDataViewProgressRenderer();
147 bool SetValue( const wxVariant
&value
);
148 bool GetValue( wxVariant
&value
) const;
150 virtual bool Render( wxRect cell
, wxDC
*dc
, int state
);
151 virtual wxSize
GetSize() const;
158 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewProgressRenderer
)
161 // ---------------------------------------------------------
162 // wxDataViewIconTextRenderer
163 // ---------------------------------------------------------
165 class WXDLLIMPEXP_ADV wxDataViewIconTextRenderer
: public wxDataViewTextRenderer
168 wxDataViewIconTextRenderer( const wxString
&varianttype
= "wxDataViewIconText",
169 wxDataViewCellMode mode
= wxDATAVIEW_CELL_INERT
,
170 int align
= wxDVR_DEFAULT_ALIGNMENT
);
171 virtual ~wxDataViewIconTextRenderer();
173 bool SetValue( const wxVariant
&value
);
174 bool GetValue( wxVariant
&value
) const;
176 virtual void GtkPackIntoColumn(GtkTreeViewColumn
*column
);
179 virtual void GtkOnCellChanged(const wxVariant
& value
,
180 const wxDataViewItem
& item
,
184 wxDataViewIconText m_value
;
186 // we use the base class m_renderer for the text and this one for the icon
187 GtkCellRenderer
*m_rendererIcon
;
189 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewIconTextRenderer
)
192 // ---------------------------------------------------------
193 // wxDataViewDateRenderer
194 // ---------------------------------------------------------
196 class WXDLLIMPEXP_ADV wxDataViewDateRenderer
: public wxDataViewCustomRenderer
199 wxDataViewDateRenderer( const wxString
&varianttype
= "datetime",
200 wxDataViewCellMode mode
= wxDATAVIEW_CELL_ACTIVATABLE
,
201 int align
= wxDVR_DEFAULT_ALIGNMENT
);
203 bool SetValue( const wxVariant
&value
);
204 bool GetValue( wxVariant
&value
) const;
206 virtual bool Render( wxRect cell
, wxDC
*dc
, int state
);
207 virtual wxSize
GetSize() const;
208 virtual bool Activate( wxRect cell
,
209 wxDataViewModel
*model
,
210 const wxDataViewItem
&item
,
217 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewDateRenderer
)
220 // -------------------------------------
221 // wxDataViewChoiceRenderer
222 // -------------------------------------
224 class WXDLLIMPEXP_ADV wxDataViewChoiceRenderer
: public wxDataViewCustomRenderer
227 wxDataViewChoiceRenderer(const wxArrayString
&choices
,
228 wxDataViewCellMode mode
= wxDATAVIEW_CELL_EDITABLE
,
229 int alignment
= wxDVR_DEFAULT_ALIGNMENT
);
230 virtual bool Render( wxRect rect
, wxDC
*dc
, int state
);
231 virtual wxSize
GetSize() const;
232 virtual bool SetValue( const wxVariant
&value
);
233 virtual bool GetValue( wxVariant
&value
) const;
235 void SetAlignment( int align
);
238 wxArrayString m_choices
;
242 #endif // _WX_GTK_DVRENDERERS_H_