css: Move a bunch of functions

... from GtkStyleProperty to GtkCssStyleProperty.
This commit is contained in:
Benjamin Otte 2011-12-31 19:45:17 +01:00
parent 0a3ac5efbc
commit 544d210a61
8 changed files with 75 additions and 85 deletions

View File

@ -23,7 +23,7 @@
#include "gtkcsstypesprivate.h" #include "gtkcsstypesprivate.h"
#include "gtkprivatetypebuiltins.h" #include "gtkprivatetypebuiltins.h"
#include "gtkstylepropertyprivate.h" #include "gtkcssstylepropertyprivate.h"
#include "gtkstylepropertiesprivate.h" #include "gtkstylepropertiesprivate.h"
struct _GtkCssLookup { struct _GtkCssLookup {
@ -35,7 +35,7 @@ GtkCssLookup *
_gtk_css_lookup_new (void) _gtk_css_lookup_new (void)
{ {
GtkCssLookup *lookup; GtkCssLookup *lookup;
guint n = _gtk_style_property_get_count (); guint n = _gtk_css_style_property_get_n_properties ();
lookup = g_malloc0 (sizeof (GtkCssLookup) + sizeof (const GValue *) * n); lookup = g_malloc0 (sizeof (GtkCssLookup) + sizeof (const GValue *) * n);
lookup->missing = _gtk_bitmask_new (); lookup->missing = _gtk_bitmask_new ();
@ -117,12 +117,12 @@ _gtk_css_lookup_resolve (GtkCssLookup *lookup,
g_return_val_if_fail (lookup != NULL, NULL); g_return_val_if_fail (lookup != NULL, NULL);
g_return_val_if_fail (parent == NULL || GTK_IS_STYLE_CONTEXT (parent), NULL); g_return_val_if_fail (parent == NULL || GTK_IS_STYLE_CONTEXT (parent), NULL);
n = _gtk_style_property_get_count (); n = _gtk_css_style_property_get_n_properties ();
props = gtk_style_properties_new (); props = gtk_style_properties_new ();
for (i = 0; i < n; i++) for (i = 0; i < n; i++)
{ {
GtkStyleProperty *prop = _gtk_style_property_get (i); GtkCssStyleProperty *prop = _gtk_css_style_property_lookup_by_id (i);
const GValue *result; const GValue *result;
/* http://www.w3.org/TR/css3-cascade/#cascade /* http://www.w3.org/TR/css3-cascade/#cascade
@ -155,7 +155,7 @@ _gtk_css_lookup_resolve (GtkCssLookup *lookup,
/* if the value of the winning declaration is initial, /* if the value of the winning declaration is initial,
* the initial value (see below) becomes the specified value. * the initial value (see below) becomes the specified value.
*/ */
result = _gtk_style_property_get_initial_value (prop); result = _gtk_css_style_property_get_initial_value (prop);
break; break;
default: default:
/* This is part of (2) above */ /* This is part of (2) above */
@ -166,7 +166,7 @@ _gtk_css_lookup_resolve (GtkCssLookup *lookup,
} }
else else
{ {
if (_gtk_style_property_is_inherit (prop)) if (_gtk_css_style_property_is_inherit (prop))
{ {
/* 4) if the property is inherited, the inherited value becomes /* 4) if the property is inherited, the inherited value becomes
* the specified value. * the specified value.
@ -177,7 +177,7 @@ _gtk_css_lookup_resolve (GtkCssLookup *lookup,
{ {
/* 5) Otherwise, the initial value becomes the specified value. /* 5) Otherwise, the initial value becomes the specified value.
*/ */
result = _gtk_style_property_get_initial_value (prop); result = _gtk_css_style_property_get_initial_value (prop);
} }
} }
@ -195,14 +195,14 @@ _gtk_css_lookup_resolve (GtkCssLookup *lookup,
_gtk_style_properties_set_property_by_property (props, _gtk_style_properties_set_property_by_property (props,
prop, prop,
0, 0,
_gtk_style_property_get_initial_value (prop)); _gtk_css_style_property_get_initial_value (prop));
} }
else else
{ {
GValue value = { 0, }; GValue value = { 0, };
/* Set NULL here and do the inheritance upon lookup? */ /* Set NULL here and do the inheritance upon lookup? */
gtk_style_context_get_property (parent, gtk_style_context_get_property (parent,
_gtk_style_property_get_name (prop), _gtk_style_property_get_name (GTK_STYLE_PROPERTY (prop)),
gtk_style_context_get_state (parent), gtk_style_context_get_state (parent),
&value); &value);
_gtk_style_properties_set_property_by_property (props, _gtk_style_properties_set_property_by_property (props,

View File

@ -1211,9 +1211,17 @@ gtk_css_ruleset_add (GtkCssRuleset *ruleset,
property_value_free (value); property_value_free (value);
return; return;
} }
else if (GTK_IS_CSS_STYLE_PROPERTY (prop))
_gtk_bitmask_set (ruleset->set_styles, _gtk_style_property_get_id (prop), TRUE); {
g_hash_table_insert (ruleset->style, (gpointer) prop, value); _gtk_bitmask_set (ruleset->set_styles,
_gtk_css_style_property_get_id (GTK_CSS_STYLE_PROPERTY (prop)),
TRUE);
g_hash_table_insert (ruleset->style, prop, value);
}
else
{
g_assert_not_reached ();
}
} }
static gboolean static gboolean
@ -1422,7 +1430,7 @@ gtk_css_provider_get_style (GtkStyleProvider *provider,
while (g_hash_table_iter_next (&iter, &key, &val)) while (g_hash_table_iter_next (&iter, &key, &val))
{ {
GtkStyleProperty *prop = key; GtkCssStyleProperty *prop = key;
PropertyValue *value = val; PropertyValue *value = val;
_gtk_style_properties_set_property_by_property (props, _gtk_style_properties_set_property_by_property (props,
@ -1545,13 +1553,14 @@ gtk_css_style_provider_lookup (GtkStyleProviderPrivate *provider,
while (g_hash_table_iter_next (&iter, &key, &val)) while (g_hash_table_iter_next (&iter, &key, &val))
{ {
GtkStyleProperty *prop = key; GtkCssStyleProperty *prop = key;
PropertyValue *value = val; PropertyValue *value = val;
guint id = _gtk_css_style_property_get_id (prop);
if (!_gtk_css_lookup_is_missing (lookup, _gtk_style_property_get_id (prop))) if (!_gtk_css_lookup_is_missing (lookup, id))
continue; continue;
_gtk_css_lookup_set (lookup, _gtk_style_property_get_id (prop), &value->value); _gtk_css_lookup_set (lookup, id, &value->value);
} }
} }
} }

View File

@ -142,3 +142,19 @@ _gtk_css_style_property_get_id (GtkCssStyleProperty *property)
return property->id; return property->id;
} }
gboolean
_gtk_css_style_property_is_inherit (GtkCssStyleProperty *property)
{
g_return_val_if_fail (property != NULL, FALSE);
return GTK_STYLE_PROPERTY (property)->flags & GTK_STYLE_PROPERTY_INHERIT ? TRUE : FALSE;
}
const GValue *
_gtk_css_style_property_get_initial_value (GtkCssStyleProperty *property)
{
g_return_val_if_fail (property != NULL, NULL);
return &GTK_STYLE_PROPERTY (property)->initial_value;
}

View File

@ -54,7 +54,10 @@ GType _gtk_css_style_property_get_type (void) G_GNUC_CO
guint _gtk_css_style_property_get_n_properties(void); guint _gtk_css_style_property_get_n_properties(void);
GtkCssStyleProperty * _gtk_css_style_property_lookup_by_id (guint id); GtkCssStyleProperty * _gtk_css_style_property_lookup_by_id (guint id);
gboolean _gtk_css_style_property_is_inherit (GtkCssStyleProperty *property);
guint _gtk_css_style_property_get_id (GtkCssStyleProperty *property); guint _gtk_css_style_property_get_id (GtkCssStyleProperty *property);
const GValue * _gtk_css_style_property_get_initial_value
(GtkCssStyleProperty *property);
G_END_DECLS G_END_DECLS

View File

@ -327,12 +327,12 @@ gtk_style_properties_provider_lookup (GtkStyleProviderPrivate *provider,
while (g_hash_table_iter_next (&iter, &key, &value)) while (g_hash_table_iter_next (&iter, &key, &value))
{ {
GtkStyleProperty *prop = key; GtkCssStyleProperty *prop = key;
PropertyData *data = value; PropertyData *data = value;
const GValue *value; const GValue *value;
guint id; guint id;
id = _gtk_style_property_get_id (prop); id = _gtk_css_style_property_get_id (prop);
if (!_gtk_css_lookup_is_missing (lookup, id)) if (!_gtk_css_lookup_is_missing (lookup, id))
continue; continue;
@ -521,10 +521,10 @@ gtk_style_properties_lookup_color (GtkStyleProperties *props,
} }
void void
_gtk_style_properties_set_property_by_property (GtkStyleProperties *props, _gtk_style_properties_set_property_by_property (GtkStyleProperties *props,
GtkStyleProperty *style_prop, GtkCssStyleProperty *style_prop,
GtkStateFlags state, GtkStateFlags state,
const GValue *value) const GValue *value)
{ {
GtkStylePropertiesPrivate *priv; GtkStylePropertiesPrivate *priv;
PropertyData *prop; PropertyData *prop;
@ -552,8 +552,8 @@ _gtk_style_properties_set_property_by_property (GtkStyleProperties *props,
} }
g_value_copy (value, val); g_value_copy (value, val);
if (_gtk_style_property_get_value_type (style_prop) == G_VALUE_TYPE (value)) if (_gtk_style_property_get_value_type (GTK_STYLE_PROPERTY (style_prop)) == G_VALUE_TYPE (value))
g_param_value_validate (style_prop->pspec, val); g_param_value_validate (GTK_STYLE_PROPERTY (style_prop)->pspec, val);
} }
/** /**
@ -680,9 +680,9 @@ gtk_style_properties_set (GtkStyleProperties *props,
} }
const GValue * const GValue *
_gtk_style_properties_peek_property (GtkStyleProperties *props, _gtk_style_properties_peek_property (GtkStyleProperties *props,
GtkStyleProperty *property, GtkCssStyleProperty *property,
GtkStateFlags state) GtkStateFlags state)
{ {
GtkStylePropertiesPrivate *priv; GtkStylePropertiesPrivate *priv;
PropertyData *prop; PropertyData *prop;

View File

@ -21,7 +21,7 @@
#define __GTK_STYLE_PROPERTIES_PRIVATE_H__ #define __GTK_STYLE_PROPERTIES_PRIVATE_H__
#include "gtkstyleproperties.h" #include "gtkstyleproperties.h"
#include "gtkstylepropertyprivate.h" #include "gtkcssstylepropertyprivate.h"
#include "gtkstylecontextprivate.h" #include "gtkstylecontextprivate.h"
#include "gtksymboliccolorprivate.h" #include "gtksymboliccolorprivate.h"
@ -40,10 +40,10 @@ void _gtk_style_properties_get_valist (GtkStylePropertie
va_list args); va_list args);
const GValue * _gtk_style_properties_peek_property (GtkStyleProperties *props, const GValue * _gtk_style_properties_peek_property (GtkStyleProperties *props,
GtkStyleProperty *property, GtkCssStyleProperty *property,
GtkStateFlags state); GtkStateFlags state);
void _gtk_style_properties_set_property_by_property (GtkStyleProperties *props, void _gtk_style_properties_set_property_by_property (GtkStyleProperties *props,
GtkStyleProperty *property, GtkCssStyleProperty *property,
GtkStateFlags state, GtkStateFlags state,
const GValue *value); const GValue *value);

View File

@ -1612,18 +1612,6 @@ transparent_color_value_parse (GtkCssParser *parser,
/*** API ***/ /*** API ***/
guint
_gtk_style_property_get_count (void)
{
return _gtk_css_style_property_get_n_properties ();
}
GtkStyleProperty *
_gtk_style_property_get (guint id)
{
return GTK_STYLE_PROPERTY (_gtk_css_style_property_lookup_by_id (id));
}
static void static void
css_string_funcs_init (void) css_string_funcs_init (void)
{ {
@ -1816,25 +1804,6 @@ _gtk_style_property_default_value (GtkStyleProperty *property,
g_value_copy (&property->initial_value, value); g_value_copy (&property->initial_value, value);
} }
gboolean
_gtk_style_property_is_inherit (GtkStyleProperty *property)
{
g_return_val_if_fail (property != NULL, FALSE);
return property->flags & GTK_STYLE_PROPERTY_INHERIT ? TRUE : FALSE;
}
guint
_gtk_style_property_get_id (GtkStyleProperty *property)
{
g_return_val_if_fail (property != NULL, FALSE);
if (GTK_IS_CSS_STYLE_PROPERTY (property))
return _gtk_css_style_property_get_id (GTK_CSS_STYLE_PROPERTY (property));
else
return 0;
}
static gboolean static gboolean
resolve_color (GtkStyleProperties *props, resolve_color (GtkStyleProperties *props,
GValue *value) GValue *value)
@ -2009,14 +1978,6 @@ _gtk_style_property_resolve (GtkStyleProperty *property,
g_value_copy (val, val_out); g_value_copy (val, val_out);
} }
const GValue *
_gtk_style_property_get_initial_value (GtkStyleProperty *property)
{
g_return_val_if_fail (property != NULL, NULL);
return &property->initial_value;
}
GParameter * GParameter *
_gtk_style_property_unpack (GtkStyleProperty *property, _gtk_style_property_unpack (GtkStyleProperty *property,
const GValue *value, const GValue *value,
@ -2076,7 +2037,7 @@ _gtk_style_property_assign (GtkStyleProperty *property,
else if (GTK_IS_CSS_STYLE_PROPERTY (property)) else if (GTK_IS_CSS_STYLE_PROPERTY (property))
{ {
_gtk_style_properties_set_property_by_property (props, _gtk_style_properties_set_property_by_property (props,
property, GTK_CSS_STYLE_PROPERTY (property),
state, state,
value); value);
} }
@ -2093,22 +2054,32 @@ _gtk_style_property_query (GtkStyleProperty *property,
GtkStylePropertyContext *context, GtkStylePropertyContext *context,
GValue *value) GValue *value)
{ {
const GValue *val;
g_return_if_fail (property != NULL); g_return_if_fail (property != NULL);
g_return_if_fail (GTK_IS_STYLE_PROPERTIES (props)); g_return_if_fail (GTK_IS_STYLE_PROPERTIES (props));
g_return_if_fail (context != NULL); g_return_if_fail (context != NULL);
g_return_if_fail (value != NULL); g_return_if_fail (value != NULL);
val = _gtk_style_properties_peek_property (props, property, state);
g_value_init (value, property->pspec->value_type); g_value_init (value, property->pspec->value_type);
if (val) if (GTK_IS_CSS_STYLE_PROPERTY (property))
_gtk_style_property_resolve (property, props, state, context, (GValue *) val, value); {
const GValue *val;
val = _gtk_style_properties_peek_property (props, GTK_CSS_STYLE_PROPERTY (property), state);
if (val)
_gtk_style_property_resolve (property, props, state, context, (GValue *) val, value);
else
_gtk_style_property_default_value (property, props, state, value);
}
else if (GTK_IS_CSS_SHORTHAND_PROPERTY (property)) else if (GTK_IS_CSS_SHORTHAND_PROPERTY (property))
_gtk_style_property_pack (property, props, state, context, value); {
_gtk_style_property_pack (property, props, state, context, value);
}
else else
_gtk_style_property_default_value (property, props, state, value); {
g_assert_not_reached ();
}
} }
#define rgba_init(rgba, r, g, b, a) G_STMT_START{ \ #define rgba_init(rgba, r, g, b, a) G_STMT_START{ \

View File

@ -81,9 +81,6 @@ struct _GtkStylePropertyClass
GType _gtk_style_property_get_type (void) G_GNUC_CONST; GType _gtk_style_property_get_type (void) G_GNUC_CONST;
guint _gtk_style_property_get_count (void);
GtkStyleProperty * _gtk_style_property_get (guint id);
GtkStyleProperty * _gtk_style_property_lookup (const char *name); GtkStyleProperty * _gtk_style_property_lookup (const char *name);
const char * _gtk_style_property_get_name (GtkStyleProperty *property); const char * _gtk_style_property_get_name (GtkStyleProperty *property);
@ -95,12 +92,6 @@ void _gtk_style_property_register (GParamSpec
GtkStylePrintFunc print_func, GtkStylePrintFunc print_func,
const GValue *initial_value); const GValue *initial_value);
gboolean _gtk_style_property_is_inherit (GtkStyleProperty * property);
guint _gtk_style_property_get_id (GtkStyleProperty * property);
const GValue * _gtk_style_property_get_initial_value
(GtkStyleProperty * property);
GParameter * _gtk_style_property_unpack (GtkStyleProperty * property, GParameter * _gtk_style_property_unpack (GtkStyleProperty * property,
const GValue *value, const GValue *value,
guint *n_params); guint *n_params);