X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/023eecb7e097d9d2251d85292deaa54dd9ca70d9..1a86d2e52c76551a8067403bc08d82bee0186d2c:/src/gtk/dataview.cpp?ds=inline diff --git a/src/gtk/dataview.cpp b/src/gtk/dataview.cpp index 449be2f1ae..c80f8bd012 100644 --- a/src/gtk/dataview.cpp +++ b/src/gtk/dataview.cpp @@ -3620,7 +3620,10 @@ bool wxDataViewCtrl::Create(wxWindow *parent, wxWindowID id, #ifdef __WXGTK26__ if (!gtk_check_version(2,6,0)) - gtk_tree_view_set_fixed_height_mode( GTK_TREE_VIEW(m_treeview), TRUE ); + { + bool fixed = (style & wxDV_VARIABLE_LINE_HEIGHT) == 0; + gtk_tree_view_set_fixed_height_mode( GTK_TREE_VIEW(m_treeview), fixed ); + } #endif if (style & wxDV_MULTIPLE) @@ -3712,6 +3715,14 @@ bool wxDataViewCtrl::AssociateModel( wxDataViewModel *model ) if (!wxDataViewCtrlBase::AssociateModel( model )) return false; +#ifdef __WXGTK26__ + if (!gtk_check_version(2,6,0)) + { + bool fixed = (((GetWindowStyle() & wxDV_VARIABLE_LINE_HEIGHT) == 0) || (model->IsVirtualListModel())); + gtk_tree_view_set_fixed_height_mode( GTK_TREE_VIEW(m_treeview), fixed ); + } +#endif + GtkWxTreeModel *gtk_model = wxgtk_tree_model_new(); m_internal = new wxDataViewCtrlInternal( this, model, gtk_model ); gtk_model->internal = m_internal; @@ -3772,6 +3783,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();