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);