/////////////////////////////////////////////////////////////////////////////// // Name: wx/osx/dvrenderer.h // Purpose: wxDataViewRenderer for OS X wxDataViewCtrl implementations // Author: Vadim Zeitlin // Created: 2009-11-07 (extracted from wx/osx/dataview.h) // Copyright: (c) 2009 Vadim Zeitlin // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// #ifndef _WX_OSX_DVRENDERER_H_ #define _WX_OSX_DVRENDERER_H_ class wxDataViewRendererNativeData; // ---------------------------------------------------------------------------- // wxDataViewRenderer // ---------------------------------------------------------------------------- class WXDLLIMPEXP_ADV wxDataViewRenderer : public wxDataViewRendererBase { public: // constructors / destructor // ------------------------- wxDataViewRenderer(const wxString& varianttype, wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int align = wxDVR_DEFAULT_ALIGNMENT); virtual ~wxDataViewRenderer(); // inherited methods from wxDataViewRendererBase // --------------------------------------------- virtual int GetAlignment() const { return m_alignment; } virtual wxDataViewCellMode GetMode() const { return m_mode; } virtual bool GetValue(wxVariant& value) const { value = m_value; return true; } // NB: in Carbon this is always identical to the header alignment virtual void SetAlignment(int align); virtual void SetMode(wxDataViewCellMode mode); virtual bool SetValue(const wxVariant& newValue) { m_value = newValue; return true; } virtual void EnableEllipsize(wxEllipsizeMode mode = wxELLIPSIZE_MIDDLE); virtual wxEllipsizeMode GetEllipsizeMode() const; // implementation // -------------- const wxVariant& GetValue() const { return m_value; } wxDataViewRendererNativeData* GetNativeData() const { return m_NativeDataPtr; } // a call to the native data browser function to render the data; // returns true if the data value could be rendered, false otherwise virtual bool MacRender() = 0; void SetNativeData(wxDataViewRendererNativeData* newNativeDataPtr); #if wxOSX_USE_COCOA // called when a value was edited by user virtual void OSXOnCellChanged(NSObject *value, const wxDataViewItem& item, unsigned col); // called to ensure that the given attribute will be used for rendering the // next cell (which had been already associated with this renderer before) virtual void OSXApplyAttr(const wxDataViewItemAttr& attr); // called to set the state of the next cell to be rendered virtual void OSXApplyEnabled(bool enabled); #endif // Cocoa private: // contains the alignment flags int m_alignment; // storing the mode that determines how the cell is going to be shown wxDataViewCellMode m_mode; // data used by implementation of the native renderer wxDataViewRendererNativeData* m_NativeDataPtr; // value that is going to be rendered wxVariant m_value; DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewRenderer) }; #endif // _WX_OSX_DVRENDERER_H_