Hartwig's patch for OS X implementation of wxDataViewCtrl

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48379 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
2007-08-25 13:15:16 +00:00
parent b74077ace2
commit 07c51ff1fa
4 changed files with 450 additions and 140 deletions

View File

@@ -500,15 +500,37 @@ public:
return this;
}
virtual wxDataViewItem GetSelection(void);
virtual void EnsureVisible(wxDataViewItem const& item, wxDataViewColumn const* columnPtr=NULL);
virtual wxRect GetItemRect(wxDataViewItem const& item, wxDataViewColumn const* columnPtr) const;
virtual wxDataViewItem GetSelection(void) const;
virtual int GetSelections(wxDataViewItemArray& sel) const;
virtual void HitTest(wxPoint const& point, wxDataViewItem& item, wxDataViewColumn*& columnPtr) const;
virtual bool IsSelected(wxDataViewItem const& item) const;
virtual void SelectAll(void);
virtual void Select(wxDataViewItem const& item);
virtual void SetSelections(wxDataViewItemArray const& sel);
virtual void Unselect(wxDataViewItem const& item);
virtual void UnselectAll(void);
//
// implementation
//
// adds all children of the passed parent to the control; if 'parentItem' is invalid the root(s) is/are added:
// adds all children of the passed parent to the control; if 'parentItem' is invalid the root(s) is/are added:
void AddChildrenLevel(wxDataViewItem const& parentItem);
// checks if currently a delete process is running:
bool IsDeleting(void) const
{
return this->m_Deleting;
}
// with CG, we need to get the context from an kEventControlDraw event
// unfortunately, the DataBrowser callbacks don't provide the context
// and we need it, so we need to set/remove it before and after draw
@@ -522,6 +544,12 @@ public:
return this->m_cgContext;
}
/// sets the flag indicating a deletion process:
void SetDeleting(bool deleting)
{
this->m_Deleting = deleting;
}
protected:
// inherited methods from wxDataViewCtrlBase:
virtual void DoSetExpanderColumn(void);
@@ -538,9 +566,13 @@ private:
// variables
//
wxDataViewModelNotifier* m_NotifierPtr; // the notifier is NOT owned by this class but by the associated model
bool m_Deleting; // flag indicating if a delete process is running; this flag is necessary because the notifier indicating an item deletion in the model may be called
// after the actual deletion of the item; then, the callback function "wxMacDataViewDataBrowserListViewControl::DataBrowserGetSetItemDataProc" may
// try to update data into variables that are already deleted; this flag will ignore all variable update requests during item deletion
void* m_cgContext; // pointer to core graphics context
wxDataViewModelNotifier* m_NotifierPtr; // the notifier is NOT owned by this class but by the associated model
// wxWidget internal stuff:
DECLARE_DYNAMIC_CLASS(wxDataViewCtrl)