icontheme: Move css style code where it belongs

Move gtk_icon_theme_lookup_symbolic_colors to gtkcssstyle.c, and
rename it to gtk_css_style_lookup_symbolic_colors.

Update all callers.
This commit is contained in:
Matthias Clasen
2024-05-01 16:01:45 -04:00
parent 3b8218a99e
commit 8bb2720494
6 changed files with 34 additions and 33 deletions

View File

@@ -156,7 +156,7 @@ gtk_css_image_icon_theme_compute (GtkCssImage *image,
copy->icon_theme = gtk_icon_theme_get_for_display (display);
copy->serial = gtk_icon_theme_get_serial (copy->icon_theme);
copy->scale = gtk_style_provider_get_scale (provider);
gtk_icon_theme_lookup_symbolic_colors (style, copy->colors);
gtk_css_style_lookup_symbolic_colors (style, copy->colors);
return GTK_CSS_IMAGE (copy);
}

View File

@@ -29,6 +29,7 @@
#include "gtkcssinitialvalueprivate.h"
#include "gtkcssnumbervalueprivate.h"
#include "gtkcsscolorvalueprivate.h"
#include "gtkcsspalettevalueprivate.h"
#include "gtkcssshorthandpropertyprivate.h"
#include "gtkcssstringvalueprivate.h"
#include "gtkcssfontvariationsvalueprivate.h"
@@ -750,6 +751,33 @@ gtk_css_style_get_pango_font (GtkCssStyle *style)
return description;
}
void
gtk_css_style_lookup_symbolic_colors (GtkCssStyle *style,
GdkRGBA color_out[4])
{
GtkCssValue *palette, *color;
const char *names[4] = {
[GTK_SYMBOLIC_COLOR_ERROR] = "error",
[GTK_SYMBOLIC_COLOR_WARNING] = "warning",
[GTK_SYMBOLIC_COLOR_SUCCESS] = "success"
};
color = style->core->color;
palette = style->core->icon_palette;
color_out[GTK_SYMBOLIC_COLOR_FOREGROUND] = *gtk_css_color_value_get_rgba (color);
for (gsize i = 1; i < 4; i++)
{
const GdkRGBA *lookup;
lookup = gtk_css_palette_value_get_color (palette, names[i]);
if (lookup)
color_out[i] = *lookup;
else
color_out[i] = color_out[GTK_SYMBOLIC_COLOR_FOREGROUND];
}
}
/* Refcounted value structs */
static const int values_size[] = {

View File

@@ -268,6 +268,9 @@ char * gtk_css_style_compute_font_features (GtkCssStyle
PangoAttrList * gtk_css_style_get_pango_attributes (GtkCssStyle *style);
PangoFontDescription * gtk_css_style_get_pango_font (GtkCssStyle *style);
void gtk_css_style_lookup_symbolic_colors (GtkCssStyle *style,
GdkRGBA color_out[4]);
GtkCssValues *gtk_css_values_new (GtkCssValuesType type);
GtkCssValues *gtk_css_values_ref (GtkCssValues *values);
void gtk_css_values_unref (GtkCssValues *values);

View File

@@ -2533,34 +2533,6 @@ gtk_icon_theme_error_quark (void)
return g_quark_from_static_string ("gtk-icon-theme-error-quark");
}
void
gtk_icon_theme_lookup_symbolic_colors (GtkCssStyle *style,
GdkRGBA color_out[4])
{
GtkCssValue *palette, *color;
const char *names[4] = {
[GTK_SYMBOLIC_COLOR_ERROR] = "error",
[GTK_SYMBOLIC_COLOR_WARNING] = "warning",
[GTK_SYMBOLIC_COLOR_SUCCESS] = "success"
};
const GdkRGBA *lookup;
gsize i;
color = style->core->color;
palette = style->core->icon_palette;
color_out[GTK_SYMBOLIC_COLOR_FOREGROUND] = *gtk_css_color_value_get_rgba (color);
for (i = 1; i < 4; i++)
{
lookup = gtk_css_palette_value_get_color (palette, names[i]);
if (lookup)
color_out[i] = *lookup;
else
color_out[i] = color_out[GTK_SYMBOLIC_COLOR_FOREGROUND];
}
}
/**
* gtk_icon_theme_has_icon:
* @self: a `GtkIconTheme`

View File

@@ -26,8 +26,5 @@ const char *gtk_string_set_add (GtkStringSet *set,
#define IMAGE_MISSING_RESOURCE_PATH "/org/gtk/libgtk/icons/16x16/status/image-missing.png"
void gtk_icon_theme_lookup_symbolic_colors (GtkCssStyle *style,
GdkRGBA color_out[4]);
int gtk_icon_theme_get_serial (GtkIconTheme *self);

View File

@@ -21,6 +21,7 @@
#include "gtkrendericonprivate.h"
#include "gtkcsscolorvalueprivate.h"
#include "gtkcssfiltervalueprivate.h"
#include "gtkcssimagevalueprivate.h"
#include "gtkcssshadowvalueprivate.h"
@@ -116,7 +117,7 @@ gtk_css_style_snapshot_icon_paintable (GtkCssStyle *style,
is_symbolic_paintable = GTK_IS_SYMBOLIC_PAINTABLE (paintable);
if (is_symbolic_paintable)
{
gtk_icon_theme_lookup_symbolic_colors (style, colors);
gtk_css_style_lookup_symbolic_colors (style, colors);
if (gdk_rgba_is_clear (&colors[0]))
goto transparent;