]> Pileus Git - ~andy/gtk/commitdiff
define GtkCTreeNode as boxed type use GTK_CTREE_NODE_TYPE instead of
authorLars Hamann <lars@gtk.org>
Thu, 26 Nov 1998 18:47:58 +0000 (18:47 +0000)
committerLars Hamann <lars@src.gnome.org>
Thu, 26 Nov 1998 18:47:58 +0000 (18:47 +0000)
Thu Nov 26 19:11:46 1998  Lars Hamann  <lars@gtk.org>

* gtk/gtk-boxed.defs (GtkCTreeNode): define GtkCTreeNode as boxed type
* gtk/gtkctree.c (gtk_ctree_class_init): use GTK_CTREE_NODE_TYPE
instead of GTK_TYPE_POINTER in signal definitions.
(patch from James Henstridge <james@daa.com.au>)

Thu Nov 26 18:48:44 1998  Lars Hamann  <lars@gtk.org>

* gtk/gtkclist.c (set_cell_contents)
* gtk/gtkctree.c (set_cell_contents): call column_auto_resize only
  if auto.resize == TRUE

* gtk/gtknotebook.c (gtk_notebook_set_shape) (gtk_notebook_expose):
  don't draw tab, if show_tabs == FALSE
  (bug reports from Alexis Mikhailov / Dave Cole)
  (gtk_notebook_focus_changed) (gtk_notebook_draw_focus): draw only
  the focus rectangle, not the hole tab.

ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtk-boxed.defs
gtk/gtkclist.c
gtk/gtkctree.c
gtk/gtknotebook.c

index 56b96ebc565a83e08976da19e98c231e92fe0051..37b37b7d1ba34c90b9bff5b2d2d6f81a2fdf5376 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,22 @@
+Thu Nov 26 19:11:46 1998  Lars Hamann  <lars@gtk.org>
+
+       * gtk/gtk-boxed.defs (GtkCTreeNode): define GtkCTreeNode as boxed type
+       * gtk/gtkctree.c (gtk_ctree_class_init): use GTK_CTREE_NODE_TYPE
+       instead of GTK_TYPE_POINTER in signal definitions.
+       (patch from James Henstridge <james@daa.com.au>)
+
+Thu Nov 26 18:48:44 1998  Lars Hamann  <lars@gtk.org>
+
+       * gtk/gtkclist.c (set_cell_contents)
+       * gtk/gtkctree.c (set_cell_contents): call column_auto_resize only
+       if auto.resize == TRUE
+
+       * gtk/gtknotebook.c (gtk_notebook_set_shape) (gtk_notebook_expose):
+       don't draw tab, if show_tabs == FALSE
+       (bug reports from Alexis Mikhailov / Dave Cole)
+       (gtk_notebook_focus_changed) (gtk_notebook_draw_focus): draw only
+       the focus rectangle, not the hole tab.
+
 Thu Nov 26 03:18:08 1998  Tim Janik  <timj@gtk.org>
 
        * gtk/gtkclist.h: 
index 56b96ebc565a83e08976da19e98c231e92fe0051..37b37b7d1ba34c90b9bff5b2d2d6f81a2fdf5376 100644 (file)
@@ -1,3 +1,22 @@
+Thu Nov 26 19:11:46 1998  Lars Hamann  <lars@gtk.org>
+
+       * gtk/gtk-boxed.defs (GtkCTreeNode): define GtkCTreeNode as boxed type
+       * gtk/gtkctree.c (gtk_ctree_class_init): use GTK_CTREE_NODE_TYPE
+       instead of GTK_TYPE_POINTER in signal definitions.
+       (patch from James Henstridge <james@daa.com.au>)
+
+Thu Nov 26 18:48:44 1998  Lars Hamann  <lars@gtk.org>
+
+       * gtk/gtkclist.c (set_cell_contents)
+       * gtk/gtkctree.c (set_cell_contents): call column_auto_resize only
+       if auto.resize == TRUE
+
+       * gtk/gtknotebook.c (gtk_notebook_set_shape) (gtk_notebook_expose):
+       don't draw tab, if show_tabs == FALSE
+       (bug reports from Alexis Mikhailov / Dave Cole)
+       (gtk_notebook_focus_changed) (gtk_notebook_draw_focus): draw only
+       the focus rectangle, not the hole tab.
+
 Thu Nov 26 03:18:08 1998  Tim Janik  <timj@gtk.org>
 
        * gtk/gtkclist.h: 
