]> Pileus Git - ~andy/gtk/commitdiff
add getter/setter for show-expanders property, queue a redraw when this
authorKristian Rietveld <kris@gtk.org>
Sun, 8 Oct 2006 14:36:20 +0000 (14:36 +0000)
committerKristian Rietveld <kristian@src.gnome.org>
Sun, 8 Oct 2006 14:36:20 +0000 (14:36 +0000)
2006-10-08  Kristian Rietveld  <kris@gtk.org>

* gtk/gtktreeview.[ch] (gtk_tree_view_set_property),
(gtk_tree_view_set_show_expanders),
(gtk_tree_view_get_show_expanders): add getter/setter for
show-expanders property, queue a redraw when this property
is toggled (#351167, Martin Ejdestig),
(gtk_tree_view_set_level_indentation),
(gtk_tree_view_get_level_indentation): also add getter/setter
and docs for level-indentation property.

ChangeLog
gtk/gtktreeview.c
gtk/gtktreeview.h

index a9839f6cd83464b8ae49cb0a727418e458ca0ad1..3471c47ce714a8b9e41fcb0bae593d6dcbc7c42b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2006-10-08  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtktreeview.[ch] (gtk_tree_view_set_property),
+       (gtk_tree_view_set_show_expanders),
+       (gtk_tree_view_get_show_expanders): add getter/setter for
+       show-expanders property, queue a redraw when this property
+       is toggled (#351167, Martin Ejdestig),
+       (gtk_tree_view_set_level_indentation),
+       (gtk_tree_view_get_level_indentation): also add getter/setter
+       and docs for level-indentation property.
+
 2006-10-08  Matthias Clasen  <mclasen@redhat.com>
 
        * gtk/gtkradiobutton.c (gtk_radio_button_focus): Don't 
index e1636f4d729c8e214dfa9de1309865c015db89ce..e36942022fd9211094aa5a0b473df8d25dfd40df 100644 (file)
@@ -1370,10 +1370,7 @@ gtk_tree_view_set_property (GObject         *object,
       tree_view->priv->hover_expand = g_value_get_boolean (value);
       break;
     case PROP_SHOW_EXPANDERS:
-      if (g_value_get_boolean (value))
-       GTK_TREE_VIEW_SET_FLAG (tree_view, GTK_TREE_VIEW_SHOW_EXPANDERS);
-      else
-       GTK_TREE_VIEW_UNSET_FLAG (tree_view, GTK_TREE_VIEW_SHOW_EXPANDERS);
+      gtk_tree_view_set_show_expanders (tree_view, g_value_get_boolean (value));
       break;
     case PROP_LEVEL_INDENTATION:
       tree_view->priv->level_indentation = g_value_get_int (value);
@@ -14743,5 +14740,102 @@ gtk_tree_view_set_enable_tree_lines (GtkTreeView *tree_view,
     }
 }
 
+
+/**
+ * gtk_tree_view_set_show_expanders:
+ * @tree_view: a #GtkTreeView
+ * @enabled: %TRUE to enable expander drawing, %FALSE otherwise.
+ *
+ * Sets whether to draw and enable expanders and indent child rows in
+ * @tree_view.  When disabled there will be no expanders visible in trees
+ * and there will be no way to expand and collapse rows by default.  Also
+ * note that hiding the expanders will disable the default indentation.  You
+ * can set a custom indentation in this case using
+ * gtk_tree_view_set_level_indentation().
+ * This does not have any visible effects for lists.
+ *
+ * Since: 2.12
+ */
+void
+gtk_tree_view_set_show_expanders (GtkTreeView *tree_view,
+                                 gboolean     enabled)
+{
+  gboolean was_enabled;
+
+  g_return_if_fail (GTK_IS_TREE_VIEW (tree_view));
+
+  enabled = enabled != FALSE;
+  was_enabled = GTK_TREE_VIEW_FLAG_SET (tree_view, GTK_TREE_VIEW_SHOW_EXPANDERS);
+
+  if (enabled)
+    GTK_TREE_VIEW_SET_FLAG (tree_view, GTK_TREE_VIEW_SHOW_EXPANDERS);
+  else
+    GTK_TREE_VIEW_UNSET_FLAG (tree_view, GTK_TREE_VIEW_SHOW_EXPANDERS);
+
+  if (was_enabled != was_enabled)
+    gtk_widget_queue_draw (GTK_WIDGET (tree_view));
+}
+
+/**
+ * gtk_tree_view_get_show_expanders:
+ * @tree_view: a #GtkTreeView.
+ *
+ * Returns whether or not expanders are drawn in @tree_view.
+ *
+ * Return value: %TRUE if expanders are drawn in @tree_view, %FALSE
+ * otherwise.
+ *
+ * Since: 2.12
+ */
+gboolean
+gtk_tree_view_get_show_expanders (GtkTreeView *tree_view)
+{
+  g_return_val_if_fail (GTK_IS_TREE_VIEW (tree_view), FALSE);
+
+  return GTK_TREE_VIEW_FLAG_SET (tree_view, GTK_TREE_VIEW_SHOW_EXPANDERS);
+}
+
+/**
+ * gtk_tree_view_set_level_indentation:
+ * @tree_view: a #GtkTreeView
+ * @indentation: the amount, in pixels, of extra indentation in @tree_view.
+ *
+ * Sets the amount of extra indentation for child levels to use in @tree_view
+ * in addition to the default indentation.  The value should be specified in
+ * pixels, a value of 0 disables this feature and in this case only the default
+ * indentation will be used.
+ * This does not have any visible effects for lists.
+ *
+ * Since: 2.12
+ */
+void
+gtk_tree_view_set_level_indentation (GtkTreeView *tree_view,
+                                    gint         indentation)
+{
+  tree_view->priv->level_indentation = indentation;
+
+  gtk_widget_queue_draw (GTK_WIDGET (tree_view));
+}
+
+/**
+ * gtk_tree_view_get_level_indentation:
+ * @tree_view: a #GtkTreeView.
+ *
+ * Returns the amount, in pixels, of extra indentation for child levels
+ * in @tree_view.
+ *
+ * Return value: the amount of extra indentation for child levels in
+ * @tree_view.  A return value of 0 means that this feature is disabled.
+ *
+ * Since: 2.12
+ */
+gint
+gtk_tree_view_get_level_indentation (GtkTreeView *tree_view)
+{
+  g_return_val_if_fail (GTK_IS_TREE_VIEW (tree_view), 0);
+
+  return tree_view->priv->level_indentation;
+}
+
 #define __GTK_TREE_VIEW_C__
 #include "gtkaliasdef.c"
index 26948aa09c18fb04e1f552ce1bfbd05be0a5a354..529739d2930d7079dbc5fc54637de49539bc8771 100644 (file)
@@ -358,6 +358,12 @@ void                        gtk_tree_view_set_grid_lines         (GtkTreeView
 gboolean                    gtk_tree_view_get_enable_tree_lines  (GtkTreeView                *tree_view);
 void                        gtk_tree_view_set_enable_tree_lines  (GtkTreeView                *tree_view,
                                                                  gboolean                    enabled);
+void                        gtk_tree_view_set_show_expanders     (GtkTreeView                *tree_view,
+                                                                 gboolean                    enabled);
+gboolean                    gtk_tree_view_get_show_expanders     (GtkTreeView                *tree_view);
+void                        gtk_tree_view_set_level_indentation  (GtkTreeView                *tree_view,
+                                                                 gint                        indentation);
+gint                        gtk_tree_view_get_level_indentation  (GtkTreeView                *tree_view);
 
 G_END_DECLS