mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2025-01-16 07:04:29 +00:00
styleproperty: Make the register functin take varargs
.. for the initial value.
This commit is contained in:
parent
09b25facb0
commit
4b4792f65d
@ -21,6 +21,7 @@
|
||||
|
||||
#include "gtkstylepropertyprivate.h"
|
||||
|
||||
#include <gobject/gvaluecollector.h>
|
||||
#include <gdk-pixbuf/gdk-pixbuf.h>
|
||||
#include <cairo-gobject.h>
|
||||
|
||||
@ -91,6 +92,34 @@ _gtk_style_property_register (GParamSpec *pspec,
|
||||
g_value_unset (&initial_fallback);
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_style_property_register (GParamSpec *pspec,
|
||||
GtkStylePropertyFlags flags,
|
||||
GtkStyleParseFunc parse_func,
|
||||
GtkStylePrintFunc print_func,
|
||||
...)
|
||||
{
|
||||
GValue initial_value = G_VALUE_INIT;
|
||||
char *error = NULL;
|
||||
va_list args;
|
||||
|
||||
va_start (args, print_func);
|
||||
G_VALUE_COLLECT_INIT (&initial_value, pspec->value_type,
|
||||
args, 0, &error);
|
||||
if (error)
|
||||
{
|
||||
g_error ("property `%s' initial value is broken: %s", pspec->name, error);
|
||||
g_value_unset (&initial_value);
|
||||
return;
|
||||
}
|
||||
|
||||
va_end (args);
|
||||
|
||||
_gtk_style_property_register (pspec, flags, parse_func, print_func, &initial_value);
|
||||
|
||||
g_value_unset (&initial_value);
|
||||
}
|
||||
|
||||
/*** HELPERS ***/
|
||||
|
||||
static void
|
||||
@ -337,41 +366,34 @@ _gtk_css_style_property_init_properties (void)
|
||||
/* note that gtk_style_properties_register_property() calls this function,
|
||||
* so make sure we're sanely inited to avoid infloops */
|
||||
|
||||
g_value_init (&value, GDK_TYPE_RGBA);
|
||||
rgba_init (&rgba, 1, 1, 1, 1);
|
||||
g_value_set_boxed (&value, &rgba);
|
||||
_gtk_style_property_register (g_param_spec_boxed ("color",
|
||||
gtk_style_property_register (g_param_spec_boxed ("color",
|
||||
"Foreground color",
|
||||
"Foreground color",
|
||||
GDK_TYPE_RGBA, 0),
|
||||
GTK_STYLE_PROPERTY_INHERIT,
|
||||
NULL,
|
||||
NULL,
|
||||
&value);
|
||||
&rgba);
|
||||
rgba_init (&rgba, 0, 0, 0, 0);
|
||||
g_value_set_boxed (&value, &rgba);
|
||||
_gtk_style_property_register (g_param_spec_boxed ("background-color",
|
||||
gtk_style_property_register (g_param_spec_boxed ("background-color",
|
||||
"Background color",
|
||||
"Background color",
|
||||
GDK_TYPE_RGBA, 0),
|
||||
0,
|
||||
NULL,
|
||||
NULL,
|
||||
&value);
|
||||
g_value_unset (&value);
|
||||
&rgba);
|
||||
|
||||
g_value_init (&value, G_TYPE_STRV);
|
||||
g_value_set_boxed (&value, default_font_family);
|
||||
_gtk_style_property_register (g_param_spec_boxed ("font-family",
|
||||
gtk_style_property_register (g_param_spec_boxed ("font-family",
|
||||
"Font family",
|
||||
"Font family",
|
||||
G_TYPE_STRV, 0),
|
||||
GTK_STYLE_PROPERTY_INHERIT,
|
||||
font_family_parse,
|
||||
font_family_value_print,
|
||||
&value);
|
||||
g_value_unset (&value);
|
||||
_gtk_style_property_register (g_param_spec_enum ("font-style",
|
||||
default_font_family);
|
||||
gtk_style_property_register (g_param_spec_enum ("font-style",
|
||||
"Font style",
|
||||
"Font style",
|
||||
PANGO_TYPE_STYLE,
|
||||
@ -379,8 +401,8 @@ _gtk_css_style_property_init_properties (void)
|
||||
GTK_STYLE_PROPERTY_INHERIT,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL);
|
||||
_gtk_style_property_register (g_param_spec_enum ("font-variant",
|
||||
PANGO_STYLE_NORMAL);
|
||||
gtk_style_property_register (g_param_spec_enum ("font-variant",
|
||||
"Font variant",
|
||||
"Font variant",
|
||||
PANGO_TYPE_VARIANT,
|
||||
@ -388,9 +410,9 @@ _gtk_css_style_property_init_properties (void)
|
||||
GTK_STYLE_PROPERTY_INHERIT,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL);
|
||||
PANGO_VARIANT_NORMAL);
|
||||
/* xxx: need to parse this properly, ie parse the numbers */
|
||||
_gtk_style_property_register (g_param_spec_enum ("font-weight",
|
||||
gtk_style_property_register (g_param_spec_enum ("font-weight",
|
||||
"Font weight",
|
||||
"Font weight",
|
||||
PANGO_TYPE_WEIGHT,
|
||||
@ -398,20 +420,17 @@ _gtk_css_style_property_init_properties (void)
|
||||
GTK_STYLE_PROPERTY_INHERIT,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL);
|
||||
g_value_init (&value, G_TYPE_DOUBLE);
|
||||
g_value_set_double (&value, 10);
|
||||
_gtk_style_property_register (g_param_spec_double ("font-size",
|
||||
PANGO_WEIGHT_NORMAL);
|
||||
gtk_style_property_register (g_param_spec_double ("font-size",
|
||||
"Font size",
|
||||
"Font size",
|
||||
0, G_MAXDOUBLE, 0, 0),
|
||||
GTK_STYLE_PROPERTY_INHERIT,
|
||||
NULL,
|
||||
NULL,
|
||||
&value);
|
||||
g_value_unset (&value);
|
||||
10.0);
|
||||
|
||||
_gtk_style_property_register (g_param_spec_boxed ("text-shadow",
|
||||
gtk_style_property_register (g_param_spec_boxed ("text-shadow",
|
||||
"Text shadow",
|
||||
"Text shadow",
|
||||
GTK_TYPE_SHADOW, 0),
|
||||
@ -420,7 +439,7 @@ _gtk_css_style_property_init_properties (void)
|
||||
NULL,
|
||||
NULL);
|
||||
|
||||
_gtk_style_property_register (g_param_spec_boxed ("icon-shadow",
|
||||
gtk_style_property_register (g_param_spec_boxed ("icon-shadow",
|
||||
"Icon shadow",
|
||||
"Icon shadow",
|
||||
GTK_TYPE_SHADOW, 0),
|
||||
@ -495,41 +514,38 @@ _gtk_css_style_property_init_properties (void)
|
||||
"Border width at right",
|
||||
0, G_MAXINT, 0, 0));
|
||||
|
||||
g_value_init (&value, GTK_TYPE_CSS_BORDER_CORNER_RADIUS);
|
||||
g_value_set_boxed (&value, &no_corner_radius);
|
||||
_gtk_style_property_register (g_param_spec_boxed ("border-top-left-radius",
|
||||
gtk_style_property_register (g_param_spec_boxed ("border-top-left-radius",
|
||||
"Border top left radius",
|
||||
"Border radius of top left corner, in pixels",
|
||||
GTK_TYPE_CSS_BORDER_CORNER_RADIUS, 0),
|
||||
0,
|
||||
border_corner_radius_value_parse,
|
||||
border_corner_radius_value_print,
|
||||
&value);
|
||||
_gtk_style_property_register (g_param_spec_boxed ("border-top-right-radius",
|
||||
&no_corner_radius);
|
||||
gtk_style_property_register (g_param_spec_boxed ("border-top-right-radius",
|
||||
"Border top right radius",
|
||||
"Border radius of top right corner, in pixels",
|
||||
GTK_TYPE_CSS_BORDER_CORNER_RADIUS, 0),
|
||||
0,
|
||||
border_corner_radius_value_parse,
|
||||
border_corner_radius_value_print,
|
||||
&value);
|
||||
_gtk_style_property_register (g_param_spec_boxed ("border-bottom-right-radius",
|
||||
&no_corner_radius);
|
||||
gtk_style_property_register (g_param_spec_boxed ("border-bottom-right-radius",
|
||||
"Border bottom right radius",
|
||||
"Border radius of bottom right corner, in pixels",
|
||||
GTK_TYPE_CSS_BORDER_CORNER_RADIUS, 0),
|
||||
0,
|
||||
border_corner_radius_value_parse,
|
||||
border_corner_radius_value_print,
|
||||
&value);
|
||||
_gtk_style_property_register (g_param_spec_boxed ("border-bottom-left-radius",
|
||||
&no_corner_radius);
|
||||
gtk_style_property_register (g_param_spec_boxed ("border-bottom-left-radius",
|
||||
"Border bottom left radius",
|
||||
"Border radius of bottom left corner, in pixels",
|
||||
GTK_TYPE_CSS_BORDER_CORNER_RADIUS, 0),
|
||||
0,
|
||||
border_corner_radius_value_parse,
|
||||
border_corner_radius_value_print,
|
||||
&value);
|
||||
g_value_unset (&value);
|
||||
&no_corner_radius);
|
||||
|
||||
gtk_style_properties_register_property (NULL,
|
||||
g_param_spec_enum ("border-style",
|
||||
@ -611,16 +627,14 @@ _gtk_css_style_property_init_properties (void)
|
||||
"Border image slice",
|
||||
"Border image slice",
|
||||
GTK_TYPE_BORDER, 0));
|
||||
g_value_init (&value, GTK_TYPE_BORDER);
|
||||
_gtk_style_property_register (g_param_spec_boxed ("border-image-width",
|
||||
gtk_style_property_register (g_param_spec_boxed ("border-image-width",
|
||||
"Border image width",
|
||||
"Border image width",
|
||||
GTK_TYPE_BORDER, 0),
|
||||
0,
|
||||
NULL,
|
||||
NULL,
|
||||
&value);
|
||||
g_value_unset (&value);
|
||||
NULL);
|
||||
gtk_style_properties_register_property (NULL,
|
||||
g_param_spec_object ("engine",
|
||||
"Theming Engine",
|
||||
@ -633,7 +647,7 @@ _gtk_css_style_property_init_properties (void)
|
||||
GTK_TYPE_ANIMATION_DESCRIPTION, 0));
|
||||
|
||||
/* Private property holding the binding sets */
|
||||
_gtk_style_property_register (g_param_spec_boxed ("gtk-key-bindings",
|
||||
gtk_style_property_register (g_param_spec_boxed ("gtk-key-bindings",
|
||||
"Key bindings",
|
||||
"Key bindings",
|
||||
G_TYPE_PTR_ARRAY, 0),
|
||||
|
Loading…
Reference in New Issue
Block a user