#include "gtkhslaprivate.h"
#include "gtkstylepropertyprivate.h"
#include "gtkstyleproperties.h"
-#include "gtksymboliccolorprivate.h"
#include "gtkwin32themeprivate.h"
typedef enum {
GtkCssDependencies unused;
GtkCssValue *value;
- g_return_val_if_fail (color != NULL, FALSE);
- g_return_val_if_fail (provider == NULL || GTK_IS_STYLE_PROVIDER_PRIVATE (provider), FALSE);
- g_return_val_if_fail (current != NULL, FALSE);
+ g_return_val_if_fail (color != NULL, NULL);
+ g_return_val_if_fail (provider == NULL || GTK_IS_STYLE_PROVIDER_PRIVATE (provider), NULL);
+ g_return_val_if_fail (current != NULL, NULL);
if (dependencies == NULL)
dependencies = &unused;
*dependencies = 0;
- value = NULL;
switch (color->type)
{
case COLOR_TYPE_LITERAL:
return _gtk_css_value_ref (color->last_value);
case COLOR_TYPE_NAME:
{
- GtkSymbolicColor *symbolic;
-
- symbolic = _gtk_style_provider_private_get_color (provider, color->sym_col.name);
+ GtkCssValue *named;
- if (!symbolic)
+ named = _gtk_style_provider_private_get_color (provider, color->sym_col.name);
+ if (named == NULL)
return NULL;
- value = _gtk_css_color_value_resolve (_gtk_symbolic_color_get_css_value (symbolic), provider, current, current_deps, dependencies);
+ value = _gtk_css_color_value_resolve (named, provider, current, current_deps, dependencies);
}
break;
*dependencies = _gtk_css_dependencies_union (*dependencies, 0);
_gtk_hsla_init_from_rgba (&hsla, _gtk_css_rgba_value_get_rgba (val));
-
- hsla.lightness *= color->sym_col.shade.factor;
- hsla.lightness = CLAMP (hsla.lightness, 0.0, 1.0);
-
- hsla.saturation *= color->sym_col.shade.factor;
- hsla.saturation = CLAMP (hsla.saturation, 0.0, 1.0);
+ _gtk_hsla_shade (&hsla, &hsla, color->sym_col.shade.factor);
_gdk_rgba_init_from_hsla (&shade, &hsla);
}
break;
default:
+ value = NULL;
g_assert_not_reached ();
}
- if (value != NULL)
+ if (color->last_value != NULL &&
+ _gtk_css_value_equal (color->last_value, value))
{
- if (color->last_value != NULL &&
- _gtk_css_value_equal (color->last_value, value))
- {
- _gtk_css_value_unref (value);
- value = _gtk_css_value_ref (color->last_value);
- }
- else
- {
- if (color->last_value != NULL)
- _gtk_css_value_unref (color->last_value);
- color->last_value = _gtk_css_value_ref (value);
- }
+ _gtk_css_value_unref (value);
+ value = _gtk_css_value_ref (color->last_value);
+ }
+ else
+ {
+ if (color->last_value != NULL)
+ _gtk_css_value_unref (color->last_value);
+ color->last_value = _gtk_css_value_ref (value);
}
- _gtk_css_rgba_value_get_rgba (value);
return value;
}