void parse_hexstr(const char *hex, float *rgba);
/**
- * theme_read - read theme into global theme struct
+ * theme_init - read theme incl. buttons into global theme struct
* @theme_name: theme-name in <theme-dir>/<theme-name>/openbox-3/themerc
* Note <theme-dir> is obtained in theme-dir.c
*/
-void theme_read(const char *theme_name);
+void theme_init(struct wlr_renderer *renderer, const char *theme_name);
/**
* theme_builin - apply built-in theme similar to Clearlooks
server_init(&server);
server_start(&server);
- theme_read(rc.theme_name);
- xbm_load(server.renderer);
+ theme_init(server.renderer, rc.theme_name);
struct menu rootmenu = { 0 };
menu_init_rootmenu(&server, &rootmenu);
#include "config/rcxml.h"
#include "labwc.h"
#include "layers.h"
+#include "menu/menu.h"
#include "theme/theme.h"
static struct wlr_compositor *compositor;
static void
reload_config_and_theme(void)
{
- rcxml_finish();
/* TODO: use rc.config_path */
+ rcxml_finish();
rcxml_read(NULL);
- theme_read(rc.theme_name);
+ theme_init(g_server->renderer, rc.theme_name);
menu_reconfigure(g_server, g_server->rootmenu);
damage_all_outputs(g_server);
}
#include "common/log.h"
#include "common/string-helpers.h"
#include "theme/theme.h"
+#include "xbm/xbm.h"
static int
hex_to_dec(char c)
entry(key, value);
}
-void
+static void
theme_read(const char *theme_name)
{
FILE *stream = NULL;
free(line);
fclose(stream);
}
+
+void
+theme_init(struct wlr_renderer *renderer, const char *theme_name)
+{
+ theme_read(theme_name);
+ xbm_load(renderer);
+}