1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: wx/generic/dvrenderer.h
3 // Purpose: wxDataViewRenderer for generic wxDataViewCtrl implementation
4 // Author: Robert Roebling, Vadim Zeitlin
5 // Created: 2009-11-07 (extracted from wx/generic/dataview.h)
7 // Copyright: (c) 2006 Robert Roebling
8 // (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org>
9 // Licence: wxWindows licence
10 ///////////////////////////////////////////////////////////////////////////////
12 #ifndef _WX_GENERIC_DVRENDERER_H_
13 #define _WX_GENERIC_DVRENDERER_H_
15 // ----------------------------------------------------------------------------
17 // ----------------------------------------------------------------------------
19 class WXDLLIMPEXP_ADV wxDataViewRenderer
: public wxDataViewCustomRendererBase
22 wxDataViewRenderer( const wxString
&varianttype
,
23 wxDataViewCellMode mode
= wxDATAVIEW_CELL_INERT
,
24 int align
= wxDVR_DEFAULT_ALIGNMENT
);
25 virtual ~wxDataViewRenderer();
27 virtual wxDC
*GetDC();
29 virtual void SetAlignment( int align
);
30 virtual int GetAlignment() const;
32 virtual void EnableEllipsize(wxEllipsizeMode mode
= wxELLIPSIZE_MIDDLE
)
33 { m_ellipsizeMode
= mode
; }
34 virtual wxEllipsizeMode
GetEllipsizeMode() const
35 { return m_ellipsizeMode
; }
37 virtual void SetMode( wxDataViewCellMode mode
)
39 virtual wxDataViewCellMode
GetMode() const
44 // this is a replacement for dynamic_cast<wxDataViewCustomRenderer> in the
45 // code checking whether the renderer is interested in mouse events, it's
46 // overridden in wxDataViewCustomRenderer to return the object itself but
47 // intentionally returns NULL for all the other renderer classes as the
48 // user should _not_ be able to override Activate/LeftClick() when deriving
49 // from them for consistency with the other ports and while we can't
50 // prevent this from working at compile-time because all renderers are
51 // custom renderers in the generic implementation, we at least make sure
52 // that it doesn't work at run-time because Activate/LeftClick() would
54 virtual wxDataViewCustomRenderer
*WXGetAsCustom() { return NULL
; }
56 // The generic implementation of some standard renderers reacts to item
57 // activation, so provide this internal function which is called by
58 // wxDataViewCtrl for them. It is called with the old value of the cell and
59 // is passed the model and cell coordinates to be able to change the model
60 // value for this cell.
61 virtual void WXOnActivate(wxDataViewModel
* WXUNUSED(model
),
62 const wxVariant
& WXUNUSED(valueOld
),
63 const wxDataViewItem
& WXUNUSED(item
),
64 unsigned int WXUNUSED(col
))
70 wxDataViewCellMode m_mode
;
72 wxEllipsizeMode m_ellipsizeMode
;
76 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewRenderer
)
79 #endif // _WX_GENERIC_DVRENDERER_H_