styleproperty: Add custom registration func for shorthands

This commit is contained in:
Benjamin Otte 2011-12-31 15:43:13 +01:00
parent d4344164ac
commit 927b922208

View File

@ -765,10 +765,40 @@ unset_border_image (GtkStyleProperties *props,
gtk_style_properties_unset_property (props, "border-image-width", state); gtk_style_properties_unset_property (props, "border-image-width", state);
} }
static void
_gtk_css_shorthand_property_register (GParamSpec *pspec,
GtkStylePropertyFlags flags,
GtkStylePropertyParser property_parse_func,
GtkStyleUnpackFunc unpack_func,
GtkStylePackFunc pack_func,
GtkStyleParseFunc parse_func,
GtkStylePrintFunc print_func,
const GValue * initial_value,
GtkStyleUnsetFunc unset_func)
{
GtkStyleProperty *node;
g_return_if_fail (pack_func != NULL);
g_return_if_fail (unpack_func != NULL);
node = g_object_new (GTK_TYPE_CSS_SHORTHAND_PROPERTY,
"name", pspec->name,
NULL);
node->flags = flags;
node->pspec = pspec;
node->property_parse_func = property_parse_func;
node->pack_func = pack_func;
node->unpack_func = unpack_func;
node->parse_func = parse_func;
node->print_func = print_func;
node->unset_func = unset_func;
}
void void
_gtk_css_shorthand_property_init_properties (void) _gtk_css_shorthand_property_init_properties (void)
{ {
_gtk_style_property_register (g_param_spec_boxed ("font", _gtk_css_shorthand_property_register (g_param_spec_boxed ("font",
"Font Description", "Font Description",
"Font Description", "Font Description",
PANGO_TYPE_FONT_DESCRIPTION, 0), PANGO_TYPE_FONT_DESCRIPTION, 0),
@ -780,7 +810,7 @@ _gtk_css_shorthand_property_init_properties (void)
NULL, NULL,
NULL, NULL,
unset_font_description); unset_font_description);
_gtk_style_property_register (g_param_spec_boxed ("margin", _gtk_css_shorthand_property_register (g_param_spec_boxed ("margin",
"Margin", "Margin",
"Margin", "Margin",
GTK_TYPE_BORDER, 0), GTK_TYPE_BORDER, 0),
@ -792,7 +822,7 @@ _gtk_css_shorthand_property_init_properties (void)
NULL, NULL,
NULL, NULL,
unset_margin); unset_margin);
_gtk_style_property_register (g_param_spec_boxed ("padding", _gtk_css_shorthand_property_register (g_param_spec_boxed ("padding",
"Padding", "Padding",
"Padding", "Padding",
GTK_TYPE_BORDER, 0), GTK_TYPE_BORDER, 0),
@ -804,7 +834,7 @@ _gtk_css_shorthand_property_init_properties (void)
NULL, NULL,
NULL, NULL,
unset_padding); unset_padding);
_gtk_style_property_register (g_param_spec_boxed ("border-width", _gtk_css_shorthand_property_register (g_param_spec_boxed ("border-width",
"Border width", "Border width",
"Border width, in pixels", "Border width, in pixels",
GTK_TYPE_BORDER, 0), GTK_TYPE_BORDER, 0),
@ -816,7 +846,7 @@ _gtk_css_shorthand_property_init_properties (void)
NULL, NULL,
NULL, NULL,
unset_border_width); unset_border_width);
_gtk_style_property_register (g_param_spec_int ("border-radius", _gtk_css_shorthand_property_register (g_param_spec_int ("border-radius",
"Border radius", "Border radius",
"Border radius, in pixels", "Border radius, in pixels",
0, G_MAXINT, 0, 0), 0, G_MAXINT, 0, 0),
@ -828,7 +858,7 @@ _gtk_css_shorthand_property_init_properties (void)
border_radius_value_print, border_radius_value_print,
NULL, NULL,
unset_border_radius); unset_border_radius);
_gtk_style_property_register (g_param_spec_boxed ("border-color", _gtk_css_shorthand_property_register (g_param_spec_boxed ("border-color",
"Border color", "Border color",
"Border color", "Border color",
GDK_TYPE_RGBA, 0), GDK_TYPE_RGBA, 0),
@ -840,7 +870,7 @@ _gtk_css_shorthand_property_init_properties (void)
NULL, NULL,
NULL, NULL,
unset_border_color); unset_border_color);
_gtk_style_property_register (g_param_spec_boxed ("border-image", _gtk_css_shorthand_property_register (g_param_spec_boxed ("border-image",
"Border Image", "Border Image",
"Border Image", "Border Image",
GTK_TYPE_BORDER_IMAGE, 0), GTK_TYPE_BORDER_IMAGE, 0),