From 907f09f44b7b18159d71bb08e9af5fce8c814a14 Mon Sep 17 00:00:00 2001 From: =?utf8?q?V=C3=A1clav=20Slav=C3=ADk?= Date: Tue, 17 Jan 2012 14:05:17 +0000 Subject: [PATCH] Replace wxDataViewCtrl::StartEditor() with EditItem(). This is more consistent with other wxDVC methods (taking column pointer as its argument) and other DVC-like classes where the name EditLabel() is used for similar purposes. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70377 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/dataview.h | 7 ++++--- include/wx/generic/dataview.h | 2 +- include/wx/gtk/dataview.h | 2 +- include/wx/osx/dataview.h | 2 +- interface/wx/dataview.h | 19 +++++++++++-------- src/common/datavcmn.cpp | 5 +++++ src/generic/datavgen.cpp | 11 +++++------ src/gtk/dataview.cpp | 10 +++++----- src/osx/dataview_osx.cpp | 4 ++-- 9 files changed, 35 insertions(+), 27 deletions(-) diff --git a/include/wx/dataview.h b/include/wx/dataview.h index 0575611829..ba69d16a7d 100644 --- a/include/wx/dataview.h +++ b/include/wx/dataview.h @@ -701,9 +701,10 @@ public: virtual bool SetRowHeight( int WXUNUSED(rowHeight) ) { return false; } - virtual void StartEditor( const wxDataViewItem & WXUNUSED(item), - unsigned int WXUNUSED(column) ) - { } + virtual void EditItem(const wxDataViewItem& item, const wxDataViewColumn *column) = 0; + + // Use EditItem() instead + wxDEPRECATED( void StartEditor(const wxDataViewItem& item, unsigned int column) ); #if wxUSE_DRAG_AND_DROP virtual bool EnableDragSource(const wxDataFormat& WXUNUSED(format)) diff --git a/include/wx/generic/dataview.h b/include/wx/generic/dataview.h index b6f643055f..32e7723fd9 100644 --- a/include/wx/generic/dataview.h +++ b/include/wx/generic/dataview.h @@ -189,7 +189,7 @@ public: virtual wxBorder GetDefaultBorder() const; - virtual void StartEditor( const wxDataViewItem & item, unsigned int column ); + virtual void EditItem(const wxDataViewItem& item, const wxDataViewColumn *column); protected: virtual void EnsureVisible( int row, int column ); diff --git a/include/wx/gtk/dataview.h b/include/wx/gtk/dataview.h index a10d89495a..fad45a6b48 100644 --- a/include/wx/gtk/dataview.h +++ b/include/wx/gtk/dataview.h @@ -160,7 +160,7 @@ public: virtual bool SetRowHeight( int rowHeight ); - virtual void StartEditor( const wxDataViewItem & item, unsigned int column ); + virtual void EditItem(const wxDataViewItem& item, const wxDataViewColumn *column); virtual void Expand( const wxDataViewItem & item ); virtual void Collapse( const wxDataViewItem & item ); diff --git a/include/wx/osx/dataview.h b/include/wx/osx/dataview.h index 752939765c..5962127d7b 100644 --- a/include/wx/osx/dataview.h +++ b/include/wx/osx/dataview.h @@ -201,7 +201,7 @@ public: // finishes editing of custom items; if no custom item is currently edited the method does nothing void FinishCustomItemEditing(); - virtual void StartEditor( const wxDataViewItem & item, unsigned int column ); + virtual void EditItem(const wxDataViewItem& item, const wxDataViewColumn *column); // returns the n-th pointer to a column; // this method is different from GetColumn(unsigned int pos) because here 'n' is not a position in the control but the n-th diff --git a/interface/wx/dataview.h b/interface/wx/dataview.h index f7bf4a2afc..c193002f53 100644 --- a/interface/wx/dataview.h +++ b/interface/wx/dataview.h @@ -997,6 +997,17 @@ public: */ virtual bool DeleteColumn(wxDataViewColumn* column); + /** + Programmatically starts editing given cell of @a item. + + Doesn't do anything if the item or this column is not editable. + + @note Currently not implemented in wxOSX/Carbon. + + @since 2.9.4 + */ + virtual void EditItem(const wxDataViewItem& item, const wxDataViewColumn *column); + /** Enable drag operations using the given @a format. */ @@ -1213,14 +1224,6 @@ public: */ virtual void SetSelections(const wxDataViewItemArray& sel); - /** - Programmatically starts editing the given item on the given column. - Currently not implemented on wxOSX Carbon. - @since 2.9.2 - */ - - virtual void StartEditor(const wxDataViewItem & item, unsigned int column); - /** Unselect the given item. */ diff --git a/src/common/datavcmn.cpp b/src/common/datavcmn.cpp index ae7dcd4043..6dcf50fb56 100644 --- a/src/common/datavcmn.cpp +++ b/src/common/datavcmn.cpp @@ -1418,6 +1418,11 @@ wxDataViewCtrlBase::InsertColumn( unsigned int WXUNUSED(pos), wxDataViewColumn * return true; } +void wxDataViewCtrlBase::StartEditor(const wxDataViewItem& item, unsigned int column) +{ + EditItem(item, GetColumn(column)); +} + // --------------------------------------------------------- // wxDataViewEvent // --------------------------------------------------------- diff --git a/src/generic/datavgen.cpp b/src/generic/datavgen.cpp index a4a55c65a1..5fd5797d8c 100644 --- a/src/generic/datavgen.cpp +++ b/src/generic/datavgen.cpp @@ -3599,7 +3599,7 @@ void wxDataViewMainWindow::OnChar( wxKeyEvent &event ) wxDataViewColumn *editableCol = FindColumnForEditing(item, wxDATAVIEW_CELL_EDITABLE); if ( editableCol ) - GetOwner()->StartEditor(item, GetOwner()->GetColumnIndex(editableCol)); + GetOwner()->EditItem(item, editableCol); } } break; @@ -5021,13 +5021,12 @@ bool wxDataViewCtrl::IsExpanded( const wxDataViewItem & item ) const return false; } -void wxDataViewCtrl::StartEditor( const wxDataViewItem & item, unsigned int column ) +void wxDataViewCtrl::EditItem(const wxDataViewItem& item, const wxDataViewColumn *column) { - wxDataViewColumn* col = GetColumn( column ); - if (!col) - return; + wxCHECK_RET( item.IsOk(), "invalid item" ); + wxCHECK_RET( column, "no column provided" ); - m_clientArea->StartEditing(item, col); + m_clientArea->StartEditing(item, column); } #endif // !wxUSE_GENERICDATAVIEWCTRL diff --git a/src/gtk/dataview.cpp b/src/gtk/dataview.cpp index dd11509d67..ffbea2a9a1 100644 --- a/src/gtk/dataview.cpp +++ b/src/gtk/dataview.cpp @@ -4853,18 +4853,18 @@ wxDataViewColumn *wxDataViewCtrl::GetCurrentColumn() const return FromGTKColumn(col); } -void wxDataViewCtrl::StartEditor(const wxDataViewItem& item, unsigned int column) +void wxDataViewCtrl::EditItem(const wxDataViewItem& item, const wxDataViewColumn *column) { wxCHECK_RET( m_treeview, "Current item can't be set before creating the control." ); + wxCHECK_RET( item.IsOk(), "invalid item" ); + wxCHECK_RET( column, "no column provided" ); // We need to make sure the model knows about this item or the path would // be invalid and gtk_tree_view_set_cursor() would silently do nothing. ExpandAncestors(item); - - wxDataViewColumn *dvcolumn = GetColumn(column); - wxASSERT_MSG(dvcolumn, "Could not retrieve column"); - GtkTreeViewColumn *gcolumn = GTK_TREE_VIEW_COLUMN(dvcolumn->GetGtkHandle()); + + GtkTreeViewColumn *gcolumn = GTK_TREE_VIEW_COLUMN(column->GetGtkHandle()); // We also need to preserve the existing selection from changing. // Unfortunately the only way to do it seems to use our own selection diff --git a/src/osx/dataview_osx.cpp b/src/osx/dataview_osx.cpp index ecbf403f6b..05ad19fcbe 100644 --- a/src/osx/dataview_osx.cpp +++ b/src/osx/dataview_osx.cpp @@ -635,9 +635,9 @@ void wxDataViewCtrl::AddChildren(wxDataViewItem const& parentItem) (void) GetModel()->ItemsAdded(parentItem,items); } -void wxDataViewCtrl::StartEditor( const wxDataViewItem & item, unsigned int column ) +void wxDataViewCtrl::EditItem(const wxDataViewItem& item, const wxDataViewColumn *column) { - GetDataViewPeer()->StartEditor(item, column); + GetDataViewPeer()->StartEditor(item, GetColumnPosition(column)); } void wxDataViewCtrl::FinishCustomItemEditing() -- 2.49.0