mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-29 06:51:10 +00:00
styleproperties: Add an unset vfunc to style properties
This makes unsetting work for shorthands.
This commit is contained in:
parent
fd705ce7c7
commit
68ebc77a9a
@ -319,6 +319,7 @@ gtk_style_properties_register_property (GtkStylePropertyParser parse_func,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL);
|
||||
}
|
||||
|
||||
@ -839,6 +840,12 @@ gtk_style_properties_unset_property (GtkStyleProperties *props,
|
||||
return;
|
||||
}
|
||||
|
||||
if (node->unset_func)
|
||||
{
|
||||
node->unset_func (props, state);
|
||||
return;
|
||||
}
|
||||
|
||||
priv = props->priv;
|
||||
prop = g_hash_table_lookup (priv->properties, node);
|
||||
|
||||
|
@ -2394,6 +2394,7 @@ gtk_style_property_init (void)
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL);
|
||||
|
||||
gtk_style_properties_register_property (NULL,
|
||||
@ -2412,6 +2413,7 @@ gtk_style_property_init (void)
|
||||
NULL,
|
||||
font_family_parse,
|
||||
font_family_value_print,
|
||||
NULL,
|
||||
NULL);
|
||||
_gtk_style_property_register (g_param_spec_enum ("font-style",
|
||||
"Font style",
|
||||
@ -2424,6 +2426,7 @@ gtk_style_property_init (void)
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL);
|
||||
_gtk_style_property_register (g_param_spec_enum ("font-variant",
|
||||
"Font variant",
|
||||
@ -2436,6 +2439,7 @@ gtk_style_property_init (void)
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL);
|
||||
/* xxx: need to parse this properly, ie parse the numbers */
|
||||
_gtk_style_property_register (g_param_spec_enum ("font-weight",
|
||||
@ -2449,6 +2453,7 @@ gtk_style_property_init (void)
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL);
|
||||
_gtk_style_property_register (g_param_spec_double ("font-size",
|
||||
"Font size",
|
||||
@ -2460,6 +2465,7 @@ gtk_style_property_init (void)
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL);
|
||||
_gtk_style_property_register (g_param_spec_boxed ("font",
|
||||
"Font Description",
|
||||
@ -2471,6 +2477,7 @@ gtk_style_property_init (void)
|
||||
pack_font_description,
|
||||
font_description_value_parse,
|
||||
font_description_value_print,
|
||||
NULL,
|
||||
NULL);
|
||||
|
||||
_gtk_style_property_register (g_param_spec_boxed ("text-shadow",
|
||||
@ -2483,6 +2490,7 @@ gtk_style_property_init (void)
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL);
|
||||
|
||||
_gtk_style_property_register (g_param_spec_boxed ("icon-shadow",
|
||||
@ -2495,6 +2503,7 @@ gtk_style_property_init (void)
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL);
|
||||
|
||||
gtk_style_properties_register_property (NULL,
|
||||
@ -2532,6 +2541,7 @@ gtk_style_property_init (void)
|
||||
pack_margin,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL);
|
||||
gtk_style_properties_register_property (NULL,
|
||||
g_param_spec_int ("padding-top",
|
||||
@ -2563,6 +2573,7 @@ gtk_style_property_init (void)
|
||||
pack_padding,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL);
|
||||
gtk_style_properties_register_property (NULL,
|
||||
g_param_spec_int ("border-top-width",
|
||||
@ -2594,6 +2605,7 @@ gtk_style_property_init (void)
|
||||
pack_border_width,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL);
|
||||
|
||||
_gtk_style_property_register (g_param_spec_boxed ("border-top-left-radius",
|
||||
@ -2606,6 +2618,7 @@ gtk_style_property_init (void)
|
||||
NULL,
|
||||
border_corner_radius_value_parse,
|
||||
border_corner_radius_value_print,
|
||||
NULL,
|
||||
NULL);
|
||||
_gtk_style_property_register (g_param_spec_boxed ("border-top-right-radius",
|
||||
"Border top right radius",
|
||||
@ -2617,6 +2630,7 @@ gtk_style_property_init (void)
|
||||
NULL,
|
||||
border_corner_radius_value_parse,
|
||||
border_corner_radius_value_print,
|
||||
NULL,
|
||||
NULL);
|
||||
_gtk_style_property_register (g_param_spec_boxed ("border-bottom-right-radius",
|
||||
"Border bottom right radius",
|
||||
@ -2628,6 +2642,7 @@ gtk_style_property_init (void)
|
||||
NULL,
|
||||
border_corner_radius_value_parse,
|
||||
border_corner_radius_value_print,
|
||||
NULL,
|
||||
NULL);
|
||||
_gtk_style_property_register (g_param_spec_boxed ("border-bottom-left-radius",
|
||||
"Border bottom left radius",
|
||||
@ -2639,6 +2654,7 @@ gtk_style_property_init (void)
|
||||
NULL,
|
||||
border_corner_radius_value_parse,
|
||||
border_corner_radius_value_print,
|
||||
NULL,
|
||||
NULL);
|
||||
_gtk_style_property_register (g_param_spec_int ("border-radius",
|
||||
"Border radius",
|
||||
@ -2650,6 +2666,7 @@ gtk_style_property_init (void)
|
||||
pack_border_radius,
|
||||
border_radius_value_parse,
|
||||
border_radius_value_print,
|
||||
NULL,
|
||||
NULL);
|
||||
|
||||
gtk_style_properties_register_property (NULL,
|
||||
@ -2668,7 +2685,8 @@ gtk_style_property_init (void)
|
||||
NULL,
|
||||
border_color_value_parse,
|
||||
NULL,
|
||||
border_color_default_value);
|
||||
border_color_default_value,
|
||||
NULL);
|
||||
_gtk_style_property_register (g_param_spec_boxed ("border-right-color",
|
||||
"Border right color",
|
||||
"Border right color",
|
||||
@ -2679,7 +2697,8 @@ gtk_style_property_init (void)
|
||||
NULL,
|
||||
border_color_value_parse,
|
||||
NULL,
|
||||
border_color_default_value);
|
||||
border_color_default_value,
|
||||
NULL);
|
||||
_gtk_style_property_register (g_param_spec_boxed ("border-bottom-color",
|
||||
"Border bottom color",
|
||||
"Border bottom color",
|
||||
@ -2690,7 +2709,8 @@ gtk_style_property_init (void)
|
||||
NULL,
|
||||
border_color_value_parse,
|
||||
NULL,
|
||||
border_color_default_value);
|
||||
border_color_default_value,
|
||||
NULL);
|
||||
_gtk_style_property_register (g_param_spec_boxed ("border-left-color",
|
||||
"Border left color",
|
||||
"Border left color",
|
||||
@ -2701,7 +2721,8 @@ gtk_style_property_init (void)
|
||||
NULL,
|
||||
border_color_value_parse,
|
||||
NULL,
|
||||
border_color_default_value);
|
||||
border_color_default_value,
|
||||
NULL);
|
||||
_gtk_style_property_register (g_param_spec_boxed ("border-color",
|
||||
"Border color",
|
||||
"Border color",
|
||||
@ -2712,6 +2733,7 @@ gtk_style_property_init (void)
|
||||
pack_border_color,
|
||||
border_color_shorthand_value_parse,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL);
|
||||
|
||||
gtk_style_properties_register_property (NULL,
|
||||
@ -2744,7 +2766,8 @@ gtk_style_property_init (void)
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
border_image_width_default_value);
|
||||
border_image_width_default_value,
|
||||
NULL);
|
||||
_gtk_style_property_register (g_param_spec_boxed ("border-image",
|
||||
"Border Image",
|
||||
"Border Image",
|
||||
@ -2755,6 +2778,7 @@ gtk_style_property_init (void)
|
||||
_gtk_border_image_pack,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL);
|
||||
gtk_style_properties_register_property (NULL,
|
||||
g_param_spec_object ("engine",
|
||||
@ -2778,6 +2802,7 @@ gtk_style_property_init (void)
|
||||
NULL,
|
||||
bindings_value_parse,
|
||||
bindings_value_print,
|
||||
NULL,
|
||||
NULL);
|
||||
}
|
||||
|
||||
@ -2797,7 +2822,8 @@ _gtk_style_property_register (GParamSpec *pspec,
|
||||
GtkStylePackFunc pack_func,
|
||||
GtkStyleParseFunc parse_func,
|
||||
GtkStylePrintFunc print_func,
|
||||
GtkStyleDefaultValueFunc default_value_func)
|
||||
GtkStyleDefaultValueFunc default_value_func,
|
||||
GtkStyleUnsetFunc unset_func)
|
||||
{
|
||||
const GtkStyleProperty *existing;
|
||||
GtkStyleProperty *node;
|
||||
@ -2823,6 +2849,7 @@ _gtk_style_property_register (GParamSpec *pspec,
|
||||
node->parse_func = parse_func;
|
||||
node->print_func = print_func;
|
||||
node->default_value_func = default_value_func;
|
||||
node->unset_func = unset_func;
|
||||
|
||||
g_hash_table_insert (properties, pspec->name, node);
|
||||
}
|
||||
|
@ -42,6 +42,8 @@ typedef void (* GtkStylePrintFunc) (const GValue
|
||||
typedef void (* GtkStyleDefaultValueFunc) (GtkStyleProperties *props,
|
||||
GtkStateFlags state,
|
||||
GValue *value);
|
||||
typedef void (* GtkStyleUnsetFunc) (GtkStyleProperties *props,
|
||||
GtkStateFlags state);
|
||||
|
||||
|
||||
struct _GtkStyleProperty
|
||||
@ -55,6 +57,7 @@ struct _GtkStyleProperty
|
||||
GtkStyleParseFunc parse_func;
|
||||
GtkStylePrintFunc print_func;
|
||||
GtkStyleDefaultValueFunc default_value_func;
|
||||
GtkStyleUnsetFunc unset_func;
|
||||
};
|
||||
|
||||
const GtkStyleProperty * _gtk_style_property_lookup (const char *name);
|
||||
@ -66,7 +69,8 @@ void _gtk_style_property_register (GParamSpec
|
||||
GtkStylePackFunc pack_func,
|
||||
GtkStyleParseFunc parse_func,
|
||||
GtkStylePrintFunc print_func,
|
||||
GtkStyleDefaultValueFunc default_value_func);
|
||||
GtkStyleDefaultValueFunc default_value_func,
|
||||
GtkStyleUnsetFunc unset_func);
|
||||
|
||||
gboolean _gtk_style_property_is_inherit (const GtkStyleProperty *property);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user