mirror of
https://github.com/ZoiteChat/zoitechat.git
synced 2026-03-10 07:50:19 +00:00
refactor: unify tree/xtext/input colors via ThemeWidgetStyleValues (canonical widget-style path)
This commit is contained in:
@@ -138,20 +138,11 @@ cv_tree_init (chanview *cv)
|
||||
gtk_widget_set_hexpand (view, TRUE);
|
||||
gtk_widget_set_vexpand (view, TRUE);
|
||||
gtk_widget_set_name (view, "zoitechat-tree");
|
||||
if (
|
||||
cv->font_desc
|
||||
)
|
||||
{
|
||||
GdkRGBA bg;
|
||||
GdkRGBA fg;
|
||||
const GdkRGBA *bg_color = NULL;
|
||||
const GdkRGBA *fg_color = NULL;
|
||||
ThemeWidgetStyleValues style_values;
|
||||
|
||||
if (theme_get_color (THEME_TOKEN_TEXT_BACKGROUND, &bg))
|
||||
bg_color = &bg;
|
||||
if (theme_get_color (THEME_TOKEN_TEXT_FOREGROUND, &fg))
|
||||
fg_color = &fg;
|
||||
gtkutil_apply_palette (view, bg_color, fg_color,
|
||||
theme_get_widget_style_values_for_widget (view, &style_values);
|
||||
gtkutil_apply_palette (view, &style_values.background, &style_values.foreground,
|
||||
cv->font_desc);
|
||||
}
|
||||
/*gtk_widget_modify_base (view, GTK_STATE_NORMAL, &colors[THEME_LEGACY_TEXT_BACKGROUND]);*/
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
#include "gtkutil.h"
|
||||
#include "chanview.h"
|
||||
#include "theme/theme-manager.h"
|
||||
#include "theme/theme-access.h"
|
||||
|
||||
/* treeStore columns */
|
||||
#define COL_NAME 0 /* (char *) */
|
||||
|
||||
@@ -4,6 +4,13 @@
|
||||
#include "theme-gtk3.h"
|
||||
|
||||
|
||||
|
||||
enum
|
||||
{
|
||||
THEME_XTEXT_FG_INDEX = 34,
|
||||
THEME_XTEXT_BG_INDEX = 35
|
||||
};
|
||||
|
||||
static gboolean
|
||||
theme_token_to_rgb16 (ThemeSemanticToken token, guint16 *red, guint16 *green, guint16 *blue)
|
||||
{
|
||||
@@ -115,12 +122,25 @@ theme_get_xtext_colors (XTextColor *palette, size_t palette_len)
|
||||
void
|
||||
theme_get_xtext_colors_for_widget (GtkWidget *widget, XTextColor *palette, size_t palette_len)
|
||||
{
|
||||
ThemeGtkPaletteMap gtk_map = { 0 };
|
||||
ThemeWidgetStyleValues style_values;
|
||||
|
||||
if (theme_access_get_gtk_palette_map (widget, >k_map))
|
||||
{
|
||||
theme_runtime_get_xtext_colors_mapped (>k_map, palette, palette_len);
|
||||
if (!palette)
|
||||
return;
|
||||
}
|
||||
|
||||
theme_get_widget_style_values_for_widget (widget, &style_values);
|
||||
theme_runtime_get_xtext_colors (palette, palette_len);
|
||||
if (palette_len > THEME_XTEXT_FG_INDEX)
|
||||
{
|
||||
palette[THEME_XTEXT_FG_INDEX].red = style_values.foreground.red;
|
||||
palette[THEME_XTEXT_FG_INDEX].green = style_values.foreground.green;
|
||||
palette[THEME_XTEXT_FG_INDEX].blue = style_values.foreground.blue;
|
||||
palette[THEME_XTEXT_FG_INDEX].alpha = style_values.foreground.alpha;
|
||||
}
|
||||
if (palette_len > THEME_XTEXT_BG_INDEX)
|
||||
{
|
||||
palette[THEME_XTEXT_BG_INDEX].red = style_values.background.red;
|
||||
palette[THEME_XTEXT_BG_INDEX].green = style_values.background.green;
|
||||
palette[THEME_XTEXT_BG_INDEX].blue = style_values.background.blue;
|
||||
palette[THEME_XTEXT_BG_INDEX].alpha = style_values.background.alpha;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
#include "theme-runtime.h"
|
||||
#include "theme-gtk3.h"
|
||||
#include "theme-access.h"
|
||||
#include "../gtkutil.h"
|
||||
#include <string.h>
|
||||
|
||||
@@ -169,18 +170,14 @@ theme_css_reload_input_style (gboolean enabled, const PangoFontDescription *font
|
||||
|
||||
next.theme_name = g_strdup (theme_name);
|
||||
{
|
||||
GdkRGBA color;
|
||||
ThemeWidgetStyleValues style_values;
|
||||
|
||||
if (theme_runtime_get_color (THEME_TOKEN_TEXT_FOREGROUND, &color))
|
||||
{
|
||||
theme_palette_color_get_rgb16 (&color, &next.fg_red, &next.fg_green, &next.fg_blue);
|
||||
next.colors_set = TRUE;
|
||||
}
|
||||
if (theme_runtime_get_color (THEME_TOKEN_TEXT_BACKGROUND, &color))
|
||||
{
|
||||
theme_palette_color_get_rgb16 (&color, &next.bg_red, &next.bg_green, &next.bg_blue);
|
||||
next.colors_set = TRUE;
|
||||
}
|
||||
theme_get_widget_style_values_for_widget (NULL, &style_values);
|
||||
theme_palette_color_get_rgb16 (&style_values.foreground,
|
||||
&next.fg_red, &next.fg_green, &next.fg_blue);
|
||||
theme_palette_color_get_rgb16 (&style_values.background,
|
||||
&next.bg_red, &next.bg_green, &next.bg_blue);
|
||||
next.colors_set = TRUE;
|
||||
}
|
||||
|
||||
if (theme_css_input_fingerprint_matches (&next))
|
||||
|
||||
Reference in New Issue
Block a user