index 56b96ebc565a83e08976da19e98c231e92fe0051..37b37b7d1ba34c90b9bff5b2d2d6f81a2fdf5376 100644 (file)
@@ -1,3 +1,22 @@
+Thu Nov 26 19:11:46 1998  Lars Hamann  <lars@gtk.org>
+
+       * gtk/gtk-boxed.defs (GtkCTreeNode): define GtkCTreeNode as boxed type
+       * gtk/gtkctree.c (gtk_ctree_class_init): use GTK_CTREE_NODE_TYPE
+       instead of GTK_TYPE_POINTER in signal definitions.
+       (patch from James Henstridge <james@daa.com.au>)
+
+Thu Nov 26 18:48:44 1998  Lars Hamann  <lars@gtk.org>
+
+       * gtk/gtkclist.c (set_cell_contents)
+       * gtk/gtkctree.c (set_cell_contents): call column_auto_resize only
+       if auto.resize == TRUE
+
+       * gtk/gtknotebook.c (gtk_notebook_set_shape) (gtk_notebook_expose):
+       don't draw tab, if show_tabs == FALSE
+       (bug reports from Alexis Mikhailov / Dave Cole)
+       (gtk_notebook_focus_changed) (gtk_notebook_draw_focus): draw only
+       the focus rectangle, not the hole tab.
+
 Thu Nov 26 03:18:08 1998  Tim Janik  <timj@gtk.org>
 
        * gtk/gtkclist.h: 
index 56b96ebc565a83e08976da19e98c231e92fe0051..37b37b7d1ba34c90b9bff5b2d2d6f81a2fdf5376 100644 (file)
@@ -1,3 +1,22 @@
+Thu Nov 26 19:11:46 1998  Lars Hamann  <lars@gtk.org>
+
+       * gtk/gtk-boxed.defs (GtkCTreeNode): define GtkCTreeNode as boxed type
+       * gtk/gtkctree.c (gtk_ctree_class_init): use GTK_CTREE_NODE_TYPE
+       instead of GTK_TYPE_POINTER in signal definitions.
+       (patch from James Henstridge <james@daa.com.au>)
+
+Thu Nov 26 18:48:44 1998  Lars Hamann  <lars@gtk.org>
+
+       * gtk/gtkclist.c (set_cell_contents)
+       * gtk/gtkctree.c (set_cell_contents): call column_auto_resize only
+       if auto.resize == TRUE
+
+       * gtk/gtknotebook.c (gtk_notebook_set_shape) (gtk_notebook_expose):
+       don't draw tab, if show_tabs == FALSE
+       (bug reports from Alexis Mikhailov / Dave Cole)
+       (gtk_notebook_focus_changed) (gtk_notebook_draw_focus): draw only
+       the focus rectangle, not the hole tab.
+
 Thu Nov 26 03:18:08 1998  Tim Janik  <timj@gtk.org>
 
        * gtk/gtkclist.h: 
index 56b96ebc565a83e08976da19e98c231e92fe0051..37b37b7d1ba34c90b9bff5b2d2d6f81a2fdf5376 100644 (file)
@@ -1,3 +1,22 @@
+Thu Nov 26 19:11:46 1998  Lars Hamann  <lars@gtk.org>
+
+       * gtk/gtk-boxed.defs (GtkCTreeNode): define GtkCTreeNode as boxed type
+       * gtk/gtkctree.c (gtk_ctree_class_init): use GTK_CTREE_NODE_TYPE
+       instead of GTK_TYPE_POINTER in signal definitions.
+       (patch from James Henstridge <james@daa.com.au>)
+
+Thu Nov 26 18:48:44 1998  Lars Hamann  <lars@gtk.org>
+
+       * gtk/gtkclist.c (set_cell_contents)
+       * gtk/gtkctree.c (set_cell_contents): call column_auto_resize only
+       if auto.resize == TRUE
+
+       * gtk/gtknotebook.c (gtk_notebook_set_shape) (gtk_notebook_expose):
+       don't draw tab, if show_tabs == FALSE
+       (bug reports from Alexis Mikhailov / Dave Cole)
+       (gtk_notebook_focus_changed) (gtk_notebook_draw_focus): draw only
+       the focus rectangle, not the hole tab.
+
 Thu Nov 26 03:18:08 1998  Tim Janik  <timj@gtk.org>
 
        * gtk/gtkclist.h: 
