void SetIcon( const wxIcon &icon ) { m_icon = icon; }
const wxIcon &GetIcon() const { return m_icon; }
+ bool IsSameAs(const wxDataViewIconText& other) const
+ {
+ return m_text == other.m_text && m_icon.IsSameAs(other.m_icon);
+ }
+
+ bool operator==(const wxDataViewIconText& other) const
+ {
+ return IsSameAs(other);
+ }
+
+ bool operator!=(const wxDataViewIconText& other) const
+ {
+ return !IsSameAs(other);
+ }
+
private:
wxString m_text;
wxIcon m_icon;
DECLARE_DYNAMIC_CLASS(wxDataViewIconText)
};
-inline
-bool operator==(const wxDataViewIconText& left, const wxDataViewIconText& right)
-{
- return left.GetText() == right.GetText() &&
- left.GetIcon().IsSameAs(right.GetIcon());
-}
-
-inline
-bool operator!=(const wxDataViewIconText& left, const wxDataViewIconText& right)
-{
- return !(left == right);
-}
-
DECLARE_VARIANT_OBJECT_EXPORTED(wxDataViewIconText, WXDLLIMPEXP_ADV)
// ----------------------------------------------------------------------------
virtual void SetAttr(const wxDataViewItemAttr& WXUNUSED(attr)) { }
+ virtual void SetEnabled(bool WXUNUSED(enabled)) { }
+
wxString GetVariantType() const { return m_variantType; }
// helper that calls SetValue and SetAttr:
// in-place editing
virtual bool HasEditorCtrl() const
{ return false; }
- virtual wxControl* CreateEditorCtrl(wxWindow * WXUNUSED(parent),
- wxRect WXUNUSED(labelRect),
- const wxVariant& WXUNUSED(value))
+ virtual wxWindow* CreateEditorCtrl(wxWindow * WXUNUSED(parent),
+ wxRect WXUNUSED(labelRect),
+ const wxVariant& WXUNUSED(value))
{ return NULL; }
- virtual bool GetValueFromEditorCtrl(wxControl * WXUNUSED(editor),
+ virtual bool GetValueFromEditorCtrl(wxWindow * WXUNUSED(editor),
wxVariant& WXUNUSED(value))
{ return false; }
virtual void CancelEditing();
virtual bool FinishEditing();
- wxControl *GetEditorCtrl() { return m_editorCtrl; }
+ wxWindow *GetEditorCtrl() { return m_editorCtrl; }
+
+ virtual bool IsCustomRenderer() const { return false; }
+
protected:
// Called from {Cancel,Finish}Editing() to cleanup m_editorCtrl
wxString m_variantType;
wxDataViewColumn *m_owner;
- wxWeakRef<wxControl> m_editorCtrl;
+ wxWeakRef<wxWindow> m_editorCtrl;
wxDataViewItem m_item; // for m_editorCtrl
- // internal utility:
- const wxDataViewCtrl* GetView() const;
+ // internal utility, may be used anywhere the window associated with the
+ // renderer is required
+ wxDataViewCtrl* GetView() const;
protected:
DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewRendererBase)
// to drag it: by default they all simply return false indicating that the
// events are not handled
- virtual bool Activate(wxRect WXUNUSED(cell),
+ virtual bool Activate(const wxRect& WXUNUSED(cell),
wxDataViewModel *WXUNUSED(model),
const wxDataViewItem & WXUNUSED(item),
unsigned int WXUNUSED(col))
{ return false; }
- virtual bool LeftClick(wxPoint WXUNUSED(cursor),
- wxRect WXUNUSED(cell),
+ virtual bool LeftClick(const wxPoint& WXUNUSED(cursor),
+ const wxRect& WXUNUSED(cell),
wxDataViewModel *WXUNUSED(model),
const wxDataViewItem & WXUNUSED(item),
unsigned int WXUNUSED(col) )
{ return false; }
- virtual bool StartDrag(wxPoint WXUNUSED(cursor),
- wxRect WXUNUSED(cell),
+ virtual bool StartDrag(const wxPoint& WXUNUSED(cursor),
+ const wxRect& WXUNUSED(cell),
wxDataViewModel *WXUNUSED(model),
const wxDataViewItem & WXUNUSED(item),
unsigned int WXUNUSED(col) )
virtual void SetAttr(const wxDataViewItemAttr& attr) { m_attr = attr; }
const wxDataViewItemAttr& GetAttr() const { return m_attr; }
+ // Store the enabled state of the item so that it can be accessed from
+ // Render() via GetEnabled() if needed.
+ virtual void SetEnabled(bool enabled) { m_enabled = enabled; }
+ bool GetEnabled() const { return m_enabled; }
+
// Implementation only from now on
// Prepare DC to use attributes and call Render().
void WXCallRender(wxRect rect, wxDC *dc, int state);
+ virtual bool IsCustomRenderer() const { return true; }
+
protected:
// helper for GetSize() implementations, respects attributes
wxSize GetTextExtent(const wxString& str) const;
private:
wxDataViewItemAttr m_attr;
+ bool m_enabled;
wxDECLARE_NO_COPY_CLASS(wxDataViewCustomRendererBase);
};
wxDataViewCellMode mode = wxDATAVIEW_CELL_EDITABLE,
int alignment = wxDVR_DEFAULT_ALIGNMENT );
virtual bool HasEditorCtrl() const { return true; }
- virtual wxControl* CreateEditorCtrl( wxWindow *parent, wxRect labelRect, const wxVariant &value );
- virtual bool GetValueFromEditorCtrl( wxControl* editor, wxVariant &value );
+ virtual wxWindow* CreateEditorCtrl( wxWindow *parent, wxRect labelRect, const wxVariant &value );
+ virtual bool GetValueFromEditorCtrl( wxWindow* editor, wxVariant &value );
virtual bool Render( wxRect rect, wxDC *dc, int state );
virtual wxSize GetSize() const;
virtual bool SetValue( const wxVariant &value );
wxDataViewCellMode mode = wxDATAVIEW_CELL_EDITABLE,
int alignment = wxDVR_DEFAULT_ALIGNMENT );
virtual bool HasEditorCtrl() const { return true; }
- virtual wxControl* CreateEditorCtrl( wxWindow *parent, wxRect labelRect, const wxVariant &value );
- virtual bool GetValueFromEditorCtrl( wxControl* editor, wxVariant &value );
+ virtual wxWindow* CreateEditorCtrl( wxWindow *parent, wxRect labelRect, const wxVariant &value );
+ virtual bool GetValueFromEditorCtrl( wxWindow* editor, wxVariant &value );
virtual bool Render( wxRect rect, wxDC *dc, int state );
virtual wxSize GetSize() const;
virtual bool SetValue( const wxVariant &value );
wxDataViewCellMode mode = wxDATAVIEW_CELL_EDITABLE,
int alignment = wxDVR_DEFAULT_ALIGNMENT );
- virtual wxControl* CreateEditorCtrl( wxWindow *parent, wxRect labelRect, const wxVariant &value );
- virtual bool GetValueFromEditorCtrl( wxControl* editor, wxVariant &value );
+ virtual wxWindow* CreateEditorCtrl( wxWindow *parent, wxRect labelRect, const wxVariant &value );
+ virtual bool GetValueFromEditorCtrl( wxWindow* editor, wxVariant &value );
virtual bool SetValue( const wxVariant &value );
virtual bool GetValue( wxVariant &value ) const;