mirror of
https://github.com/labwc/labwc.git
synced 2026-04-01 07:15:52 -04:00
Split theme-builtin.c into a separate file
This commit is contained in:
parent
4a89fbfb22
commit
5a77c84fc8
4 changed files with 39 additions and 22 deletions
|
|
@ -30,6 +30,13 @@ struct theme {
|
||||||
|
|
||||||
extern struct theme theme;
|
extern struct theme theme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* theme_read - read theme into global theme struct
|
* theme_read - read theme into global theme struct
|
||||||
* @theme_name: theme-name in <theme-dir>/<theme-name>/openbox-3/themerc
|
* @theme_name: theme-name in <theme-dir>/<theme-name>/openbox-3/themerc
|
||||||
|
|
@ -37,4 +44,11 @@ extern struct theme theme;
|
||||||
*/
|
*/
|
||||||
void theme_read(const char *theme_name);
|
void theme_read(const char *theme_name);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
void theme_builtin(void);
|
||||||
|
|
||||||
#endif /* __LABWC_THEME_H */
|
#endif /* __LABWC_THEME_H */
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
labwc_sources += files(
|
labwc_sources += files(
|
||||||
'theme.c',
|
'theme.c',
|
||||||
|
'theme-builtin.c',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
23
src/theme/theme-builtin.c
Normal file
23
src/theme/theme-builtin.c
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
/*
|
||||||
|
* We generally use Openbox defaults, but if no theme file can be found it's
|
||||||
|
* better to populate the theme variables with some sane values as no-one
|
||||||
|
* wants to use openbox without a theme - it'll all just be black and white.
|
||||||
|
*
|
||||||
|
* Openbox doesn't actual start if it can't find a theme. As it's normally
|
||||||
|
* packaged with Clearlooks, this is not a problem, but for labwc I thought
|
||||||
|
* this was a bit hard-line. People might want to try labwc without having
|
||||||
|
* Openbox (and associated themes) installed.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "theme/theme.h"
|
||||||
|
|
||||||
|
/* clang-format off */
|
||||||
|
void theme_builtin(void)
|
||||||
|
{
|
||||||
|
parse_hexstr("#589bda", theme.window_active_title_bg_color);
|
||||||
|
parse_hexstr("#3c7cb7", theme.window_active_handle_bg_color);
|
||||||
|
parse_hexstr("#efece6", theme.window_inactive_title_bg_color);
|
||||||
|
parse_hexstr("#ffffff", theme.window_active_button_unpressed_image_color);
|
||||||
|
parse_hexstr("#000000", theme.window_inactive_button_unpressed_image_color);
|
||||||
|
}
|
||||||
|
/* clang-format on */
|
||||||
|
|
@ -21,7 +21,7 @@ static int hex_to_dec(char c)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void parse_hexstr(const char *hex, float *rgba)
|
void parse_hexstr(const char *hex, float *rgba)
|
||||||
{
|
{
|
||||||
if (!hex || hex[0] != '#' || strlen(hex) < 7)
|
if (!hex || hex[0] != '#' || strlen(hex) < 7)
|
||||||
return;
|
return;
|
||||||
|
|
@ -95,27 +95,6 @@ static void process_line(char *line)
|
||||||
entry(key, value);
|
entry(key, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* We generally use Openbox defaults, but if no theme file can be found it's
|
|
||||||
* better to populate the theme variables with some sane values as no-one
|
|
||||||
* wants to use openbox without a theme - it'll all just be black and white.
|
|
||||||
*
|
|
||||||
* Openbox doesn't actual start if it can't find a theme. As it's normally
|
|
||||||
* packaged with Clearlooks, this is not a problem, but for labwc I thought
|
|
||||||
* this was a bit hard-line. People might want to try labwc without having
|
|
||||||
* Openbox (and associated themes) installed.
|
|
||||||
*/
|
|
||||||
/* clang-format off */
|
|
||||||
void theme_builtin(void)
|
|
||||||
{
|
|
||||||
parse_hexstr("#589bda", theme.window_active_title_bg_color);
|
|
||||||
parse_hexstr("#3c7cb7", theme.window_active_handle_bg_color);
|
|
||||||
parse_hexstr("#efece6", theme.window_inactive_title_bg_color);
|
|
||||||
parse_hexstr("#ffffff", theme.window_active_button_unpressed_image_color);
|
|
||||||
parse_hexstr("#000000", theme.window_inactive_button_unpressed_image_color);
|
|
||||||
}
|
|
||||||
/* clang-format on */
|
|
||||||
|
|
||||||
void theme_read(const char *theme_name)
|
void theme_read(const char *theme_name)
|
||||||
{
|
{
|
||||||
FILE *stream = NULL;
|
FILE *stream = NULL;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue