GFXprim
2D bitmap graphics library with emphasis on speed and correctness
Loading...
Searching...
No Matches
gp_widgets_color_scheme.h
1//SPDX-License-Identifier: LGPL-2.0-or-later
2
3/*
4
5 Copyright (c) 2014-2022 Cyril Hrubis <metan@ucw.cz>
6
7 */
8
9#ifndef GP_WIDGETS_COLOR_SCHEME_H
10#define GP_WIDGETS_COLOR_SCHEME_H
11
12#include <widgets/gp_widget_types.h>
13
14/*
15 * Decides if the pixmaps generated by application should have dark or light
16 * background. There is also default light and dark scheme compiled in the
17 * library.
18 */
19enum gp_widgets_color_scheme {
20 GP_WIDGET_COLOR_SCHEME_DEFAULT,
21 GP_WIDGET_COLOR_SCHEME_LIGHT,
22 GP_WIDGET_COLOR_SCHEME_DARK,
23};
24
25enum gp_widgets_color {
26 /* theme colors */
27 GP_WIDGETS_COL_TEXT,
28 GP_WIDGETS_COL_FG,
29 GP_WIDGETS_COL_BG,
30 GP_WIDGETS_COL_HIGHLIGHT,
31 GP_WIDGETS_COL_SELECT,
32 GP_WIDGETS_COL_ALERT,
33 GP_WIDGETS_COL_WARN,
34 GP_WIDGETS_COL_ACCEPT,
35 GP_WIDGETS_COL_FILL,
36 GP_WIDGETS_COL_DISABLED,
37 GP_WIDGETS_THEME_COLORS,
38
39 /* 16 colors */
40 GP_WIDGETS_COL_BLACK = GP_WIDGETS_THEME_COLORS,
41 GP_WIDGETS_COL_RED,
42 GP_WIDGETS_COL_GREEN,
43 GP_WIDGETS_COL_YELLOW,
44 GP_WIDGETS_COL_BLUE,
45 GP_WIDGETS_COL_MAGENTA,
46 GP_WIDGETS_COL_CYAN,
47 GP_WIDGETS_COL_GRAY,
48 GP_WIDGETS_COL_BR_BLACK,
49 GP_WIDGETS_COL_BR_RED,
50 GP_WIDGETS_COL_BR_GREEN,
51 GP_WIDGETS_COL_BR_YELLOW,
52 GP_WIDGETS_COL_BR_BLUE,
53 GP_WIDGETS_COL_BR_MAGENTA,
54 GP_WIDGETS_COL_BR_CYAN,
55 GP_WIDGETS_COL_WHITE,
56 GP_WIDGETS_COL_CNT,
57};
58
81enum gp_widgets_color gp_widgets_color_name_idx(const char *name);
82
89gp_pixel gp_widgets_color(const gp_widget_render_ctx *ctx, enum gp_widgets_color color);
90
91/*
92 * Toggles current color scheme, reloads colors, redraws application.
93 */
94void gp_widgets_color_scheme_toggle(void);
95
96/*
97 * Sets current color scheme, reloads colors, redraws application.
98 */
99void gp_widgets_color_scheme_set(enum gp_widgets_color_scheme color_scheme);
100
101/*
102 * Returns current color scheme.
103 */
104enum gp_widgets_color_scheme gp_widgets_color_scheme_get(void);
105
106/*
107 * Creates a new color scheme switch widget.
108 */
109gp_widget *gp_widget_color_scheme_switch(void);
110
111#endif /* GP_WIDGETS_COLOR_SCHEME_H */
uint32_t gp_pixel
Pixel integer value.
Definition gp_types.h:33