Patch from Bo for recent API changes

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48398 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
2007-08-26 14:48:29 +00:00
parent 6b54668b4f
commit afebb87be1
3 changed files with 88 additions and 0 deletions

View File

@@ -314,6 +314,8 @@ protected:
// wxDataViewCtrl
// ---------------------------------------------------------
WX_DECLARE_LIST(wxDataViewColumn, wxDataViewColumnList );
class WXDLLIMPEXP_ADV wxDataViewCtrl: public wxDataViewCtrlBase,
public wxScrollHelperNative
{
@@ -354,6 +356,11 @@ public:
virtual void DoSetExpanderColumn();
virtual void DoSetIndent();
virtual unsigned int GetColumnCount() const;
virtual wxDataViewColumn* GetColumn( unsigned int pos ) const;
virtual bool DeleteColumn( wxDataViewColumn *column );
virtual bool ClearColumns();
virtual wxDataViewItem GetSelection() const;
virtual int GetSelections( wxDataViewItemArray & sel ) const;
virtual void SetSelections( const wxDataViewItemArray & sel );
@@ -369,6 +376,9 @@ public:
virtual void HitTest( const wxPoint & point, wxDataViewItem & item, wxDataViewColumn* &column ) const;
virtual wxRect GetItemRect( const wxDataViewItem & item, const wxDataViewColumn *column = NULL ) const;
virtual void Expand( const wxDataViewItem & item );
virtual void Collapse( const wxDataViewItem & item );
protected:
virtual int GetSelections( wxArrayInt & sel ) const;
virtual void SetSelections( const wxArrayInt & sel );
@@ -400,6 +410,7 @@ public: // utility functions not part of the API
wxWindow *GetMainWindow() { return (wxWindow*) m_clientArea; }
private:
wxDataViewColumnList m_cols;
wxDataViewModelNotifier *m_notifier;
wxDataViewMainWindow *m_clientArea;
wxDataViewHeaderWindow *m_headerArea;

View File

@@ -335,6 +335,7 @@ wxDataViewItem wxDataViewIndexListModel::GetNextSibling( const wxDataViewItem &i
// ---------------------------------------------------------
// wxDataViewRendererBase
// ---------------------------------------------------------
static wxDataViewItem g_item;
IMPLEMENT_ABSTRACT_CLASS(wxDataViewRendererBase, wxObject)
@@ -372,6 +373,14 @@ bool wxDataViewRendererBase::StartEditing( const wxDataViewItem &item, wxRect la
m_editorCtrl->SetFocus();
#endif
// Now we should send Editing Started event
wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_STARTED, GetOwner()->GetOwner()->GetId() );
event.SetDataViewColumn( GetOwner() );
event.SetModel( GetOwner()->GetOwner()->GetModel() );
event.SetItem( item );
g_item = item;
GetOwner()->GetOwner()->GetEventHandler()->ProcessEvent( event );
return true;
}
@@ -402,6 +411,13 @@ bool wxDataViewRendererBase::FinishEditing()
// m_editorCtrl->PopEventHandler( true );
// Now we should send Editing Done event
wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_DONE, GetOwner()->GetOwner()->GetId() );
event.SetDataViewColumn( GetOwner() );
event.SetModel( GetOwner()->GetOwner()->GetModel() );
event.SetItem( g_item );
GetOwner()->GetOwner()->GetEventHandler()->ProcessEvent( event );
return true;
}

View File

@@ -511,6 +511,9 @@ public:
void DestroyTree();
void HitTest( const wxPoint & point, wxDataViewItem & item, wxDataViewColumn* &column );
wxRect GetItemRect( const wxDataViewItem & item, const wxDataViewColumn* column );
void Expand( unsigned int row ) { OnExpanding( row ); }
void Collapse( unsigned int row ) { OnCollapsing( row ); }
private:
wxDataViewTreeNode * GetTreeNodeByRow( unsigned int row );
//We did not need this temporarily
@@ -1878,6 +1881,7 @@ void wxDataViewMainWindow::OnRenameTimer()
wxDataViewItem item = GetItemByRow( m_currentRow );
m_currentCol->GetRenderer()->StartEditing( item, labelRect );
}
//------------------------------------------------------------------
@@ -3496,6 +3500,7 @@ wxDataViewItem wxDataViewMainWindow::GetSelection() const
//-----------------------------------------------------------------------------
// wxDataViewCtrl
//-----------------------------------------------------------------------------
WX_DEFINE_LIST(wxDataViewColumnList);
IMPLEMENT_DYNAMIC_CLASS(wxDataViewCtrl, wxDataViewCtrlBase)
@@ -3600,6 +3605,7 @@ bool wxDataViewCtrl::AppendColumn( wxDataViewColumn *col )
if (!wxDataViewCtrlBase::AppendColumn(col))
return false;
m_cols.Append( col );
OnColumnChange();
return true;
}
@@ -3622,6 +3628,47 @@ void wxDataViewCtrl::DoSetIndent()
m_clientArea->UpdateDisplay();
}
unsigned int wxDataViewCtrl::GetColumnCount() const
{
return m_cols.GetCount();
}
wxDataViewColumn* wxDataViewCtrl::GetColumn( unsigned int pos ) const
{
wxDataViewColumnList::const_iterator iter;
int i = 0;
for (iter = m_cols.begin(); iter!=m_cols.end(); iter++)
{
if (i == pos)
return *iter;
if ((*iter)->IsHidden())
continue;
i ++;
}
return NULL;
}
bool wxDataViewCtrl::DeleteColumn( wxDataViewColumn *column )
{
wxDataViewColumnList::Node * ret = m_cols.Find( column );
if (ret == NULL)
return false;
m_cols.Erase(ret);
delete column;
OnColumnChange();
return true;
}
bool wxDataViewCtrl::ClearColumns()
{
m_cols.clear();
OnColumnChange();
return true;
}
//Selection code with wxDataViewItem as parameters
wxDataViewItem wxDataViewCtrl::GetSelection() const
{
@@ -3811,6 +3858,20 @@ int wxDataViewCtrl::GetRowByItem( const wxDataViewItem & item ) const
return m_clientArea->GetRowByItem( item );
}
void wxDataViewCtrl::Expand( const wxDataViewItem & item )
{
int row = m_clientArea->GetRowByItem( item );
if (row != -1)
m_clientArea->Expand(row);
}
void wxDataViewCtrl::Collapse( const wxDataViewItem & item )
{
int row = m_clientArea->GetRowByItem( item );
if (row != -1)
m_clientArea->Collapse(row);
}
#endif
// !wxUSE_GENERICDATAVIEWCTRL