[gtk+/wip/matthiasc/animate-stack-optional: 2/3] add animate-size property



commit 47f70b6b7cbbc6edbbcf7a57285a481ef22e958f
Author: Matthias Clasen <mclasen redhat com>
Date:   Thu Jul 16 22:28:25 2015 -0400

    add animate-size property

 gtk/gtkstack.c |   21 ++++++++++++++++++++-
 1 files changed, 20 insertions(+), 1 deletions(-)
---
diff --git a/gtk/gtkstack.c b/gtk/gtkstack.c
index 293d793..04f884d 100644
--- a/gtk/gtkstack.c
+++ b/gtk/gtkstack.c
@@ -91,6 +91,7 @@ enum  {
   PROP_TRANSITION_DURATION,
   PROP_TRANSITION_TYPE,
   PROP_TRANSITION_RUNNING,
+  PROP_ANIMATE_SIZE,
   LAST_PROP
 };
 
@@ -125,6 +126,7 @@ typedef struct {
 
   gboolean hhomogeneous;
   gboolean vhomogeneous;
+  gboolean animate_size;
 
   GtkStackTransitionType transition_type;
   guint transition_duration;
@@ -239,6 +241,7 @@ gtk_stack_get_property (GObject   *object,
                         GParamSpec *pspec)
 {
   GtkStack *stack = GTK_STACK (object);
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
 
   switch (property_id)
     {
@@ -266,6 +269,9 @@ gtk_stack_get_property (GObject   *object,
     case PROP_TRANSITION_RUNNING:
       g_value_set_boolean (value, gtk_stack_get_transition_running (stack));
       break;
+    case PROP_ANIMATE_SIZE:
+      g_value_set_boolean (value, priv->animate_size);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
       break;
@@ -273,12 +279,13 @@ gtk_stack_get_property (GObject   *object,
 }
 
 static void
-gtk_stack_set_property (GObject     *object,
+gtk_stack_set_property (GObject      *object,
                         guint         property_id,
                         const GValue *value,
                         GParamSpec   *pspec)
 {
   GtkStack *stack = GTK_STACK (object);
+  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
 
   switch (property_id)
     {
@@ -303,6 +310,13 @@ gtk_stack_set_property (GObject     *object,
     case PROP_TRANSITION_TYPE:
       gtk_stack_set_transition_type (stack, g_value_get_enum (value));
       break;
+    case PROP_ANIMATE_SIZE:
+      if (priv->animate_size != g_value_get_boolean (value))
+        {
+          priv->animate_size = g_value_get_boolean (value);
+          g_object_notify_by_pspec (object, pspec);
+        }
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
       break;
@@ -457,6 +471,11 @@ gtk_stack_class_init (GtkStackClass *klass)
                             FALSE,
                             GTK_PARAM_READABLE);
 
+  stack_props[PROP_ANIMATE_SIZE] =
+      g_param_spec_boolean ("animate-size", P_("Animate size"), P_("Animate size changes"),
+                            FALSE,
+                            GTK_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+
   g_object_class_install_properties (object_class, LAST_PROP, stack_props);
 
   gtk_container_class_install_child_property (container_class, CHILD_PROP_NAME,


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