Commit 9bfd3d2e authored by Benjamin Otte's avatar Benjamin Otte

API: Add API to set style properties to be inherit

The API is not used anywhere yet.
parent 8605a2a1
......@@ -5487,6 +5487,8 @@ gtk_style_properties_map_color
gtk_style_properties_merge
gtk_style_properties_new
GtkStylePropertyParser
gtk_style_param_set_inherit
gtk_style_param_get_inherit
gtk_style_properties_register_property
gtk_style_properties_set
gtk_style_properties_set_property
......
......@@ -2520,6 +2520,8 @@ gtk_style_has_context
gtk_style_lookup_color
gtk_style_lookup_icon_set
gtk_style_new
gtk_style_param_get_inherit
gtk_style_param_set_inherit
gtk_style_properties_clear
gtk_style_properties_get
gtk_style_properties_get_property
......
......@@ -523,6 +523,54 @@ gtk_style_properties_lookup_property (const gchar *property_name,
return found;
}
/* GParamSpec functionality */
enum {
GTK_STYLE_PROPERTY_INHERIT = 1 << G_PARAM_USER_SHIFT
};
/**
* gtk_style_param_set_inherit:
* @pspec: A style param
* @inherit: whether the @pspec value should be inherited
*
* Sets whether a param spec installed with function such as
* gtk_style_properties_register_property() or
* gtk_widget_class_install_style_property() should inherit their
* value from the parent widget if it is not set instead of using
* the default value of @pspec. See the
* <ulink url="http://www.w3.org/TR/CSS21/cascade.html#inheritance">
* CSS specification's description of inheritance</ulink> for a
* longer description of this concept.
*
* By default, param specs do not inherit their value.
**/
void
gtk_style_param_set_inherit (GParamSpec *pspec,
gboolean inherit)
{
if (inherit)
pspec->flags |= GTK_STYLE_PROPERTY_INHERIT;
else
pspec->flags &= ~GTK_STYLE_PROPERTY_INHERIT;
}
/**
* gtk_style_param_get_inherit:
* @pspec: a style param
*
* Checks if the value of this param should be inherited from the parent
* #GtkWidget instead of using the default value when it has not been
* specified. See gtk_style_param_set_inherit() for more details.
*
* Returns: %TRUE if the param should inherit its value
**/
gboolean
gtk_style_param_get_inherit (GParamSpec *pspec)
{
return (pspec->flags & GTK_STYLE_PROPERTY_INHERIT) ? TRUE : FALSE;
}
/* GtkStyleProperties methods */
/**
......
......@@ -66,6 +66,10 @@ typedef gboolean (* GtkStylePropertyParser) (const gchar *string,
GType gtk_style_properties_get_type (void) G_GNUC_CONST;
void gtk_style_param_set_inherit (GParamSpec *pspec,
gboolean inherit);
gboolean gtk_style_param_get_inherit (GParamSpec *pspec);
/* Functions to register style properties */
void gtk_style_properties_register_property (GtkStylePropertyParser parse_func,
GParamSpec *pspec);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment