nbtk (1.2.3-2) 01_use_ccss0.5.0.patch

Summary

 configure.ac         |    2 +-
 nbtk/nbtk-stylable.c |   31 +++++++++++++++++++++----------
 nbtk/nbtk-stylable.h |    3 ++-
 nbtk/nbtk-style.c    |   10 +++++-----
 nbtk/nbtk-widget.c   |   44 +++++++++++++++++++++++++++++++-------------
 nbtk/nbtk-widget.h   |    1 +
 6 files changed, 61 insertions(+), 30 deletions(-)

    
download this patch

Patch contents

Index: nbtk-1.2.3/configure.ac
===================================================================
--- nbtk-1.2.3.orig/configure.ac	2010-04-17 14:16:07.910564998 +0800
+++ nbtk-1.2.3/configure.ac	2010-04-17 14:18:17.814571880 +0800
@@ -121,7 +121,7 @@
 
 AM_PROG_LIBTOOL
 
-NBTK_REQUIRES="clutter-1.0 clutter-imcontext-0.1 libccss-1 = 0.3.1"
+NBTK_REQUIRES="clutter-1.0 clutter-imcontext-0.1 ccss-1 >= 0.5.0"
 PKG_CHECK_MODULES(NBTK, [$NBTK_REQUIRES])
 PKG_CHECK_MODULES(GTK, [gtk+-2.0])
 
Index: nbtk-1.2.3/nbtk/nbtk-stylable.c
===================================================================
--- nbtk-1.2.3.orig/nbtk/nbtk-stylable.c	2010-04-17 14:16:07.910564998 +0800
+++ nbtk-1.2.3/nbtk/nbtk-stylable.c	2010-04-17 14:18:17.814571880 +0800
@@ -734,6 +734,21 @@
     return NULL;
 }
 
