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

View File

@@ -335,6 +335,7 @@ wxDataViewItem wxDataViewIndexListModel::GetNextSibling( const wxDataViewItem &i
// --------------------------------------------------------- // ---------------------------------------------------------
// wxDataViewRendererBase // wxDataViewRendererBase
// --------------------------------------------------------- // ---------------------------------------------------------
static wxDataViewItem g_item;
IMPLEMENT_ABSTRACT_CLASS(wxDataViewRendererBase, wxObject) IMPLEMENT_ABSTRACT_CLASS(wxDataViewRendererBase, wxObject)
@@ -372,6 +373,14 @@ bool wxDataViewRendererBase::StartEditing( const wxDataViewItem &item, wxRect la
m_editorCtrl->SetFocus(); m_editorCtrl->SetFocus();
#endif #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; return true;
} }
@@ -401,6 +410,13 @@ bool wxDataViewRendererBase::FinishEditing()
GetOwner()->GetOwner()->GetModel()->ValueChanged( m_item, col ); GetOwner()->GetOwner()->GetModel()->ValueChanged( m_item, col );
// m_editorCtrl->PopEventHandler( true ); // 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; return true;
} }

View File

@@ -511,6 +511,9 @@ public:
void DestroyTree(); void DestroyTree();
void HitTest( const wxPoint & point, wxDataViewItem & item, wxDataViewColumn* &column ); void HitTest( const wxPoint & point, wxDataViewItem & item, wxDataViewColumn* &column );
wxRect GetItemRect( const wxDataViewItem & item, const 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: private:
wxDataViewTreeNode * GetTreeNodeByRow( unsigned int row ); wxDataViewTreeNode * GetTreeNodeByRow( unsigned int row );
//We did not need this temporarily //We did not need this temporarily
@@ -1878,6 +1881,7 @@ void wxDataViewMainWindow::OnRenameTimer()
wxDataViewItem item = GetItemByRow( m_currentRow ); wxDataViewItem item = GetItemByRow( m_currentRow );
m_currentCol->GetRenderer()->StartEditing( item, labelRect ); m_currentCol->GetRenderer()->StartEditing( item, labelRect );
} }
//------------------------------------------------------------------ //------------------------------------------------------------------
@@ -3496,6 +3500,7 @@ wxDataViewItem wxDataViewMainWindow::GetSelection() const
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// wxDataViewCtrl // wxDataViewCtrl
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
WX_DEFINE_LIST(wxDataViewColumnList);
IMPLEMENT_DYNAMIC_CLASS(wxDataViewCtrl, wxDataViewCtrlBase) IMPLEMENT_DYNAMIC_CLASS(wxDataViewCtrl, wxDataViewCtrlBase)
@@ -3600,6 +3605,7 @@ bool wxDataViewCtrl::AppendColumn( wxDataViewColumn *col )
if (!wxDataViewCtrlBase::AppendColumn(col)) if (!wxDataViewCtrlBase::AppendColumn(col))
return false; return false;
m_cols.Append( col );
OnColumnChange(); OnColumnChange();
return true; return true;
} }
@@ -3622,6 +3628,47 @@ void wxDataViewCtrl::DoSetIndent()
m_clientArea->UpdateDisplay(); 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 //Selection code with wxDataViewItem as parameters
wxDataViewItem wxDataViewCtrl::GetSelection() const wxDataViewItem wxDataViewCtrl::GetSelection() const
{ {
@@ -3811,6 +3858,20 @@ int wxDataViewCtrl::GetRowByItem( const wxDataViewItem & item ) const
return m_clientArea->GetRowByItem( item ); 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 #endif
// !wxUSE_GENERICDATAVIEWCTRL // !wxUSE_GENERICDATAVIEWCTRL