From: Robert Roebling Date: Mon, 28 May 2007 13:47:49 +0000 (+0000) Subject: Removed wxDataViewViewColumn since it is redundant. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/63415a4212c12ba53f5ca48d16b80bf3bb297a1e Removed wxDataViewViewColumn since it is redundant. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46230 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/docs/latex/wx/dataviewmodel.tex b/docs/latex/wx/dataviewmodel.tex index 095ce8918e..4a00cfce13 100644 --- a/docs/latex/wx/dataviewmodel.tex +++ b/docs/latex/wx/dataviewmodel.tex @@ -119,14 +119,6 @@ Adds {\it notifier} to the internal list of notifers. See also \helpref{RemoveNotifier}{wxdataviewlistmodelremovenotifier}. -\membersection{wxDataViewListModel::AddViewingColumn}\label{wxdataviewlistmodeladdviewingcolumn} - -\func{void}{AddViewingColumn}{\param{wxDataViewColumn* }{view\_column}, \param{unsigned int }{model\_column}} - -Used internally. Used for maintaining a list of -\helpref{wxDataViewColumn}{wxdataviewcolumn} that -display a certain column of this model. - \membersection{wxDataViewListModel::Cleared}\label{wxdataviewlistmodelcleared} \func{bool}{virtual Cleared}{\void} @@ -171,14 +163,6 @@ Removes the notifier from the list of notifiers. See also \helpref{AddNotifier}{wxdataviewlistmodeladdnotifier}. -\membersection{wxDataViewListModel::RemoveViewingColumn}\label{wxdataviewlistmodelremoveviewingcolumn} - -\func{void}{RemoveViewingColumn}{\param{wxDataViewColumn* }{column}} - -Used internally. Used for maintaining a list of -\helpref{wxDataViewColumn}{wxdataviewcolumn} that -display a certain column of this model. - \membersection{wxDataViewListModel::RowAppended}\label{wxdataviewlistmodelrowappended} \func{virtual bool}{RowAppended}{\void} diff --git a/include/wx/dataview.h b/include/wx/dataview.h index b802aad14f..9cbdf29fef 100644 --- a/include/wx/dataview.h +++ b/include/wx/dataview.h @@ -119,12 +119,6 @@ public: class WXDLLIMPEXP_ADV wxDataViewListModel: public wxDataViewModel { - friend class WXDLLIMPEXP_ADV wxDataViewCtrl; - friend class WXDLLIMPEXP_ADV wxDataViewCtrlBase; - friend class WXDLLIMPEXP_ADV wxDataViewSortedListModel; - friend class WXDLLIMPEXP_ADV wxDataViewColumnBase; - friend class WXDLLIMPEXP_ADV wxGtkDataViewListModelNotifier; - public: wxDataViewListModel(); @@ -150,23 +144,17 @@ public: virtual bool RowsReordered( unsigned int *new_order ); virtual bool Cleared(); + void AddNotifier( wxDataViewListModelNotifier *notifier ); + void RemoveNotifier( wxDataViewListModelNotifier *notifier ); + protected: // the user should not delete this class directly: he should use DecRef() instead! virtual ~wxDataViewListModel(); - // Used internally - void AddViewingColumn( wxDataViewColumn *view_column, unsigned int model_column ); - void RemoveViewingColumn( wxDataViewColumn *column ); - - void AddNotifier( wxDataViewListModelNotifier *notifier ); - void RemoveNotifier( wxDataViewListModelNotifier *notifier ); - wxList m_notifiers; - wxList m_viewingColumns; }; - // --------------------------------------------------------- // wxDataViewSortedListModel // --------------------------------------------------------- diff --git a/src/common/datavcmn.cpp b/src/common/datavcmn.cpp index c3aba3e3d4..0e9b950771 100644 --- a/src/common/datavcmn.cpp +++ b/src/common/datavcmn.cpp @@ -32,7 +32,6 @@ const wxChar wxDataViewCtrlNameStr[] = wxT("dataviewCtrl"); wxDataViewListModel::wxDataViewListModel() { - m_viewingColumns.DeleteContents( true ); m_notifiers.DeleteContents( true ); } @@ -168,28 +167,6 @@ bool wxDataViewListModel::Cleared() return ret; } -void wxDataViewListModel::AddViewingColumn( wxDataViewColumn *view_column, unsigned int model_column ) -{ - m_viewingColumns.Append( new wxDataViewViewingColumn( view_column, model_column ) ); -} - -void wxDataViewListModel::RemoveViewingColumn( wxDataViewColumn *column ) -{ - wxList::compatibility_iterator node = m_viewingColumns.GetFirst(); - while (node) - { - wxDataViewViewingColumn* tmp = (wxDataViewViewingColumn*) node->GetData(); - - if (tmp->m_viewColumn == column) - { - m_viewingColumns.DeleteObject( tmp ); - return; - } - - node = node->GetNext(); - } -} - void wxDataViewListModel::AddNotifier( wxDataViewListModelNotifier *notifier ) { m_notifiers.Append( notifier ); @@ -872,11 +849,6 @@ wxDataViewColumnBase::~wxDataViewColumnBase() { if (m_renderer) delete m_renderer; - - if (GetOwner()) - { - GetOwner()->GetModel()->RemoveViewingColumn( (wxDataViewColumn*) this ); - } } int wxDataViewColumnBase::GetFlags() const @@ -1029,7 +1001,6 @@ bool wxDataViewCtrlBase::AppendColumn( wxDataViewColumn *col ) { m_cols.Append( (wxObject*) col ); col->SetOwner( (wxDataViewCtrl*) this ); - m_model->AddViewingColumn( col, col->GetModelColumn() ); return true; } diff --git a/src/gtk/dataview.cpp b/src/gtk/dataview.cpp index 8618280d37..98a173db12 100644 --- a/src/gtk/dataview.cpp +++ b/src/gtk/dataview.cpp @@ -588,7 +588,7 @@ static GtkCellEditable *gtk_wx_cell_renderer_start_editing( // wxRect renderrect( rect.x, rect.y, rect.width, rect.height ); wxRect renderrect( cell_area->x, cell_area->y, cell_area->width, cell_area->height ); - wxDataViewListModel *model = cell->GetOwner()->GetOwner()->GetModel(); + // wxDataViewListModel *model = cell->GetOwner()->GetOwner()->GetModel(); GtkTreePath *treepath = gtk_tree_path_new_from_string( path ); unsigned int model_row = (unsigned int)gtk_tree_path_get_indices (treepath)[0]; @@ -777,7 +777,9 @@ gtk_wx_cell_renderer_activate( class wxGtkDataViewListModelNotifier: public wxDataViewListModelNotifier { public: - wxGtkDataViewListModelNotifier( GtkWxListStore* gtk_store, wxDataViewListModel *wx_model ); + wxGtkDataViewListModelNotifier( GtkWxListStore* gtk_store, + wxDataViewListModel *wx_model, + wxDataViewCtrl* ctrl ); ~wxGtkDataViewListModelNotifier(); virtual bool RowAppended(); @@ -791,6 +793,7 @@ public: GtkWxListStore *m_gtk_store; wxDataViewListModel *m_wx_model; + wxDataViewCtrl *m_owner; }; // --------------------------------------------------------- @@ -798,10 +801,12 @@ public: // --------------------------------------------------------- wxGtkDataViewListModelNotifier::wxGtkDataViewListModelNotifier( - GtkWxListStore* gtk_store, wxDataViewListModel *wx_model ) + GtkWxListStore* gtk_store, wxDataViewListModel *wx_model, + wxDataViewCtrl *ctrl ) { m_gtk_store = gtk_store; m_wx_model = wx_model; + m_owner = ctrl; } wxGtkDataViewListModelNotifier::~wxGtkDataViewListModelNotifier() @@ -879,34 +884,31 @@ bool wxGtkDataViewListModelNotifier::RowChanged( unsigned int row ) bool wxGtkDataViewListModelNotifier::ValueChanged( unsigned int model_col, unsigned int model_row ) { // This adds GTK+'s missing MVC logic for ValueChanged - wxObjectList::compatibility_iterator - node = GetOwner()->m_viewingColumns.GetFirst(); - while (node) + unsigned int index; + for (index = 0; index < m_owner->GetColumnCount(); index++) { - wxDataViewViewingColumn* viewing_column = (wxDataViewViewingColumn*) node->GetData(); - if (viewing_column->m_modelColumn == model_col) + wxDataViewColumn *column = m_owner->GetColumn( index ); + if (column->GetModelColumn() == model_col) { - GtkTreeView *widget = GTK_TREE_VIEW(viewing_column->m_viewColumn->GetOwner()->m_treeview); - GtkTreeViewColumn *column = GTK_TREE_VIEW_COLUMN(viewing_column->m_viewColumn->GetGtkHandle()); + GtkTreeView *widget = GTK_TREE_VIEW(m_owner->m_treeview); + GtkTreeViewColumn *gcolumn = GTK_TREE_VIEW_COLUMN(column->GetGtkHandle()); // Get cell area GtkTreePath *path = gtk_tree_path_new(); gtk_tree_path_append_index( path, model_row ); GdkRectangle cell_area; - gtk_tree_view_get_cell_area( widget, path, column, &cell_area ); + gtk_tree_view_get_cell_area( widget, path, gcolumn, &cell_area ); gtk_tree_path_free( path ); GtkAdjustment* hadjust = gtk_tree_view_get_hadjustment( widget ); double d = gtk_adjustment_get_value( hadjust ); int xdiff = (int) d; - int ydiff = column->button->allocation.height; + int ydiff = gcolumn->button->allocation.height; // Redraw gtk_widget_queue_draw_area( GTK_WIDGET(widget), cell_area.x - xdiff, ydiff + cell_area.y, cell_area.width, cell_area.height ); } - - node = node->GetNext(); } return true; @@ -921,17 +923,9 @@ bool wxGtkDataViewListModelNotifier::RowsReordered( unsigned int *new_order ) gtk_tree_path_free (path); // This adds GTK+'s missing MVC logic for RowsReordered - wxObjectList::compatibility_iterator - node = GetOwner()->m_viewingColumns.GetFirst(); - while (node) - { - wxDataViewViewingColumn* viewing_column = (wxDataViewViewingColumn*) node->GetData(); - GtkTreeView *widget = GTK_TREE_VIEW(viewing_column->m_viewColumn->GetOwner()->m_treeview); - // Doesn't work yet... - gtk_widget_queue_draw( GTK_WIDGET(widget) ); - - node = node->GetNext(); - } + GtkTreeView *widget = GTK_TREE_VIEW(m_owner->m_treeview); + // Doesn't work yet... + gtk_widget_queue_draw( GTK_WIDGET(widget) ); return true; } @@ -2096,7 +2090,7 @@ bool wxDataViewCtrl::AssociateModel( wxDataViewListModel *model ) GtkWxListStore *gtk_store = wxgtk_list_store_new(); gtk_store->model = model; - m_notifier = new wxGtkDataViewListModelNotifier( gtk_store, model ); + m_notifier = new wxGtkDataViewListModelNotifier( gtk_store, model, this ); model->AddNotifier( m_notifier );