]> git.saurik.com Git - wxWidgets.git/commitdiff
Removed wxDataViewViewColumn since it is redundant.
authorRobert Roebling <robert@roebling.de>
Mon, 28 May 2007 13:47:49 +0000 (13:47 +0000)
committerRobert Roebling <robert@roebling.de>
Mon, 28 May 2007 13:47:49 +0000 (13:47 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46230 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/latex/wx/dataviewmodel.tex
include/wx/dataview.h
src/common/datavcmn.cpp
src/gtk/dataview.cpp

index 095ce8918e7c3ece7a24e6ef067f9baf6a39f57e..4a00cfce13fda5918604b838f1c24f618ee5fb54 100644 (file)
@@ -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}
index b802aad14f17f325f52a3a90e8403b21ab19db5b..9cbdf29fef25ca2ae364490dd0771a8cf6521e42 100644 (file)
@@ -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
 // ---------------------------------------------------------
index c3aba3e3d4c6752677692ac7a582d596b3525d37..0e9b95077195f0207977433561f9e1faec2ee834 100644 (file)
@@ -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;
 }
 
index 8618280d370aba6aaa5f0f716660f54f46d5b824..98a173db122637a3f8ff58175c644bba66aeafe7 100644 (file)
@@ -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 );