]> Pileus Git - ~andy/gtk/commitdiff
add _gtk_tree_view_column_autosize
authorKristian Rietveld <kris@gtk.org>
Fri, 19 Apr 2002 23:41:37 +0000 (23:41 +0000)
committerKristian Rietveld <kristian@src.gnome.org>
Fri, 19 Apr 2002 23:41:37 +0000 (23:41 +0000)
Fri Apr 19 23:38:16 2002  Kristian Rietveld  <kris@gtk.org>

        * 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

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtktreeprivate.h
gtk/gtktreeview.c
gtk/gtktreeviewcolumn.c

index 53a3c6a620f8044ed0b51d3635523e0962780341..625b82957297504558dadb9e4626d23faca8e677 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+Fri Apr 19 23:38:16 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * 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  <maclas@gmx.de>
 
        * TODO, TODO.xml, README.nanox, docs/Changes-1.2.txt,
index 53a3c6a620f8044ed0b51d3635523e0962780341..625b82957297504558dadb9e4626d23faca8e677 100644 (file)
@@ -1,3 +1,16 @@
+Fri Apr 19 23:38:16 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * 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  <maclas@gmx.de>
 
        * TODO, TODO.xml, README.nanox, docs/Changes-1.2.txt,
index 53a3c6a620f8044ed0b51d3635523e0962780341..625b82957297504558dadb9e4626d23faca8e677 100644 (file)
@@ -1,3 +1,16 @@
+Fri Apr 19 23:38:16 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * 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  <maclas@gmx.de>
 
        * TODO, TODO.xml, README.nanox, docs/Changes-1.2.txt,
index 53a3c6a620f8044ed0b51d3635523e0962780341..625b82957297504558dadb9e4626d23faca8e677 100644 (file)
@@ -1,3 +1,16 @@
+Fri Apr 19 23:38:16 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * 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  <maclas@gmx.de>
 
        * TODO, TODO.xml, README.nanox, docs/Changes-1.2.txt,
index 53a3c6a620f8044ed0b51d3635523e0962780341..625b82957297504558dadb9e4626d23faca8e677 100644 (file)
@@ -1,3 +1,16 @@
+Fri Apr 19 23:38:16 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * 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  <maclas@gmx.de>
 
        * TODO, TODO.xml, README.nanox, docs/Changes-1.2.txt,
index 53a3c6a620f8044ed0b51d3635523e0962780341..625b82957297504558dadb9e4626d23faca8e677 100644 (file)
@@ -1,3 +1,16 @@
+Fri Apr 19 23:38:16 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * 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  <maclas@gmx.de>
 
        * TODO, TODO.xml, README.nanox, docs/Changes-1.2.txt,
index 7f50f9fd2a723c7a97e5711882463a7aea2d6e20..230b5378f8b92f49bce44c4fa2d069025671328e 100644 (file)
@@ -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);
 
index dd40c9516043fe1e8de96e237cd4f36fa7c56a53..b2ed6201106c17f4c9bcc5881759b100984ab3e4 100644 (file)
@@ -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.
index 3b1c435a63c81835844f0e3cd0121dab7f02f55e..6f7eb3e50d34173c8dc3434b7eb5d1f3d3cafab9 100644 (file)
@@ -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);
 }
 
 /**