X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;ds=sidebyside;f=gtk%2Fgtktreeview.c;h=d411f5b690d96f1e26cf7b5aec2014afcc9cc8e5;hb=de47b90fd10ac494fda16af4c723ed2d5f6be946;hp=1fe6031194b33ae688988ddd20b41b95ba668867;hpb=aa1cab1ec255d01f4d58cc1bf3bec569e22fbec7;p=~andy%2Fgtk diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index 1fe603119..d411f5b69 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -11922,6 +11922,8 @@ gint gtk_tree_view_remove_column (GtkTreeView *tree_view, GtkTreeViewColumn *column) { + guint position; + g_return_val_if_fail (GTK_IS_TREE_VIEW (tree_view), -1); g_return_val_if_fail (GTK_IS_TREE_VIEW_COLUMN (column), -1); g_return_val_if_fail (gtk_tree_view_column_get_tree_view (column) == GTK_WIDGET (tree_view), -1); @@ -11946,6 +11948,8 @@ gtk_tree_view_remove_column (GtkTreeView *tree_view, _gtk_tree_view_column_unset_tree_view (column); + position = g_list_index (tree_view->priv->columns, column); + tree_view->priv->columns = g_list_remove (tree_view->priv->columns, column); tree_view->priv->n_columns--; @@ -11972,6 +11976,8 @@ gtk_tree_view_remove_column (GtkTreeView *tree_view, _gtk_tree_view_reset_header_styles (tree_view); + _gtk_tree_view_accessible_remove_column (tree_view, column, position); + g_object_unref (column); g_signal_emit (tree_view, tree_view_signals[COLUMNS_CHANGED], 0); @@ -12004,6 +12010,9 @@ gtk_tree_view_insert_column (GtkTreeView *tree_view, g_return_val_if_fail (gtk_tree_view_column_get_sizing (column) == GTK_TREE_VIEW_COLUMN_FIXED, -1); + if (position < 0 || position > tree_view->priv->n_columns) + position = tree_view->priv->n_columns; + g_object_ref_sink (column); if (tree_view->priv->n_columns == 0 && @@ -12038,6 +12047,9 @@ gtk_tree_view_insert_column (GtkTreeView *tree_view, } _gtk_tree_view_reset_header_styles (tree_view); + + _gtk_tree_view_accessible_add_column (tree_view, column, position); + g_signal_emit (tree_view, tree_view_signals[COLUMNS_CHANGED], 0); return tree_view->priv->n_columns; @@ -12139,6 +12151,24 @@ gtk_tree_view_insert_column_with_data_func (GtkTreeView *tree_vie return gtk_tree_view_insert_column (tree_view, column, position); } +/** + * gtk_tree_view_get_n_columns: + * @tree_view: a #GtkTreeView + * + * Queries the number of columns in the given @tree_view. + * + * Returns: The number of columns in the @tree_view + * + * Since: 3.4 + **/ +guint +gtk_tree_view_get_n_columns (GtkTreeView *tree_view) +{ + g_return_val_if_fail (GTK_IS_TREE_VIEW (tree_view), 0); + + return tree_view->priv->n_columns; +} + /** * gtk_tree_view_get_column: * @tree_view: A #GtkTreeView. @@ -12236,6 +12266,9 @@ gtk_tree_view_move_column_after (GtkTreeView *tree_view, } _gtk_tree_view_reset_header_styles (tree_view); + + _gtk_tree_view_accessible_reorder_column (tree_view, column); + g_signal_emit (tree_view, tree_view_signals[COLUMNS_CHANGED], 0); }