[libdazzle] tree-node: add dzl_tree_node_set_gicon()



commit 0122b37f4458216296162cdbcd7f50f3df7be535
Author: Christian Hergert <chergert redhat com>
Date:   Tue Dec 5 02:12:05 2017 -0800

    tree-node: add dzl_tree_node_set_gicon()
    
    This allows overwriting the icon for the tree node. We should
    probably cleanup how icon management works now.

 src/tree/dzl-tree-node.c |   17 ++++++++++++++++-
 src/tree/dzl-tree-node.h |    3 +++
 2 files changed, 19 insertions(+), 1 deletions(-)
---
diff --git a/src/tree/dzl-tree-node.c b/src/tree/dzl-tree-node.c
index 84a9a2e..1e1e6f9 100644
--- a/src/tree/dzl-tree-node.c
+++ b/src/tree/dzl-tree-node.c
@@ -268,6 +268,17 @@ dzl_tree_node_get_parent (DzlTreeNode *node)
   return node->parent;
 }
 
+void
+dzl_tree_node_set_gicon (DzlTreeNode *self,
+                         GIcon       *gicon)
+{
+  g_return_if_fail (DZL_IS_TREE_NODE (self));
+  g_return_if_fail (!gicon || G_IS_ICON (gicon));
+
+  if (g_set_object (&self->gicon, gicon))
+    g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_GICON]);
+}
+
 /**
  * dzl_tree_node_get_gicon:
  *
@@ -755,6 +766,10 @@ dzl_tree_node_set_property (GObject      *object,
       node->expanded_icon_name = g_quark_from_string (g_value_get_string (value));
       break;
 
+    case PROP_GICON:
+      dzl_tree_node_set_gicon (node, g_value_get_object (value));
+      break;
+
     case PROP_ICON_NAME:
       dzl_tree_node_set_icon_name (node, g_value_get_string (value));
       break;
@@ -841,7 +856,7 @@ dzl_tree_node_class_init (DzlTreeNodeClass *klass)
                          "GIcon",
                          "The GIcon object",
                          G_TYPE_ICON,
-                         G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS);
 
   /**
    * DzlTreeNode:item:
diff --git a/src/tree/dzl-tree-node.h b/src/tree/dzl-tree-node.h
index 057de5e..ae654ae 100644
--- a/src/tree/dzl-tree-node.h
+++ b/src/tree/dzl-tree-node.h
@@ -96,6 +96,9 @@ void            dzl_tree_node_set_use_markup        (DzlTreeNode            *sel
                                                      gboolean                use_markup);
 DZL_AVAILABLE_IN_ALL
 GIcon          *dzl_tree_node_get_gicon             (DzlTreeNode            *self);
+DZL_AVAILABLE_IN_3_28
+void            dzl_tree_node_set_gicon             (DzlTreeNode            *self,
+                                                     GIcon                  *icon);
 DZL_AVAILABLE_IN_ALL
 void            dzl_tree_node_add_emblem            (DzlTreeNode            *self,
                                                      const gchar            *emblem_name);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]