#include "config.h"
+#include "gtkprivate.h"
#include "gtkcsscomputedvaluesprivate.h"
#include "gtkcssanimationprivate.h"
GtkCssDependencies dependencies;
GtkCssValue *value;
- g_return_if_fail (GTK_IS_CSS_COMPUTED_VALUES (values));
- g_return_if_fail (GTK_IS_STYLE_PROVIDER_PRIVATE (provider));
- g_return_if_fail (parent_values == NULL || GTK_IS_CSS_COMPUTED_VALUES (parent_values));
+ gtk_internal_return_if_fail (GTK_IS_CSS_COMPUTED_VALUES (values));
+ gtk_internal_return_if_fail (GTK_IS_STYLE_PROVIDER_PRIVATE (provider));
+ gtk_internal_return_if_fail (parent_values == NULL || GTK_IS_CSS_COMPUTED_VALUES (parent_values));
/* http://www.w3.org/TR/css3-cascade/#cascade
* Then, for every element, the value for each property can be found
guint id,
GtkCssValue *value)
{
- g_return_if_fail (GTK_IS_CSS_COMPUTED_VALUES (values));
- g_return_if_fail (value != NULL);
+ gtk_internal_return_if_fail (GTK_IS_CSS_COMPUTED_VALUES (values));
+ gtk_internal_return_if_fail (value != NULL);
if (values->animated_values == NULL)
values->animated_values = g_ptr_array_new_with_free_func ((GDestroyNotify)_gtk_css_value_unref);
GtkCssDependencies dependencies,
GtkCssSection *section)
{
- g_return_if_fail (GTK_IS_CSS_COMPUTED_VALUES (values));
+ gtk_internal_return_if_fail (GTK_IS_CSS_COMPUTED_VALUES (values));
if (values->values == NULL)
- values->values = g_ptr_array_new_with_free_func ((GDestroyNotify)_gtk_css_value_unref);
+ values->values = g_ptr_array_new_full (_gtk_css_style_property_get_n_properties (),
+ (GDestroyNotify)_gtk_css_value_unref);
if (id >= values->values->len)
g_ptr_array_set_size (values->values, id + 1);
_gtk_css_computed_values_get_value (GtkCssComputedValues *values,
guint id)
{
- g_return_val_if_fail (GTK_IS_CSS_COMPUTED_VALUES (values), NULL);
+ gtk_internal_return_val_if_fail (GTK_IS_CSS_COMPUTED_VALUES (values), NULL);
if (values->animated_values &&
id < values->animated_values->len &&
_gtk_css_computed_values_get_intrinsic_value (GtkCssComputedValues *values,
guint id)
{
- g_return_val_if_fail (GTK_IS_CSS_COMPUTED_VALUES (values), NULL);
+ gtk_internal_return_val_if_fail (GTK_IS_CSS_COMPUTED_VALUES (values), NULL);
if (values->values == NULL ||
id >= values->values->len)
_gtk_css_computed_values_get_section (GtkCssComputedValues *values,
guint id)
{
- g_return_val_if_fail (GTK_IS_CSS_COMPUTED_VALUES (values), NULL);
+ gtk_internal_return_val_if_fail (GTK_IS_CSS_COMPUTED_VALUES (values), NULL);
if (values->sections == NULL ||
id >= values->sections->len)
GSList *list;
guint i;
- g_return_val_if_fail (GTK_IS_CSS_COMPUTED_VALUES (values), NULL);
- g_return_val_if_fail (timestamp >= values->current_time, NULL);
+ gtk_internal_return_val_if_fail (GTK_IS_CSS_COMPUTED_VALUES (values), NULL);
+ gtk_internal_return_val_if_fail (timestamp >= values->current_time, NULL);
values->current_time = timestamp;
old_computed_values = values->animated_values;
{
GSList *list;
- g_return_val_if_fail (GTK_IS_CSS_COMPUTED_VALUES (values), TRUE);
+ gtk_internal_return_val_if_fail (GTK_IS_CSS_COMPUTED_VALUES (values), TRUE);
for (list = values->animations; list; list = list->next)
{
void
_gtk_css_computed_values_cancel_animations (GtkCssComputedValues *values)
{
- g_return_if_fail (GTK_IS_CSS_COMPUTED_VALUES (values));
+ gtk_internal_return_if_fail (GTK_IS_CSS_COMPUTED_VALUES (values));
if (values->animated_values)
{
values->animations = NULL;
}
+GtkBitmask *
+_gtk_css_computed_values_compute_dependencies (GtkCssComputedValues *values,
+ const GtkBitmask *parent_changes)
+{
+ GtkBitmask *changes;
+
+ gtk_internal_return_val_if_fail (GTK_IS_CSS_COMPUTED_VALUES (values), _gtk_bitmask_new ());
+
+ changes = _gtk_bitmask_copy (parent_changes);
+ changes = _gtk_bitmask_intersect (changes, values->depends_on_parent);
+ if (_gtk_bitmask_get (changes, GTK_CSS_PROPERTY_COLOR))
+ changes = _gtk_bitmask_union (changes, values->depends_on_color);
+ if (_gtk_bitmask_get (changes, GTK_CSS_PROPERTY_FONT_SIZE))
+ changes = _gtk_bitmask_union (changes, values->depends_on_font_size);
+
+ return changes;
+}
+