From 54ad34a039d5d83d61c481aaef18d1ea7876d36e Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Wed, 30 Jul 2003 16:25:08 +0000 Subject: [PATCH] move the titlebar layout from the theme to the rc file --- data/rc3 | 1 + openbox/config.c | 8 ++++++++ openbox/config.h | 3 +++ openbox/frame.c | 5 +++-- render/theme.c | 7 ------- render/theme.h | 3 --- 6 files changed, 15 insertions(+), 12 deletions(-) diff --git a/data/rc3 b/data/rc3 index a7a7b148..9acb3bb5 100644 --- a/data/rc3 +++ b/data/rc3 @@ -25,6 +25,7 @@ operation + NLIMC diff --git a/openbox/config.c b/openbox/config.c index 5089a335..d9c9789e 100644 --- a/openbox/config.c +++ b/openbox/config.c @@ -9,6 +9,8 @@ gboolean config_focus_popup; char *config_theme; +gchar *config_title_layout; + int config_desktops_num; GSList *config_desktops_names; @@ -52,6 +54,10 @@ static void parse_theme(xmlDocPtr doc, xmlNodePtr node, void *d) g_free(config_theme); config_theme = parse_string(doc, n); } + if ((n = parse_find_node("titlelayout", node))) { + g_free(config_title_layout); + config_title_layout = parse_string(doc, n); + } } static void parse_desktops(xmlDocPtr doc, xmlNodePtr node, void *d) @@ -164,6 +170,8 @@ void config_startup() config_theme = NULL; + config_title_layout = g_strdup("NLIMC"); + parse_register("theme", parse_theme, NULL); config_desktops_num = 4; diff --git a/openbox/config.h b/openbox/config.h index 79f8432c..0c317dac 100644 --- a/openbox/config.h +++ b/openbox/config.h @@ -47,6 +47,9 @@ extern guint config_dock_hide_timeout; /* The name of the theme */ char *config_theme; +/* Titlebar button layout */ +gchar *config_title_layout; + /*! The number of desktops */ extern int config_desktops_num; /*! Names for the desktops */ diff --git a/openbox/frame.c b/openbox/frame.c index 05ac3c71..a66bef93 100644 --- a/openbox/frame.c +++ b/openbox/frame.c @@ -2,6 +2,7 @@ #include "client.h" #include "openbox.h" #include "extensions.h" +#include "config.h" #include "framerender.h" #include "render/theme.h" @@ -429,7 +430,7 @@ static void layout_title(ObFrame *self) /* figure out whats being shown, and the width of the label */ self->label_width = self->width - (ob_rr_theme->bevel + 1) * 2; - for (lc = ob_rr_theme->title_layout; *lc != '\0'; ++lc) { + for (lc = config_title_layout; *lc != '\0'; ++lc) { switch (*lc) { case 'N': if (n) { *lc = ' '; break; } /* rm duplicates */ @@ -487,7 +488,7 @@ static void layout_title(ObFrame *self) if (!c) XUnmapWindow(ob_display, self->close); x = ob_rr_theme->bevel + 1; - for (lc = ob_rr_theme->title_layout; *lc != '\0'; ++lc) { + for (lc = config_title_layout; *lc != '\0'; ++lc) { switch (*lc) { case 'N': if (!n) break; diff --git a/render/theme.c b/render/theme.c index b9172b69..cfbc5f9c 100644 --- a/render/theme.c +++ b/render/theme.c @@ -133,11 +133,6 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name) mjust = RR_JUSTIFY_CENTER; } - /* load the title layout */ - if (!read_string(db, "window.title.layout", &font_str)) - font_str = "NLIMC"; - theme->title_layout = g_strdup(font_str); - /* load direct dimensions */ if (!read_int(db, "menuOverlap", &theme->menu_overlap) || theme->menu_overlap < 0 || theme->menu_overlap > 20) @@ -732,8 +727,6 @@ void RrThemeFree(RrTheme *theme) RrFontClose(theme->mtitlefont); RrFontClose(theme->mfont); - g_free(theme->title_layout); - RrAppearanceFree(theme->a_disabled_focused_max); RrAppearanceFree(theme->a_disabled_unfocused_max); RrAppearanceFree(theme->a_hover_focused_max); diff --git a/render/theme.h b/render/theme.h index f7c0dc67..5abe35ea 100644 --- a/render/theme.h +++ b/render/theme.h @@ -49,9 +49,6 @@ struct _RrTheme { gint mfont_height; RrFont *mfont; - /* style settings - title layout */ - gchar *title_layout; - /* style settings - masks */ RrPixmapMask *max_set_mask; RrPixmapMask *max_unset_mask; -- 2.39.2