+const gchar **
+nbtk_stylable_get_pseudo_classes (NbtkStylable *stylable)
+{
+  NbtkStylableIface *iface;
+
+  g_return_val_if_fail (NBTK_IS_STYLABLE (stylable), NULL);
+
+  iface = NBTK_STYLABLE_GET_IFACE (stylable);
+
+  if (iface->get_pseudo_classes)
+    return iface->get_pseudo_classes (stylable);
+  else
+    return NULL;
+}
+
 /**
  * nbtk_stylable_get_pseudo_class:
  * @stylable: a #NbtkStylable
@@ -745,16 +760,12 @@
 const gchar*
 nbtk_stylable_get_pseudo_class (NbtkStylable *stylable)
 {
-  NbtkStylableIface *iface;
-
-  g_return_val_if_fail (NBTK_IS_STYLABLE (stylable), NULL);
-
-  iface = NBTK_STYLABLE_GET_IFACE (stylable);
-
-  if (iface->get_pseudo_class)
-    return iface->get_pseudo_class (stylable);
-  else
-    return NULL;
+  const gchar **result=NULL;
+  result = nbtk_stylable_get_pseudo_classes(stylable);
+  if (result && result[0]) {
+    return result[0];
+  }
+  return NULL;
 }
 
 /**
Index: nbtk-1.2.3/nbtk/nbtk-stylable.h
===================================================================
--- nbtk-1.2.3.orig/nbtk/nbtk-stylable.h	2010-04-17 14:16:07.914564741 +0800
+++ nbtk-1.2.3/nbtk/nbtk-stylable.h	2010-04-17 14:18:17.814571880 +0800
@@ -58,7 +58,7 @@
   const gchar  *(*get_style_id)     (NbtkStylable *stylable);
   const gchar  *(*get_style_type)   (NbtkStylable *stylable);
   const gchar  *(*get_style_class)  (NbtkStylable *stylable);
-  const gchar  *(*get_pseudo_class) (NbtkStylable *stylable);
+  const gchar  **(*get_pseudo_classes) (NbtkStylable *stylable);
   gchar        *(*get_attribute)    (NbtkStylable *stylable,
                                      const gchar  *name);
   gboolean      (*get_viewport)     (NbtkStylable *stylable,
@@ -109,6 +109,7 @@
 const gchar*  nbtk_stylable_get_style_type    (NbtkStylable *stylable);
 const gchar*  nbtk_stylable_get_style_class   (NbtkStylable *stylable);
 const gchar*  nbtk_stylable_get_pseudo_class  (NbtkStylable *stylable);
+const gchar** nbtk_stylable_get_pseudo_classes  (NbtkStylable *stylable);
 gchar*        nbtk_stylable_get_attribute     (NbtkStylable *stylable,
                                                const gchar  *name);
 gboolean      nbtk_stylable_get_viewport      (NbtkStylable *stylable,
Index: nbtk-1.2.3/nbtk/nbtk-style.c
===================================================================
--- nbtk-1.2.3.orig/nbtk/nbtk-style.c	2010-04-17 14:16:07.914564741 +0800
+++ nbtk-1.2.3/nbtk/nbtk-style.c	2010-04-17 14:18:17.814571880 +0800
@@ -433,10 +433,10 @@
   return nbtk_stylable_get_style_class (node->stylable);
 }
 
-static const gchar*
-get_pseudo_class (nbtk_style_node_t *node)
+static const gchar **
+get_pseudo_classes (nbtk_style_node_t *node)
 {
-  return nbtk_stylable_get_pseudo_class (node->stylable);
+  return nbtk_stylable_get_pseudo_classes (node->stylable);
 }
 
 static const gchar*
@@ -462,7 +462,7 @@
     .get_id           = (ccss_node_get_id_f) get_style_id,
     .get_type         = (ccss_node_get_type_f) get_style_type,
     .get_class        = (ccss_node_get_class_f) get_style_class,
-    .get_pseudo_class = (ccss_node_get_pseudo_class_f) get_pseudo_class,
+    .get_pseudo_classes = (ccss_node_get_pseudo_classes_f) get_pseudo_classes,
     .get_viewport     = NULL,// (ccss_node_get_viewport_f) get_viewport,
     .get_attribute    = (ccss_node_get_attribute_f) get_attribute,
     .release          = (ccss_node_release_f) release
@@ -507,7 +507,7 @@
 
           if (ccss_style_get_property (ccss_style,
                                         "border-image",
-                                        (ccss_property_base_t const **) &border_image))
+                                        (ccss_property_t const **) &border_image))
             {
               if (border_image &&
                   border_image->base.state == CCSS_PROPERTY_STATE_SET)
Index: nbtk-1.2.3/nbtk/nbtk-widget.c
===================================================================
--- nbtk-1.2.3.orig/nbtk/nbtk-widget.c	2010-04-17 14:16:07.914564741 +0800
+++ nbtk-1.2.3/nbtk/nbtk-widget.c	2010-04-17 14:18:17.818572150 +0800
@@ -53,7 +53,7 @@
   NbtkPadding padding;
 
   NbtkStyle *style;
-  gchar *pseudo_class;
+  gchar *pseudo_classes[2];
   gchar *style_class;
 
   ClutterActor *border_image;
@@ -162,7 +162,7 @@
       break;
 
     case PROP_PSEUDO_CLASS:
-      g_value_set_string (value, priv->pseudo_class);
+      g_value_set_string (value, priv->pseudo_classes[0]);
       break;
 
     case PROP_STYLE_CLASS:
@@ -237,7 +237,9 @@
   NbtkWidgetPrivate *priv = NBTK_WIDGET (gobject)->priv;
 
   g_free (priv->style_class);
-  g_free (priv->pseudo_class);
+  g_free (priv->pseudo_classes[0]);
+  priv->pseudo_classes[0]=NULL;
+  priv->pseudo_classes[1]=NULL;
 
   clutter_color_free (priv->bg_color);
 
@@ -843,12 +845,16 @@
   return NBTK_WIDGET (stylable)->priv->style_class;
 }
 
-static const gchar*
-nbtk_widget_get_pseudo_class (NbtkStylable *stylable)
+static const gchar **
+nbtk_widget_get_pseudo_classes (NbtkStylable *stylable)
 {
+  const gchar ** ret=NULL;
+  gchar * const * result=NULL;
   g_return_val_if_fail (NBTK_IS_WIDGET (stylable), NULL);
 
-  return NBTK_WIDGET (stylable)->priv->pseudo_class;
+  result = NBTK_WIDGET (stylable)->priv->pseudo_classes;
+  ret = (const gchar **) result;
+  return ret;
 }
 
 static gboolean
@@ -915,6 +921,14 @@
   return actor->priv->style_class;
 }
 
+gchar * const *
+nbtk_widget_get_style_pseudo_classes (NbtkWidget *actor)
+{
+  g_return_val_if_fail (NBTK_IS_WIDGET (actor), NULL);
+
+  return actor->priv->pseudo_classes;
+}
+
 /**
  * nbtk_widget_get_style_pseudo_class:
  * @actor: a #NbtkWidget
@@ -927,9 +941,12 @@
 const gchar*
 nbtk_widget_get_style_pseudo_class (NbtkWidget *actor)
 {
-  g_return_val_if_fail (NBTK_IS_WIDGET (actor), NULL);
-
-  return actor->priv->pseudo_class;
+  gchar * const * result=NULL;
+  result = nbtk_widget_get_style_pseudo_classes(actor);
+  if (result && result[0]) {
+    return result[0];
+  }
+  return NULL;
 }
 
 /**
@@ -949,10 +966,11 @@
 
   priv = actor->priv;
 
-  if (g_strcmp0 (pseudo_class, priv->pseudo_class))
+  priv->pseudo_classes[1] = NULL;
+  if (g_strcmp0 (pseudo_class, priv->pseudo_classes[0]))
     {
-      g_free (priv->pseudo_class);
-      priv->pseudo_class = g_strdup (pseudo_class);
+      g_free (priv->pseudo_classes[0]);
+      priv->pseudo_classes[0] = g_strdup (pseudo_class);
 
       nbtk_stylable_changed ((NbtkStylable*) actor);
 
@@ -1034,7 +1052,7 @@
       iface->get_style_id = nbtk_widget_get_style_id;
       iface->get_style_type = nbtk_widget_get_style_type;
       iface->get_style_class = nbtk_widget_get_style_class;
-      iface->get_pseudo_class = nbtk_widget_get_pseudo_class;
+      iface->get_pseudo_classes = nbtk_widget_get_pseudo_classes;
       /* iface->get_attribute = nbtk_widget_get_attribute; */
       iface->get_viewport = nbtk_widget_get_viewport;
     }
Index: nbtk-1.2.3/nbtk/nbtk-widget.h
===================================================================
--- nbtk-1.2.3.orig/nbtk/nbtk-widget.h	2010-04-17 14:16:07.914564741 +0800
+++ nbtk-1.2.3/nbtk/nbtk-widget.h	2010-04-17 14:18:17.818572150 +0800
@@ -79,6 +79,7 @@
 void                  nbtk_widget_set_style_pseudo_class (NbtkWidget   *actor,
                                                           const gchar  *pseudo_class);
 G_CONST_RETURN gchar *nbtk_widget_get_style_pseudo_class (NbtkWidget   *actor);
+gchar * const * nbtk_widget_get_style_pseudo_classes (NbtkWidget   *actor);
 void                  nbtk_widget_set_style_class_name   (NbtkWidget   *actor,
                                                           const gchar  *style_class);
 G_CONST_RETURN gchar *nbtk_widget_get_style_class_name   (NbtkWidget   *actor);