Get rid of WXGetAsCustom().

Instead, have WXOnActivate() and WXOnLeftClick() with same signatures as
their public API counterparts and just call Activate/LeftClick() from
them for wxDataViewCustomRenderer.

This accomplishes the same thing, but makes it easier to override
behaviour in wx's internal implementations of renderers.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67093 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2011-02-28 21:23:04 +00:00
parent 1852bf0db5
commit dbc3aec19a
3 changed files with 95 additions and 88 deletions

View File

@@ -41,29 +41,24 @@ public:
// implementation
// this is a replacement for dynamic_cast<wxDataViewCustomRenderer> in the
// code checking whether the renderer is interested in mouse events, it's
// overridden in wxDataViewCustomRenderer to return the object itself but
// intentionally returns NULL for all the other renderer classes as the
// user should _not_ be able to override Activate/LeftClick() when deriving
// from them for consistency with the other ports and while we can't
// prevent this from working at compile-time because all renderers are
// custom renderers in the generic implementation, we at least make sure
// that it doesn't work at run-time because Activate/LeftClick() would
// never be called
virtual wxDataViewCustomRenderer *WXGetAsCustom() { return NULL; }
// These callbacks are used by generic implementation of wxDVC itself.
// They're different from the corresponding Activate/LeftClick() methods
// which should only be overridable for the custom renderers while the
// generic implementation uses these ones for all of them, including the
// standard ones.
// The generic implementation of some standard renderers reacts to item
// activation, so provide this internal function which is called by
// wxDataViewCtrl for them. It is called with the old value of the cell and
// is passed the model and cell coordinates to be able to change the model
// value for this cell.
virtual void WXOnActivate(wxDataViewModel * WXUNUSED(model),
const wxVariant& WXUNUSED(valueOld),
const wxDataViewItem& WXUNUSED(item),
virtual bool WXOnActivate(wxRect WXUNUSED(cell),
wxDataViewModel *WXUNUSED(model),
const wxDataViewItem & WXUNUSED(item),
unsigned int WXUNUSED(col))
{
}
{ return false; }
virtual bool WXOnLeftClick(wxPoint WXUNUSED(cursor),
wxRect WXUNUSED(cell),
wxDataViewModel *WXUNUSED(model),
const wxDataViewItem & WXUNUSED(item),
unsigned int WXUNUSED(col) )
{ return false; }
private:
int m_align;