]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/dataview.cpp
use IMPLEMENT_APP_CONSOLE and not IMPLEMENT_APP for console apps
[wxWidgets.git] / src / gtk / dataview.cpp
index e2381d991086dd587db7628fe4ef9eebf9deb64b..dcaa4c1af9b99b430796975ec3a898fdfa5a30c8 100644 (file)
@@ -3572,6 +3572,8 @@ wxDataViewCtrl::~wxDataViewCtrl()
     if (m_notifier)
         GetModel()->RemoveNotifier( m_notifier );
 
+    m_cols.Clear();
+
     // remove the model from the GtkTreeView before it gets destroyed by the
     // wxDataViewCtrlBase's dtor
     gtk_tree_view_set_model( GTK_TREE_VIEW(m_treeview), NULL );
@@ -3583,6 +3585,8 @@ void wxDataViewCtrl::Init()
 {
     m_notifier = NULL;
     m_internal = NULL;
+    
+    m_cols.DeleteContents( true );
 }
 
 static GtkTargetEntry gs_target;
@@ -3783,6 +3787,28 @@ bool wxDataViewCtrl::PrependColumn( wxDataViewColumn *col )
     return true;
 }
 
+bool wxDataViewCtrl::InsertColumn( unsigned int pos, wxDataViewColumn *col )
+{
+    if (!wxDataViewCtrlBase::InsertColumn(pos,col))
+        return false;
+
+    m_cols.Insert( pos, col );
+
+#ifdef __WXGTK26__
+    if (!gtk_check_version(2,6,0))
+    {
+        if (gtk_tree_view_column_get_sizing( GTK_TREE_VIEW_COLUMN(col->GetGtkHandle()) ) !=
+               GTK_TREE_VIEW_COLUMN_FIXED)
+           gtk_tree_view_set_fixed_height_mode( GTK_TREE_VIEW(m_treeview), FALSE );
+    }
+#endif
+
+    gtk_tree_view_insert_column( GTK_TREE_VIEW(m_treeview),
+                                 GTK_TREE_VIEW_COLUMN(col->GetGtkHandle()), pos );
+
+    return true;
+}
+
 unsigned int wxDataViewCtrl::GetColumnCount() const
 {
     return m_cols.GetCount();
@@ -3795,7 +3821,7 @@ wxDataViewColumn* wxDataViewCtrl::GetColumn( unsigned int pos ) const
         return NULL;
 
     wxDataViewColumnList::const_iterator iter;
-    for (iter = m_cols.begin(); iter != m_cols.end(); iter++)
+    for (iter = m_cols.begin(); iter != m_cols.end(); ++iter)
     {
         wxDataViewColumn *col = *iter;
         if (GTK_TREE_VIEW_COLUMN(col->GetGtkHandle()) == gtk_col)
@@ -3812,9 +3838,7 @@ bool wxDataViewCtrl::DeleteColumn( wxDataViewColumn *column )
     gtk_tree_view_remove_column( GTK_TREE_VIEW(m_treeview),
                                  GTK_TREE_VIEW_COLUMN(column->GetGtkHandle()) );
 
-    m_cols.remove( column );
-
-    delete column;
+    m_cols.DeleteObject( column );
 
     return true;
 }
@@ -3822,14 +3846,14 @@ bool wxDataViewCtrl::DeleteColumn( wxDataViewColumn *column )
 bool wxDataViewCtrl::ClearColumns()
 {
     wxDataViewColumnList::iterator iter;
-    for (iter = m_cols.begin(); iter != m_cols.end(); iter++)
+    for (iter = m_cols.begin(); iter != m_cols.end(); ++iter)
     {
         wxDataViewColumn *col = *iter;
         gtk_tree_view_remove_column( GTK_TREE_VIEW(m_treeview),
                                      GTK_TREE_VIEW_COLUMN(col->GetGtkHandle()) );
     }
 
-    m_cols.clear();
+    m_cols.Clear();
 
     return true;
 }