summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorKristian Rietveld <kris@gtk.org>2006-10-08 14:36:20 +0000
committerKristian Rietveld <kristian@src.gnome.org>2006-10-08 14:36:20 +0000
commitfb59835481b88c0b2c7d7d7d269019d9c9a00490 (patch)
treeecaf3fce905dfe89109e422f9984dafdcc132103 /gtk
parent7d5ca7dd468e43973cf428b6d14eb905c0e1e348 (diff)
downloadgtk+-fb59835481b88c0b2c7d7d7d269019d9c9a00490.tar.gz
add getter/setter for show-expanders property, queue a redraw when this
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.
Diffstat (limited to 'gtk')
-rw-r--r--gtk/gtktreeview.c102
-rw-r--r--gtk/gtktreeview.h6
2 files changed, 104 insertions, 4 deletions
diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c
index e1636f4d72..e36942022f 100644
--- a/gtk/gtktreeview.c
+++ b/gtk/gtktreeview.c
@@ -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"
diff --git a/gtk/gtktreeview.h b/gtk/gtktreeview.h
index 26948aa09c..529739d293 100644
--- a/gtk/gtktreeview.h
+++ b/gtk/gtktreeview.h
@@ -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