+#define GTK_TYPE_STYLE_PROPERTY (_gtk_style_property_get_type ())
+#define GTK_STYLE_PROPERTY(obj) (G_TYPE_CHECK_INSTANCE_CAST (obj, GTK_TYPE_STYLE_PROPERTY, GtkStyleProperty))
+#define GTK_STYLE_PROPERTY_CLASS(cls) (G_TYPE_CHECK_CLASS_CAST (cls, GTK_TYPE_STYLE_PROPERTY, GtkStylePropertyClass))
+#define GTK_IS_STYLE_PROPERTY(obj) (G_TYPE_CHECK_INSTANCE_TYPE (obj, GTK_TYPE_STYLE_PROPERTY))
+#define GTK_IS_STYLE_PROPERTY_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE (obj, GTK_TYPE_STYLE_PROPERTY))
+#define GTK_STYLE_PROPERTY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_STYLE_PROPERTY, GtkStylePropertyClass))
+
+typedef struct _GtkStyleProperty GtkStyleProperty;
+typedef struct _GtkStylePropertyClass GtkStylePropertyClass;
+
+typedef GtkCssValue * (* GtkStyleQueryFunc) (guint id,
+ gpointer data);
+
+struct _GtkStyleProperty
+{
+ GObject parent;
+
+ char *name;
+ GType value_type;
+};
+
+struct _GtkStylePropertyClass
+{
+ GObjectClass parent_class;
+
+ void (* assign) (GtkStyleProperty *property,
+ GtkStyleProperties *props,
+ GtkStateFlags state,
+ const GValue *value);
+ void (* query) (GtkStyleProperty *property,
+ GValue *value,
+ GtkStyleQueryFunc query_func,
+ gpointer query_data);
+ GtkCssValue * (* parse_value) (GtkStyleProperty * property,
+ GtkCssParser *parser);
+
+ GHashTable *properties;
+};
+
+GType _gtk_style_property_get_type (void) G_GNUC_CONST;
+
+void _gtk_style_property_init_properties (void);
+
+GtkStyleProperty * _gtk_style_property_lookup (const char *name);
+
+const char * _gtk_style_property_get_name (GtkStyleProperty *property);
+
+GtkCssValue * _gtk_style_property_parse_value (GtkStyleProperty * property,
+ GtkCssParser *parser);
+
+GType _gtk_style_property_get_value_type(GtkStyleProperty * property);
+void _gtk_style_property_query (GtkStyleProperty * property,
+ GValue *value,
+ GtkStyleQueryFunc query_func,
+ gpointer query_data);
+void _gtk_style_property_assign (GtkStyleProperty *property,
+ GtkStyleProperties *props,
+ GtkStateFlags state,
+ const GValue *value);