]> git.saurik.com Git - wxWidgets.git/blame - include/wx/osx/dvrenderer.h
guarding agains NULL
[wxWidgets.git] / include / wx / osx / dvrenderer.h
CommitLineData
6eec70b9
VZ
1///////////////////////////////////////////////////////////////////////////////
2// Name: wx/osx/dvrenderer.h
3// Purpose: wxDataViewRenderer for OS X wxDataViewCtrl implementations
4// Author: Vadim Zeitlin
5// Created: 2009-11-07 (extracted from wx/osx/dataview.h)
b1153ed6 6// RCS-ID: $Id$
6eec70b9
VZ
7// Copyright: (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org>
8// Licence: wxWindows licence
9///////////////////////////////////////////////////////////////////////////////
10
11#ifndef _WX_OSX_DVRENDERER_H_
12#define _WX_OSX_DVRENDERER_H_
13
14class wxDataViewRendererNativeData;
15
16// ----------------------------------------------------------------------------
17// wxDataViewRenderer
18// ----------------------------------------------------------------------------
19
20class WXDLLIMPEXP_ADV wxDataViewRenderer : public wxDataViewRendererBase
21{
22public:
23 // constructors / destructor
24 // -------------------------
25
26 wxDataViewRenderer(const wxString& varianttype,
27 wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
28 int align = wxDVR_DEFAULT_ALIGNMENT);
29
30 virtual ~wxDataViewRenderer();
31
32 // inherited methods from wxDataViewRendererBase
33 // ---------------------------------------------
34
35 virtual int GetAlignment() const
36 {
37 return m_alignment;
38 }
39 virtual wxDataViewCellMode GetMode() const
40 {
41 return m_mode;
42 }
43 virtual bool GetValue(wxVariant& value) const
44 {
45 value = m_value;
46 return true;
47 }
48
49 // NB: in Carbon this is always identical to the header alignment
50 virtual void SetAlignment(int align);
51 virtual void SetMode(wxDataViewCellMode mode);
52 virtual bool SetValue(const wxVariant& newValue)
53 {
54 m_value = newValue;
55 return true;
56 }
57
58 virtual void EnableEllipsize(wxEllipsizeMode mode = wxELLIPSIZE_MIDDLE);
59 virtual wxEllipsizeMode GetEllipsizeMode() const;
60
61 // implementation
62 // --------------
63
64 const wxVariant& GetValue() const
65 {
66 return m_value;
67 }
68
69 wxDataViewRendererNativeData* GetNativeData() const
70 {
71 return m_NativeDataPtr;
72 }
73
74 // a call to the native data browser function to render the data;
75 // returns true if the data value could be rendered, false otherwise
76 virtual bool MacRender() = 0;
77
78 void SetNativeData(wxDataViewRendererNativeData* newNativeDataPtr);
79
80
81#if wxOSX_USE_COCOA
82 // called when a value was edited by user
83 virtual void OSXOnCellChanged(NSObject *value,
84 const wxDataViewItem& item,
85 unsigned col);
b0607dd2
VZ
86
87 // called to ensure that the given attribute will be used for rendering the
88 // next cell (which had been already associated with this renderer before)
89 virtual void OSXApplyAttr(const wxDataViewItemAttr& attr);
98f8e666
VZ
90
91 // called to set the state of the next cell to be rendered
92 virtual void OSXApplyEnabled(bool enabled);
6eec70b9
VZ
93#endif // Cocoa
94
95private:
96 // contains the alignment flags
97 int m_alignment;
98
99 // storing the mode that determines how the cell is going to be shown
100 wxDataViewCellMode m_mode;
101
102 // data used by implementation of the native renderer
103 wxDataViewRendererNativeData* m_NativeDataPtr;
104
105 // value that is going to be rendered
106 wxVariant m_value;
107
108 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewRenderer)
109};
110
111#endif // _WX_OSX_DVRENDERER_H_
112