index 56b96ebc565a83e08976da19e98c231e92fe0051..37b37b7d1ba34c90b9bff5b2d2d6f81a2fdf5376 100644 (file)
@@ -1,3 +1,22 @@
+Thu Nov 26 19:11:46 1998  Lars Hamann  <lars@gtk.org>
+
+       * gtk/gtk-boxed.defs (GtkCTreeNode): define GtkCTreeNode as boxed type
+       * gtk/gtkctree.c (gtk_ctree_class_init): use GTK_CTREE_NODE_TYPE
+       instead of GTK_TYPE_POINTER in signal definitions.
+       (patch from James Henstridge <james@daa.com.au>)
+
+Thu Nov 26 18:48:44 1998  Lars Hamann  <lars@gtk.org>
+
+       * gtk/gtkclist.c (set_cell_contents)
+       * gtk/gtkctree.c (set_cell_contents): call column_auto_resize only
+       if auto.resize == TRUE
+
+       * gtk/gtknotebook.c (gtk_notebook_set_shape) (gtk_notebook_expose):
+       don't draw tab, if show_tabs == FALSE
+       (bug reports from Alexis Mikhailov / Dave Cole)
+       (gtk_notebook_focus_changed) (gtk_notebook_draw_focus): draw only
+       the focus rectangle, not the hole tab.
+
 Thu Nov 26 03:18:08 1998  Tim Janik  <timj@gtk.org>
 
        * gtk/gtkclist.h: 
index 56b96ebc565a83e08976da19e98c231e92fe0051..37b37b7d1ba34c90b9bff5b2d2d6f81a2fdf5376 100644 (file)
@@ -1,3 +1,22 @@
+Thu Nov 26 19:11:46 1998  Lars Hamann  <lars@gtk.org>
+
+       * gtk/gtk-boxed.defs (GtkCTreeNode): define GtkCTreeNode as boxed type
+       * gtk/gtkctree.c (gtk_ctree_class_init): use GTK_CTREE_NODE_TYPE
+       instead of GTK_TYPE_POINTER in signal definitions.
+       (patch from James Henstridge <james@daa.com.au>)
+
+Thu Nov 26 18:48:44 1998  Lars Hamann  <lars@gtk.org>
+
+       * gtk/gtkclist.c (set_cell_contents)
+       * gtk/gtkctree.c (set_cell_contents): call column_auto_resize only
+       if auto.resize == TRUE
+
+       * gtk/gtknotebook.c (gtk_notebook_set_shape) (gtk_notebook_expose):
+       don't draw tab, if show_tabs == FALSE
+       (bug reports from Alexis Mikhailov / Dave Cole)
+       (gtk_notebook_focus_changed) (gtk_notebook_draw_focus): draw only
+       the focus rectangle, not the hole tab.
+
 Thu Nov 26 03:18:08 1998  Tim Janik  <timj@gtk.org>
 
        * gtk/gtkclist.h: 
index 1555e8beeec051b2f26e531c9aeb733084cb0e4f..c36b2fdca238306d6e9e5833a98c94022ee7cfc8 100644 (file)
@@ -20,6 +20,9 @@
   gtk_style_ref
   gtk_style_unref)
 
