labwc/include/theme/theme.h

61 lines
1.7 KiB
C
Raw Normal View History

2020-06-29 19:27:59 +01:00
/*
* Theme engine for labwc - trying to be consistent with openbox
*
* Copyright Johan Malm 2020
*/
2020-08-03 20:56:38 +01:00
#ifndef __LABWC_THEME_H
#define __LABWC_THEME_H
2020-06-11 21:20:43 +01:00
#include <stdio.h>
2020-06-29 19:27:59 +01:00
#include <wlr/render/wlr_renderer.h>
2020-06-11 21:20:43 +01:00
struct theme {
float window_active_title_bg_color[4];
float window_active_handle_bg_color[4];
2020-08-21 20:35:06 +01:00
float window_inactive_title_bg_color[4];
2020-08-21 20:35:06 +01:00
float window_active_button_unpressed_image_color[4];
2020-08-21 20:35:06 +01:00
float window_inactive_button_unpressed_image_color[4];
2021-02-16 20:43:20 +00:00
float menu_items_bg_color[4];
float menu_items_text_color[4];
float menu_items_active_bg_color[4];
float menu_items_active_text_color[4];
2020-08-21 20:35:06 +01:00
struct wlr_texture *xbm_close_active_unpressed;
struct wlr_texture *xbm_maximize_active_unpressed;
struct wlr_texture *xbm_iconify_active_unpressed;
struct wlr_texture *xbm_close_inactive_unpressed;
struct wlr_texture *xbm_maximize_inactive_unpressed;
struct wlr_texture *xbm_iconify_inactive_unpressed;
2020-06-11 21:20:43 +01:00
};
/**
* parse_hexstr - parse #rrggbb
* @hex: hex string to be parsed
* @rgba: pointer to float[4] for return value
*/
void parse_hexstr(const char *hex, float *rgba);
2020-08-07 20:21:14 +01:00
/**
2021-02-21 21:54:40 +00:00
* theme_init - read openbox theme and generate button textures
* @theme: global theme struct
* @renderer: wlr_renderer for creating button textures
2020-08-07 20:21:14 +01:00
* @theme_name: theme-name in <theme-dir>/<theme-name>/openbox-3/themerc
* Note <theme-dir> is obtained in theme-dir.c
*/
2021-02-21 21:54:40 +00:00
void theme_init(struct theme *theme, struct wlr_renderer *renderer,
const char *theme_name);
2020-06-11 21:20:43 +01:00
/**
* theme_builin - apply built-in theme similar to Clearlooks
* Note: Only used if no theme can be found. Default values for individual
* theme options are as per openbox spec and are typically black/white.
*/
2021-02-21 21:54:40 +00:00
void theme_builtin(struct theme *theme);
2020-08-03 20:56:38 +01:00
#endif /* __LABWC_THEME_H */