X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;ds=sidebyside;f=obrender%2Ftheme.c;h=fcdab9722c9b6fb6df146db5fbdf1e2c18f60bf5;hb=b7350d3ebd40753efde31bb4fe4272a435cef7d7;hp=11b77228d6ab7a71cc6a8d5b0310569c61f77da4;hpb=0dd91ba0e2382a8f6177f501f8a0b26e0daf26a8;p=chaz%2Fopenbox diff --git a/obrender/theme.c b/obrender/theme.c index 11b77228..fcdab972 100644 --- a/obrender/theme.c +++ b/obrender/theme.c @@ -109,6 +109,21 @@ RrTheme* RrThemeNew(const RrInstance *inst, const gchar *name, RrFont *default_font = NULL; gchar *path; gboolean userdef; + gint menu_overlap = 0; + RrAppearance *a_disabled_focused_tmp; + RrAppearance *a_disabled_unfocused_tmp; + RrAppearance *a_hover_focused_tmp; + RrAppearance *a_hover_unfocused_tmp; + RrAppearance *a_focused_unpressed_tmp; + RrAppearance *a_focused_pressed_tmp; + RrAppearance *a_unfocused_unpressed_tmp; + RrAppearance *a_unfocused_pressed_tmp; + RrAppearance *a_toggled_hover_focused_tmp; + RrAppearance *a_toggled_hover_unfocused_tmp; + RrAppearance *a_toggled_focused_unpressed_tmp; + RrAppearance *a_toggled_focused_pressed_tmp; + RrAppearance *a_toggled_unfocused_unpressed_tmp; + RrAppearance *a_toggled_unfocused_pressed_tmp; if (name) { db = loaddb(name, &path); @@ -132,7 +147,24 @@ RrTheme* RrThemeNew(const RrInstance *inst, const gchar *name, return NULL; } - theme = g_slice_new0(RrTheme); + /* initialize temp reading textures */ + a_disabled_focused_tmp = RrAppearanceNew(inst, 1); + a_disabled_unfocused_tmp = RrAppearanceNew(inst, 1); + a_hover_focused_tmp = RrAppearanceNew(inst, 1); + a_hover_unfocused_tmp = RrAppearanceNew(inst, 1); + a_toggled_focused_unpressed_tmp = RrAppearanceNew(inst, 1); + a_toggled_unfocused_unpressed_tmp = RrAppearanceNew(inst, 1); + a_toggled_hover_focused_tmp = RrAppearanceNew(inst, 1); + a_toggled_hover_unfocused_tmp = RrAppearanceNew(inst, 1); + a_toggled_focused_pressed_tmp = RrAppearanceNew(inst, 1); + a_toggled_unfocused_pressed_tmp = RrAppearanceNew(inst, 1); + a_focused_unpressed_tmp = RrAppearanceNew(inst, 1); + a_focused_pressed_tmp = RrAppearanceNew(inst, 1); + a_unfocused_unpressed_tmp = RrAppearanceNew(inst, 1); + a_unfocused_pressed_tmp = RrAppearanceNew(inst, 1); + + /* initialize theme */ + theme = g_slice_new0(RrTheme, 1); theme->inst = inst; theme->name = g_strdup(name ? name : DEFAULT_THEME); @@ -211,18 +243,15 @@ RrTheme* RrThemeNew(const RrInstance *inst, const gchar *name, theme->osd_font_unhilite = get_font(inactive_osd_font, &default_font,inst); /* load direct dimensions */ - /* TODO: Need fallback for menu.overlap */ - READ_INT("menu.overlap.x", theme->menu_overlap_x, -100, 100, 0); - READ_INT("menu.overlap.y", theme->menu_overlap_y, -100, 100, 0); - /*READ_INT("menu.overlap", theme->menu_overlap, -100, 100, 0);*/ + READ_INT("menu.overlap", menu_overlap, -100, 100, 0); + READ_INT("menu.overlap.x", theme->menu_overlap_x, -100, 100, menu_overlap); + READ_INT("menu.overlap.y", theme->menu_overlap_y, -100, 100, menu_overlap); READ_INT("window.handle.width", theme->handle_height, 0, 100, 6); READ_INT("padding.width", theme->paddingx, 0, 100, 3); READ_INT("padding.height", theme->paddingy, 0, 100, theme->paddingx); READ_INT("border.width", theme->fbwidth, 0, 100, 1); READ_INT("menu.border.width", theme->mbwidth, 0, 100, theme->fbwidth); READ_INT("osd.border.width", theme->obwidth, 0, 100, theme->fbwidth); - READ_INT("window.client.padding.width", theme->cbwidthx, 0, 100, theme->paddingx); - READ_INT("window.client.padding.height", theme->cbwidthy, 0, 100, theme->cbwidthx); READ_INT("menu.separator.width", theme->menu_sep_width, 1, 100, 1); READ_INT("menu.separator.padding.width", theme->menu_sep_paddingx, 0, 100, 6); READ_INT("menu.separator.padding.height", theme->menu_sep_paddingy, 0, 100, 3); @@ -356,8 +385,8 @@ RrTheme* RrThemeNew(const RrInstance *inst, const gchar *name, RrColorNew(inst, 0, 0, 0)); READ_COLOR("menu.separator.color", theme->menu_sep_color, - RrColorCopy(inst, theme->menu_color)); - + RrColorCopy(theme->menu_color)); + /* load the image masks */ /* maximize button masks */ @@ -1274,6 +1303,21 @@ RrTheme* RrThemeNew(const RrInstance *inst, const gchar *name, theme->button_size = theme->label_height - 2; theme->grip_width = 25; + RrAppearanceFree(a_disabled_focused_tmp); + RrAppearanceFree(a_disabled_unfocused_tmp); + RrAppearanceFree(a_hover_focused_tmp); + RrAppearanceFree(a_hover_unfocused_tmp); + RrAppearanceFree(a_focused_unpressed_tmp); + RrAppearanceFree(a_focused_pressed_tmp); + RrAppearanceFree(a_unfocused_unpressed_tmp); + RrAppearanceFree(a_unfocused_pressed_tmp); + RrAppearanceFree(a_toggled_hover_focused_tmp); + RrAppearanceFree(a_toggled_hover_unfocused_tmp); + RrAppearanceFree(a_toggled_focused_unpressed_tmp); + RrAppearanceFree(a_toggled_focused_pressed_tmp); + RrAppearanceFree(a_toggled_unfocused_unpressed_tmp); + RrAppearanceFree(a_toggled_unfocused_pressed_tmp); + return theme; }