+(define-boxed GtkCTreeNode
+)
+
 ;;; Gdk boxed types
 
                                         ;(define-boxed GdkPoint
index ee7caea366590a43c8a4810fb614c930e534136e..c9ff6c389a73bb6111098574856e7d7c909dbbe4 100644 (file)
@@ -2459,7 +2459,9 @@ set_cell_contents (GtkCList    *clist,
       break;
     }
 
-  column_auto_resize (clist, clist_row, column, requisition.width);
+  if (clist->column[column].auto_resize &&
+      !GTK_CLIST_AUTO_RESIZE_BLOCKED (clist))
+    column_auto_resize (clist, clist_row, column, requisition.width);
 }
 
 static void
index 0092d2c539ea684d9e21439262d6f7719b122d74..54053c2e44b0406c2ddf5079298e922eef325e5e 100644 (file)
@@ -370,21 +370,21 @@ gtk_ctree_class_init (GtkCTreeClass *klass)
                    object_class->type,
                    GTK_SIGNAL_OFFSET (GtkCTreeClass, tree_select_row),
                    gtk_marshal_NONE__POINTER_INT,
-                   GTK_TYPE_NONE, 2, GTK_TYPE_POINTER, GTK_TYPE_INT);
+                   GTK_TYPE_NONE, 2, GTK_TYPE_CTREE_NODE, GTK_TYPE_INT);
   ctree_signals[TREE_UNSELECT_ROW] =
     gtk_signal_new ("tree_unselect_row",
                    GTK_RUN_FIRST,
                    object_class->type,
                    GTK_SIGNAL_OFFSET (GtkCTreeClass, tree_unselect_row),
                    gtk_marshal_NONE__POINTER_INT,
-                   GTK_TYPE_NONE, 2, GTK_TYPE_POINTER, GTK_TYPE_INT);
+                   GTK_TYPE_NONE, 2, GTK_TYPE_CTREE_NODE, GTK_TYPE_INT);
   ctree_signals[TREE_EXPAND] =
     gtk_signal_new ("tree_expand",
                    GTK_RUN_LAST,
                    object_class->type,
                    GTK_SIGNAL_OFFSET (GtkCTreeClass, tree_expand),
                    gtk_marshal_NONE__POINTER,
-                   GTK_TYPE_NONE, 1, GTK_TYPE_POINTER);
+                   GTK_TYPE_NONE, 1, GTK_TYPE_CTREE_NODE);
   ctree_signals[TREE_COLLAPSE] =
     gtk_signal_new ("tree_collapse",
                    GTK_RUN_LAST,
@@ -398,8 +398,8 @@ gtk_ctree_class_init (GtkCTreeClass *klass)
                    object_class->type,
                    GTK_SIGNAL_OFFSET (GtkCTreeClass, tree_move),
                    gtk_marshal_NONE__POINTER_POINTER_POINTER,
-                   GTK_TYPE_NONE, 3, GTK_TYPE_POINTER, GTK_TYPE_POINTER, 
-                   GTK_TYPE_POINTER);
+                   GTK_TYPE_NONE, 3, GTK_TYPE_CTREE_NODE,
+                   GTK_TYPE_CTREE_NODE, GTK_TYPE_CTREE_NODE);
   ctree_signals[CHANGE_FOCUS_ROW_EXPANSION] =
     gtk_signal_new ("change_focus_row_expansion",
                    GTK_RUN_LAST | GTK_RUN_ACTION,
@@ -3298,7 +3298,8 @@ set_cell_contents (GtkCList    *clist,
       break;
     }
   
-  if (visible)
+  if (visible && clist->column[column].auto_resize &&
+      !GTK_CLIST_AUTO_RESIZE_BLOCKED (clist))
     column_auto_resize (clist, clist_row, column, requisition.width);
 }
 
