File: pps-colors.c

package info (click to toggle)
papers 49.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 21,044 kB
  • sloc: ansic: 37,728; sh: 197; xml: 127; makefile: 113
file content (41 lines) | stat: -rw-r--r-- 1,089 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// SPDX-License-Identifier: GPL-3.0-or-later
/* pps-colors.c
 *
 * Copyright (C) 2025 Markus Göllnitz <camelcasenick@bewares.it>
 */

#include "pps-colors.h"

#include <adwaita.h>

void
get_accent_color (GdkRGBA *background_color, GdkRGBA *foreground_color)
{
	if (background_color) {
		AdwStyleManager *style_manager = adw_style_manager_get_default ();
		AdwAccentColor accent = adw_style_manager_get_accent_color (style_manager);
		adw_accent_color_to_rgba (accent, background_color);
	}

	if (foreground_color) {
		foreground_color->red = 1.0;
		foreground_color->green = 1.0;
		foreground_color->blue = 1.0;
	}
}

#ifdef HAVE_TRANSPARENT_SELECTION
void
get_selection_color (GtkWidget *widget, GdkRGBA *color)
{
	if (gtk_widget_get_state_flags (widget) & GTK_STATE_FLAG_FOCUS_WITHIN) {
		AdwStyleManager *style_manager = adw_style_manager_get_default ();
		AdwAccentColor accent = adw_style_manager_get_accent_color (style_manager);
		adw_accent_color_to_rgba (accent, color);
		color->alpha *= 0.3;
	} else {
		gtk_widget_get_color (widget, color);
		color->alpha *= 0.1;
	}
}
#endif