mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2025-01-01 00:11:29 +00:00
styleproperty: Add a function to compare values for equality
and default to never compare them as equal.
This commit is contained in:
parent
5bbf59b519
commit
115c34498e
@ -298,12 +298,21 @@ gtk_css_style_property_real_compute_value (GtkCssStyleProperty *property,
|
|||||||
return _gtk_css_style_compute_value (context, _gtk_css_style_property_get_computed_type (property), specified);
|
return _gtk_css_style_compute_value (context, _gtk_css_style_property_get_computed_type (property), specified);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
gtk_css_style_property_real_equal (GtkCssStyleProperty *property,
|
||||||
|
GtkCssValue *value1,
|
||||||
|
GtkCssValue *value2)
|
||||||
|
{
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_gtk_css_style_property_init (GtkCssStyleProperty *property)
|
_gtk_css_style_property_init (GtkCssStyleProperty *property)
|
||||||
{
|
{
|
||||||
property->parse_value = gtk_css_style_property_real_parse_value;
|
property->parse_value = gtk_css_style_property_real_parse_value;
|
||||||
property->print_value = gtk_css_style_property_real_print_value;
|
property->print_value = gtk_css_style_property_real_print_value;
|
||||||
property->compute_value = gtk_css_style_property_real_compute_value;
|
property->compute_value = gtk_css_style_property_real_compute_value;
|
||||||
|
property->equal_func = gtk_css_style_property_real_equal;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -538,3 +547,25 @@ _gtk_css_style_property_print_value (GtkCssStyleProperty *property,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* _gtk_css_style_property_is_equal:
|
||||||
|
* @property: the property
|
||||||
|
* @value1: the first value to compare
|
||||||
|
* @value2: the second value to compare
|
||||||
|
*
|
||||||
|
* Compares @value1 and @value2 for equality. Both values must be the
|
||||||
|
* result of a call _gtk_css_style_property_compute_value().
|
||||||
|
*
|
||||||
|
* Returns: %TRUE if @value1 and @value2 are equal
|
||||||
|
**/
|
||||||
|
gboolean
|
||||||
|
_gtk_css_style_property_is_equal (GtkCssStyleProperty *property,
|
||||||
|
GtkCssValue *value1,
|
||||||
|
GtkCssValue *value2)
|
||||||
|
{
|
||||||
|
g_return_val_if_fail (GTK_IS_CSS_STYLE_PROPERTY (property), FALSE);
|
||||||
|
g_return_val_if_fail (value1 != NULL, FALSE);
|
||||||
|
g_return_val_if_fail (value2 != NULL, FALSE);
|
||||||
|
|
||||||
|
return property->equal_func (property, value1, value2);
|
||||||
|
}
|
||||||
|
@ -44,6 +44,9 @@ typedef void (* GtkCssStylePropertyPrintFunc) (GtkCssStyleProperty
|
|||||||
typedef GtkCssValue * (* GtkCssStylePropertyComputeFunc)(GtkCssStyleProperty *property,
|
typedef GtkCssValue * (* GtkCssStylePropertyComputeFunc)(GtkCssStyleProperty *property,
|
||||||
GtkStyleContext *context,
|
GtkStyleContext *context,
|
||||||
GtkCssValue *specified);
|
GtkCssValue *specified);
|
||||||
|
typedef gboolean (* GtkCssStylePropertyEqualFunc) (GtkCssStyleProperty *property,
|
||||||
|
GtkCssValue *value1,
|
||||||
|
GtkCssValue *value2);
|
||||||
struct _GtkCssStyleProperty
|
struct _GtkCssStyleProperty
|
||||||
{
|
{
|
||||||
GtkStyleProperty parent;
|
GtkStyleProperty parent;
|
||||||
@ -56,6 +59,7 @@ struct _GtkCssStyleProperty
|
|||||||
GtkCssStylePropertyParseFunc parse_value;
|
GtkCssStylePropertyParseFunc parse_value;
|
||||||
GtkCssStylePropertyPrintFunc print_value;
|
GtkCssStylePropertyPrintFunc print_value;
|
||||||
GtkCssStylePropertyComputeFunc compute_value;
|
GtkCssStylePropertyComputeFunc compute_value;
|
||||||
|
GtkCssStylePropertyEqualFunc equal_func;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _GtkCssStylePropertyClass
|
struct _GtkCssStylePropertyClass
|
||||||
@ -88,6 +92,9 @@ GtkCssValue * _gtk_css_style_property_compute_value (GtkCssStyleProp
|
|||||||
void _gtk_css_style_property_print_value (GtkCssStyleProperty *property,
|
void _gtk_css_style_property_print_value (GtkCssStyleProperty *property,
|
||||||
GtkCssValue *value,
|
GtkCssValue *value,
|
||||||
GString *string);
|
GString *string);
|
||||||
|
gboolean _gtk_css_style_property_is_equal (GtkCssStyleProperty *property,
|
||||||
|
GtkCssValue *value1,
|
||||||
|
GtkCssValue *value2);
|
||||||
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
Loading…
Reference in New Issue
Block a user