index a0496545984a6bdfb806c01f56e2d40a438ccc91..dc2099e4e06a1568c4c2a8dcb69510cede431344 100644 (file)
@@ -911,10 +911,13 @@ gtk_notebook_expose (GtkWidget      *widget,
       notebook = GTK_NOTEBOOK (widget);
 
       gtk_notebook_paint (widget, &event->area);
-      if (notebook->cur_page &&
-         gtk_widget_intersect (notebook->cur_page->tab_label, 
-                               &event->area, &child_area))
-       gtk_widget_draw_focus (widget);
+      if (notebook->show_tabs)
+       {
+         if (notebook->cur_page && 
+             gtk_widget_intersect (notebook->cur_page->tab_label, 
+                                   &event->area, &child_area))
+           gtk_widget_draw_focus (widget);
+       }
 
       child_event = *event;
       if (notebook->cur_page && 
@@ -1309,12 +1312,12 @@ gtk_notebook_draw_focus (GtkWidget *widget)
 
       page = notebook->focus_tab->data;
 
-      area.x = widget->allocation.x;
-      area.y = widget->allocation.y;
-      area.width = widget->allocation.width;
-      area.height = widget->allocation.height;
+      area.x = page->tab_label->allocation.x - 1;
+      area.y = page->tab_label->allocation.y - 1;
+      area.width = page->tab_label->allocation.width + 2;
+      area.height = page->tab_label->allocation.height + 2;
 
-      gtk_notebook_draw_tab(GTK_NOTEBOOK(widget), page, &area);
+      gtk_notebook_draw_tab (GTK_NOTEBOOK (widget), page, &area);
     }
 }
 
@@ -1798,7 +1801,34 @@ gtk_notebook_focus_changed (GtkNotebook     *notebook,
   g_return_if_fail (notebook != NULL);
   g_return_if_fail (GTK_IS_NOTEBOOK (notebook));
 
-  gtk_notebook_expose_tabs(notebook);
+  if (GTK_WIDGET_DRAWABLE (notebook) && notebook->show_tabs) 
+    {
+      GdkRectangle area;
+
+      if (notebook->focus_tab)
+       {
+         GtkNotebookPage *page;
+
+         page = notebook->focus_tab->data;
+
+         area.x = page->tab_label->allocation.x - 1;
+         area.y = page->tab_label->allocation.y - 1;
+         area.width = page->tab_label->allocation.width + 2;
+         area.height = page->tab_label->allocation.height + 2;
+
+         gtk_notebook_draw_tab (notebook, page, &area);
+       }
+
+      if (old_page)
+       {
+         area.x = old_page->tab_label->allocation.x - 1;
+         area.y = old_page->tab_label->allocation.y - 1;
+         area.width = old_page->tab_label->allocation.width + 2;
+         area.height = old_page->tab_label->allocation.height + 2;
+
+         gtk_notebook_draw_tab (notebook, old_page, &area);
+       }
+    }
 }
 
 static gint
@@ -2231,8 +2261,7 @@ gtk_notebook_draw_tab (GtkNotebook     *notebook,
                          page_area.width, page_area.height,
                          gap_side);
       if ((GTK_WIDGET_HAS_FOCUS (widget)) &&
-         notebook->focus_tab && (notebook->focus_tab->data == page) &&
-         (page))
+         notebook->focus_tab && (notebook->focus_tab->data == page))
        {
          gtk_paint_focus (widget->style, widget->window,
                           area, widget, "tab",
@@ -2417,20 +2446,24 @@ gtk_notebook_set_shape (GtkNotebook *notebook)
     }
 
   /* draw the shapes of all the children */
-  children = notebook->children;
-  while (children)
+  if (notebook->show_tabs)
     {
-      page = children->data;
-      if (GTK_WIDGET_MAPPED (page->tab_label))
+      children = notebook->children;
+      while (children)
        {
-         x = page->allocation.x;
-         y = page->allocation.y;
-         width = page->allocation.width;
-         height = page->allocation.height;
-         gdk_draw_rectangle(pm, pmgc, TRUE, x, y, width, height);
+         page = children->data;
+         if (GTK_WIDGET_MAPPED (page->tab_label))
+           {
+             x = page->allocation.x;
+             y = page->allocation.y;
+             width = page->allocation.width;
+             height = page->allocation.height;
+             gdk_draw_rectangle(pm, pmgc, TRUE, x, y, width, height);
+           }
+         children = children->next;
        }
-      children = children->next;
     }
+
   /* set the mask */
   gdk_window_shape_combine_mask(widget->window, pm, 0, 0);
   gdk_pixmap_unref(pm);