[gtk+/wip/actor: 18/42] xxx: box



commit daf9694bd4c22e3e507202a4bdee87ebd1ee2d96
Author: Benjamin Otte <otte redhat com>
Date:   Wed Dec 12 20:12:43 2012 +0100

    xxx: box

 gtk/actors/gtkcssbox.c        |   62 ++++++++++++++++++++++++++++++----------
 gtk/actors/gtkcssboxprivate.h |   13 ++++++--
 2 files changed, 56 insertions(+), 19 deletions(-)
---
diff --git a/gtk/actors/gtkcssbox.c b/gtk/actors/gtkcssbox.c
index 67dd100..5d574fb 100644
--- a/gtk/actors/gtkcssbox.c
+++ b/gtk/actors/gtkcssbox.c
@@ -68,11 +68,11 @@ gtk_css_box_set_effective_state (GtkCssBox     *box,
 }
 
 GtkStateFlags
-_gtk_css_box_get_effective_state (GtkCssBox *box)
+_gtk_css_box_get_effective_state (GtkCssBox *self)
 {
-  g_return_val_if_fail (GTK_IS_CSS_BOX (box), 0);
+  g_return_val_if_fail (GTK_IS_CSS_BOX (self), 0);
 
-  return gtk_style_context_get_state (_gtk_css_actor_get_style_context (GTK_CSS_ACTOR (box)));
+  return gtk_style_context_get_state (_gtk_css_actor_get_style_context (GTK_CSS_ACTOR (self)));
 }
 
 static void
@@ -451,46 +451,76 @@ _gtk_css_box_new (void)
 }
 
 void
-_gtk_css_box_set_state (GtkCssBox     *box,
+_gtk_css_box_set_state (GtkCssBox     *self,
                         GtkStateFlags  state)
 {
   GtkCssBoxPrivate *priv;
   GtkStateFlags changed;
 
-  g_return_if_fail (GTK_IS_CSS_BOX (box));
+  g_return_if_fail (GTK_IS_CSS_BOX (self));
 
-  priv = box->priv;
+  priv = self->priv;
 
   if (priv->state == state)
     return;
 
-  g_object_freeze_notify (G_OBJECT (box));
+  g_object_freeze_notify (G_OBJECT (self));
 
   changed = priv->state ^ state;
 
   priv->state = state;
-  g_object_notify_by_pspec (G_OBJECT (box), obj_props[PROP_STATE]);
+  g_object_notify_by_pspec (G_OBJECT (self), obj_props[PROP_STATE]);
 
   if (changed & GTK_STATE_FLAGS_PROPAGATE_TO_PARENT)
-    gtk_css_box_update_state_on_parent (box,
+    gtk_css_box_update_state_on_parent (self,
                                         state & changed & GTK_STATE_FLAGS_PROPAGATE_TO_PARENT,
                                         ~state & changed & GTK_STATE_FLAGS_PROPAGATE_TO_PARENT);
   if (changed & GTK_STATE_FLAGS_PROPAGATE_TO_CHILDREN)
-    gtk_css_box_update_state_on_children (box,
+    gtk_css_box_update_state_on_children (self,
                                           state & changed & GTK_STATE_FLAGS_PROPAGATE_TO_CHILDREN,
                                           ~state & changed & GTK_STATE_FLAGS_PROPAGATE_TO_CHILDREN);
 
-  gtk_css_box_set_effective_state (box,
-                                   (_gtk_css_box_get_effective_state (box) & GTK_STATE_FLAGS_NO_PROPAGATE)
+  gtk_css_box_set_effective_state (self,
+                                   (_gtk_css_box_get_effective_state (self) & GTK_STATE_FLAGS_NO_PROPAGATE)
                                    | (state & ~GTK_STATE_FLAGS_NO_PROPAGATE));
 
-  g_object_thaw_notify (G_OBJECT (box));
+  g_object_thaw_notify (G_OBJECT (self));
 }
 
 GtkStateFlags
-_gtk_css_box_get_state (GtkCssBox *box)
+_gtk_css_box_get_state (GtkCssBox *self)
 {
-  g_return_val_if_fail (GTK_IS_CSS_BOX (box), 0);
+  g_return_val_if_fail (GTK_IS_CSS_BOX (self), 0);
 
-  return box->priv->state;
+  return self->priv->state;
+}
+
+void
+_gtk_css_box_add_class (GtkCssBox   *self,
+                        const gchar *class_name)
+{
+  g_return_if_fail (GTK_IS_CSS_BOX (self));
+  g_return_if_fail (class_name != NULL);
+
+  gtk_style_context_add_class (_gtk_css_actor_get_style_context (GTK_CSS_ACTOR (self)), class_name);
+}
+
+void
+_gtk_css_box_remove_class (GtkCssBox   *self,
+                           const gchar *class_name)
+{
+  g_return_if_fail (GTK_IS_CSS_BOX (self));
+  g_return_if_fail (class_name != NULL);
+
+  gtk_style_context_remove_class (_gtk_css_actor_get_style_context (GTK_CSS_ACTOR (self)), class_name);
+}
+
+gboolean
+_gtk_css_box_has_class (GtkCssBox   *self,
+                        const gchar *class_name)
+{
+  g_return_val_if_fail (GTK_IS_CSS_BOX (self), FALSE);
+  g_return_val_if_fail (class_name != NULL, FALSE);
+
+  return gtk_style_context_has_class (_gtk_css_actor_get_style_context (GTK_CSS_ACTOR (self)), class_name);
 }
diff --git a/gtk/actors/gtkcssboxprivate.h b/gtk/actors/gtkcssboxprivate.h
index 1e34c9a..06b76cc 100644
--- a/gtk/actors/gtkcssboxprivate.h
+++ b/gtk/actors/gtkcssboxprivate.h
@@ -52,10 +52,17 @@ GType                           _gtk_css_box_get_type
 
 GtkActor *                      _gtk_css_box_new                                (void);
 
-void                            _gtk_css_box_set_state                          (GtkCssBox                  *box,
+void                            _gtk_css_box_set_state                          (GtkCssBox                  *self,
                                                                                  GtkStateFlags               state);
-GtkStateFlags                   _gtk_css_box_get_state                          (GtkCssBox                  *box);
-GtkStateFlags                   _gtk_css_box_get_effective_state                (GtkCssBox                  *box);
+GtkStateFlags                   _gtk_css_box_get_state                          (GtkCssBox                  *self);
+GtkStateFlags                   _gtk_css_box_get_effective_state                (GtkCssBox                  *self);
+
+void                            _gtk_css_box_add_class                          (GtkCssBox                  *self,
+                                                                                 const gchar                *class_name);
+void                            _gtk_css_box_remove_class                       (GtkCssBox                  *self,
+                                                                                 const gchar                *class_name);
+gboolean                        _gtk_css_box_has_class                          (GtkCssBox                  *self,
+                                                                                 const gchar                *class_name);
 
 G_END_DECLS
 



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