From: Kristian Rietveld Date: Fri, 19 Apr 2002 23:41:37 +0000 (+0000) Subject: add _gtk_tree_view_column_autosize X-Git-Url: http://pileus.org/git/?a=commitdiff_plain;h=3e0a1a519043bd71084344b165c7f91bbf53dfdc;p=~andy%2Fgtk add _gtk_tree_view_column_autosize Fri Apr 19 23:38:16 2002 Kristian Rietveld * gtk/gtktreeprivate.h: add _gtk_tree_view_column_autosize * gtk/gtktreeview.c: privately export _gtk_tree_view_column_autosize, and add a small note about that function, (gtk_tree_view_button_press): check for double click and "not having an autosize" column before autosizing the column, * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_min_width): call _gtk_tree_view_column_autosize to update autosized column width (gtk_tree_view_column_set_max_width): ditto --- diff --git a/ChangeLog b/ChangeLog index 53a3c6a62..625b82957 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +Fri Apr 19 23:38:16 2002 Kristian Rietveld + + * gtk/gtktreeprivate.h: add _gtk_tree_view_column_autosize + + * gtk/gtktreeview.c: privately export _gtk_tree_view_column_autosize, + and add a small note about that function, + (gtk_tree_view_button_press): check for double click and + "not having an autosize" column before autosizing the column, + + * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_min_width): + call _gtk_tree_view_column_autosize to update autosized column width + (gtk_tree_view_column_set_max_width): ditto + 2002-04-20 Matthias Clasen * TODO, TODO.xml, README.nanox, docs/Changes-1.2.txt, diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 53a3c6a62..625b82957 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,16 @@ +Fri Apr 19 23:38:16 2002 Kristian Rietveld + + * gtk/gtktreeprivate.h: add _gtk_tree_view_column_autosize + + * gtk/gtktreeview.c: privately export _gtk_tree_view_column_autosize, + and add a small note about that function, + (gtk_tree_view_button_press): check for double click and + "not having an autosize" column before autosizing the column, + + * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_min_width): + call _gtk_tree_view_column_autosize to update autosized column width + (gtk_tree_view_column_set_max_width): ditto + 2002-04-20 Matthias Clasen * TODO, TODO.xml, README.nanox, docs/Changes-1.2.txt, diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 53a3c6a62..625b82957 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,16 @@ +Fri Apr 19 23:38:16 2002 Kristian Rietveld + + * gtk/gtktreeprivate.h: add _gtk_tree_view_column_autosize + + * gtk/gtktreeview.c: privately export _gtk_tree_view_column_autosize, + and add a small note about that function, + (gtk_tree_view_button_press): check for double click and + "not having an autosize" column before autosizing the column, + + * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_min_width): + call _gtk_tree_view_column_autosize to update autosized column width + (gtk_tree_view_column_set_max_width): ditto + 2002-04-20 Matthias Clasen * TODO, TODO.xml, README.nanox, docs/Changes-1.2.txt, diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 53a3c6a62..625b82957 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,16 @@ +Fri Apr 19 23:38:16 2002 Kristian Rietveld + + * gtk/gtktreeprivate.h: add _gtk_tree_view_column_autosize + + * gtk/gtktreeview.c: privately export _gtk_tree_view_column_autosize, + and add a small note about that function, + (gtk_tree_view_button_press): check for double click and + "not having an autosize" column before autosizing the column, + + * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_min_width): + call _gtk_tree_view_column_autosize to update autosized column width + (gtk_tree_view_column_set_max_width): ditto + 2002-04-20 Matthias Clasen * TODO, TODO.xml, README.nanox, docs/Changes-1.2.txt, diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 53a3c6a62..625b82957 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,16 @@ +Fri Apr 19 23:38:16 2002 Kristian Rietveld + + * gtk/gtktreeprivate.h: add _gtk_tree_view_column_autosize + + * gtk/gtktreeview.c: privately export _gtk_tree_view_column_autosize, + and add a small note about that function, + (gtk_tree_view_button_press): check for double click and + "not having an autosize" column before autosizing the column, + + * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_min_width): + call _gtk_tree_view_column_autosize to update autosized column width + (gtk_tree_view_column_set_max_width): ditto + 2002-04-20 Matthias Clasen * TODO, TODO.xml, README.nanox, docs/Changes-1.2.txt, diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 53a3c6a62..625b82957 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,16 @@ +Fri Apr 19 23:38:16 2002 Kristian Rietveld + + * gtk/gtktreeprivate.h: add _gtk_tree_view_column_autosize + + * gtk/gtktreeview.c: privately export _gtk_tree_view_column_autosize, + and add a small note about that function, + (gtk_tree_view_button_press): check for double click and + "not having an autosize" column before autosizing the column, + + * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_min_width): + call _gtk_tree_view_column_autosize to update autosized column width + (gtk_tree_view_column_set_max_width): ditto + 2002-04-20 Matthias Clasen * TODO, TODO.xml, README.nanox, docs/Changes-1.2.txt, diff --git a/gtk/gtktreeprivate.h b/gtk/gtktreeprivate.h index 7f50f9fd2..230b5378f 100644 --- a/gtk/gtktreeprivate.h +++ b/gtk/gtktreeprivate.h @@ -311,7 +311,10 @@ gboolean _gtk_tree_view_column_cell_event (GtkTreeViewColumn *tree_column, void _gtk_tree_view_column_start_editing (GtkTreeViewColumn *tree_column, GtkCellEditable *editable_widget); void _gtk_tree_view_column_stop_editing (GtkTreeViewColumn *tree_column); -void _gtk_tree_view_install_mark_rows_col_dirty (GtkTreeView *tree_view); +void _gtk_tree_view_install_mark_rows_col_dirty (GtkTreeView *tree_view); +void _gtk_tree_view_column_autosize (GtkTreeView *tree_view, + GtkTreeViewColumn *column); + gboolean _gtk_tree_view_column_has_editable_cell (GtkTreeViewColumn *column); GtkCellRenderer *_gtk_tree_view_column_get_editable_cell (GtkTreeViewColumn *column); diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index dd40c9516..b2ed62011 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -347,8 +347,6 @@ static void gtk_tree_view_real_set_cursor (GtkTreeView GtkTreePath *path, gboolean clear_and_select, gboolean clamp_node); -static void gtk_tree_view_column_autosize (GtkTreeView *tree_view, - GtkTreeViewColumn *tree_column); /* interactive search */ static void gtk_tree_view_search_dialog_destroy (GtkWidget *search_dialog, @@ -1947,9 +1945,10 @@ gtk_tree_view_button_press (GtkWidget *widget, { gpointer drag_data; - if (event->type == GDK_2BUTTON_PRESS) + if (event->type == GDK_2BUTTON_PRESS && + gtk_tree_view_column_get_sizing (column) != GTK_TREE_VIEW_COLUMN_AUTOSIZE) { - gtk_tree_view_column_autosize (tree_view, column); + _gtk_tree_view_column_autosize (tree_view, column); break; } @@ -4225,6 +4224,28 @@ _gtk_tree_view_install_mark_rows_col_dirty (GtkTreeView *tree_view) install_presize_handler (tree_view); } +/** + * This function works synchronously (due to the while (do_validate_rows...) + * loop). + * + * There was a check for column_type != GTK_TREE_VIEW_COLUMN_AUTOSIZE + * here. You now need to check that yourself. + */ +void +_gtk_tree_view_column_autosize (GtkTreeView *tree_view, + GtkTreeViewColumn *column) +{ + g_return_if_fail (GTK_IS_TREE_VIEW (tree_view)); + g_return_if_fail (GTK_IS_TREE_VIEW_COLUMN (column)); + + _gtk_tree_view_column_cell_set_dirty (column, FALSE); + + do_presize_handler (tree_view); + while (do_validate_rows (tree_view)); + + gtk_widget_queue_resize (GTK_WIDGET (tree_view)); +} + /* Drag-and-drop */ static void @@ -7803,24 +7824,6 @@ gtk_tree_view_set_headers_visible (GtkTreeView *tree_view, g_object_notify (G_OBJECT (tree_view), "headers_visible"); } -static void -gtk_tree_view_column_autosize (GtkTreeView *tree_view, - GtkTreeViewColumn *column) -{ - g_return_if_fail (GTK_IS_TREE_VIEW (tree_view)); - g_return_if_fail (GTK_IS_TREE_VIEW_COLUMN (column)); - - if (column->column_type == GTK_TREE_VIEW_COLUMN_AUTOSIZE) - return; - - _gtk_tree_view_column_cell_set_dirty (column, FALSE); - - do_presize_handler (tree_view); - while (do_validate_rows (tree_view)); - - gtk_widget_queue_resize (GTK_WIDGET (tree_view)); -} - /** * gtk_tree_view_columns_autosize: * @tree_view: A #GtkTreeView. diff --git a/gtk/gtktreeviewcolumn.c b/gtk/gtktreeviewcolumn.c index 3b1c435a6..6f7eb3e50 100644 --- a/gtk/gtktreeviewcolumn.c +++ b/gtk/gtktreeviewcolumn.c @@ -1711,6 +1711,10 @@ gtk_tree_view_column_set_min_width (GtkTreeViewColumn *tree_column, } g_object_notify (G_OBJECT (tree_column), "min_width"); g_object_thaw_notify (G_OBJECT (tree_column)); + + if (tree_column->column_type == GTK_TREE_VIEW_COLUMN_AUTOSIZE) + _gtk_tree_view_column_autosize (GTK_TREE_VIEW (tree_column->tree_view), + tree_column); } /** @@ -1767,6 +1771,10 @@ gtk_tree_view_column_set_max_width (GtkTreeViewColumn *tree_column, } g_object_notify (G_OBJECT (tree_column), "max_width"); g_object_thaw_notify (G_OBJECT (tree_column)); + + if (tree_column->column_type == GTK_TREE_VIEW_COLUMN_AUTOSIZE) + _gtk_tree_view_column_autosize (GTK_TREE_VIEW (tree_column->tree_view), + tree_column); } /**