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:
@@ -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;
|
||||||
|
@@ -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;
|
||||||
}
|
}
|
||||||
|
@@ -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
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user