X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=render%2Ftheme.c;h=b1b15ff249c08496890332e885014c556cb6e172;hb=8186a81fe0095a46c2a65e252268f19d5798095a;hp=3f90a145eeb14016b151bf477331534676e2b224;hpb=6b05306a286ac5ebf0988d63f080e829199fd1da;p=chaz%2Fopenbox diff --git a/render/theme.c b/render/theme.c index 3f90a145..b1b15ff2 100644 --- a/render/theme.c +++ b/render/theme.c @@ -115,7 +115,7 @@ RrTheme* RrThemeNew(const RrInstance *inst, const gchar *name, theme->a_menu_normal = RrAppearanceNew(inst, 0); theme->a_menu_selected = RrAppearanceNew(inst, 0); theme->a_menu_disabled = RrAppearanceNew(inst, 0); - theme->a_menu_disabled_selected = RrAppearanceNew(inst, 0); + /* a_menu_disabled_selected is copied from a_menu_selected */ theme->a_menu_text_normal = RrAppearanceNew(inst, 1); theme->a_menu_text_selected = RrAppearanceNew(inst, 1); theme->a_menu_text_disabled = RrAppearanceNew(inst, 1); @@ -177,16 +177,23 @@ RrTheme* RrThemeNew(const RrInstance *inst, const gchar *name, theme->osd_font = RrFontOpenDefault(inst); /* load direct dimensions */ - if (!read_int(db, "menu.overlap", &theme->menu_overlap) || - theme->menu_overlap < -100 || theme->menu_overlap > 100) - theme->menu_overlap = 0; + if ((!read_int(db, "menu.overlap.x", &theme->menu_overlap_x) && + !read_int(db, "menu.overlap", &theme->menu_overlap_x)) || + theme->menu_overlap_x < -100 || theme->menu_overlap_x > 100) + theme->menu_overlap_x = 0; + if ((!read_int(db, "menu.overlap.y", &theme->menu_overlap_y) && + !read_int(db, "menu.overlap", &theme->menu_overlap_y)) || + theme->menu_overlap_y < -100 || theme->menu_overlap_y > 100) + theme->menu_overlap_y = 0; if (!read_int(db, "window.handle.width", &theme->handle_height) || theme->handle_height < 0 || theme->handle_height > 100) theme->handle_height = 6; if (!read_int(db, "padding.width", &theme->paddingx) || theme->paddingx < 0 || theme->paddingx > 100) theme->paddingx = 3; - theme->paddingy = theme->paddingx; + if (!read_int(db, "padding.height", &theme->paddingy) || + theme->paddingy < 0 || theme->paddingy > 100) + theme->paddingy = theme->paddingx; if (!read_int(db, "border.width", &theme->fbwidth) || theme->fbwidth < 0 || theme->fbwidth > 100) theme->fbwidth = 1; @@ -401,7 +408,7 @@ RrTheme* RrThemeNew(const RrInstance *inst, const gchar *name, "menu.items.active.text.color", &theme->menu_selected_color)) theme->menu_selected_color = RrColorNew(inst, 0, 0, 0); - + /* load the image masks */ /* maximize button masks */ @@ -541,21 +548,6 @@ RrTheme* RrThemeNew(const RrInstance *inst, const gchar *name, OB_DEFAULT_ICON_HEIGHT, OB_DEFAULT_ICON_pixel_data); - /* the toggled hover mask = the toggled unpressed mask (i.e. no change) */ - theme->max_toggled_hover_mask = - RrPixmapMaskCopy(theme->max_toggled_mask); - theme->desk_toggled_hover_mask = - RrPixmapMaskCopy(theme->desk_toggled_mask); - theme->shade_toggled_hover_mask = - RrPixmapMaskCopy(theme->shade_toggled_mask); - /* the toggled pressed mask = the toggled unpressed mask (i.e. no change)*/ - theme->max_toggled_pressed_mask = - RrPixmapMaskCopy(theme->max_toggled_mask); - theme->desk_toggled_pressed_mask = - RrPixmapMaskCopy(theme->desk_toggled_mask); - theme->shade_toggled_pressed_mask = - RrPixmapMaskCopy(theme->shade_toggled_mask); - /* read the decoration textures */ if (!read_appearance(db, inst, "window.active.title.bg", theme->a_focused_title, @@ -768,7 +760,7 @@ RrTheme* RrThemeNew(const RrInstance *inst, const gchar *name, theme->a_hover_focused_desk = RrAppearanceCopy(theme->a_hover_focused_max); theme->a_hover_unfocused_desk = - RrAppearanceCopy(theme->a_hover_unfocused_max); + RrAppearanceCopy(theme->a_hover_unfocused_max); theme->a_toggled_hover_focused_desk = RrAppearanceCopy(theme->a_toggled_hover_focused_max); theme->a_toggled_hover_unfocused_desk = @@ -910,13 +902,9 @@ RrTheme* RrThemeNew(const RrInstance *inst, const gchar *name, j = (i > 0 ? 0 : 255); i = ABS(i*255/100); - theme->title_focused_shadow_color = RrColorNew(inst, j, j, j); - theme->title_focused_shadow_alpha = i; theme->osd_shadow_color = RrColorNew(inst, j, j, j); theme->osd_shadow_alpha = i; } else { - theme->title_focused_shadow_color = RrColorNew(inst, 0, 0, 0); - theme->title_focused_shadow_alpha = 50; theme->osd_shadow_color = RrColorNew(inst, 0, 0, 0); theme->osd_shadow_alpha = 50; } @@ -1020,13 +1008,13 @@ RrTheme* RrThemeNew(const RrInstance *inst, const gchar *name, theme->a_menu_text_normal->texture[0].type = theme->a_menu_text_selected->texture[0].type = - theme->a_menu_text_disabled->texture[0].type = - theme->a_menu_text_disabled_selected->texture[0].type = + theme->a_menu_text_disabled->texture[0].type = + theme->a_menu_text_disabled_selected->texture[0].type = RR_TEXTURE_TEXT; - theme->a_menu_text_normal->texture[0].data.text.justify = + theme->a_menu_text_normal->texture[0].data.text.justify = theme->a_menu_text_selected->texture[0].data.text.justify = - theme->a_menu_text_disabled->texture[0].data.text.justify = - theme->a_menu_text_disabled_selected->texture[0].data.text.justify = + theme->a_menu_text_disabled->texture[0].data.text.justify = + theme->a_menu_text_disabled_selected->texture[0].data.text.justify = RR_JUSTIFY_LEFT; theme->a_menu_text_normal->texture[0].data.text.font = theme->a_menu_text_selected->texture[0].data.text.font = @@ -1072,7 +1060,7 @@ RrTheme* RrThemeNew(const RrInstance *inst, const gchar *name, i = parse_inline_number(p + strlen("shadowtint=")); j = (i > 0 ? 0 : 255); i = ABS(i*255/100); - + theme->menu_text_normal_shadow_color = RrColorNew(inst, j, j, j); theme->menu_text_selected_shadow_color = RrColorNew(inst, j, j, j); theme->menu_text_disabled_shadow_color = RrColorNew(inst, j, j, j); @@ -1107,180 +1095,180 @@ RrTheme* RrThemeNew(const RrInstance *inst, const gchar *name, theme->a_menu_text_disabled_selected->texture[0].data.text.shadow_alpha = theme->menu_text_disabled_shadow_alpha; - theme->a_disabled_focused_max->texture[0].type = - theme->a_disabled_unfocused_max->texture[0].type = - theme->a_hover_focused_max->texture[0].type = - theme->a_hover_unfocused_max->texture[0].type = - theme->a_toggled_hover_focused_max->texture[0].type = - theme->a_toggled_hover_unfocused_max->texture[0].type = - theme->a_toggled_focused_unpressed_max->texture[0].type = - theme->a_toggled_unfocused_unpressed_max->texture[0].type = - theme->a_toggled_focused_pressed_max->texture[0].type = - theme->a_toggled_unfocused_pressed_max->texture[0].type = - theme->a_focused_unpressed_max->texture[0].type = - theme->a_focused_pressed_max->texture[0].type = - theme->a_unfocused_unpressed_max->texture[0].type = - theme->a_unfocused_pressed_max->texture[0].type = - theme->a_disabled_focused_close->texture[0].type = - theme->a_disabled_unfocused_close->texture[0].type = - theme->a_hover_focused_close->texture[0].type = - theme->a_hover_unfocused_close->texture[0].type = - theme->a_focused_unpressed_close->texture[0].type = - theme->a_focused_pressed_close->texture[0].type = - theme->a_unfocused_unpressed_close->texture[0].type = - theme->a_unfocused_pressed_close->texture[0].type = - theme->a_disabled_focused_desk->texture[0].type = - theme->a_disabled_unfocused_desk->texture[0].type = - theme->a_hover_focused_desk->texture[0].type = - theme->a_hover_unfocused_desk->texture[0].type = - theme->a_toggled_hover_focused_desk->texture[0].type = - theme->a_toggled_hover_unfocused_desk->texture[0].type = - theme->a_toggled_focused_unpressed_desk->texture[0].type = - theme->a_toggled_unfocused_unpressed_desk->texture[0].type = - theme->a_toggled_focused_pressed_desk->texture[0].type = - theme->a_toggled_unfocused_pressed_desk->texture[0].type = - theme->a_focused_unpressed_desk->texture[0].type = - theme->a_focused_pressed_desk->texture[0].type = - theme->a_unfocused_unpressed_desk->texture[0].type = - theme->a_unfocused_pressed_desk->texture[0].type = - theme->a_disabled_focused_shade->texture[0].type = - theme->a_disabled_unfocused_shade->texture[0].type = - theme->a_hover_focused_shade->texture[0].type = - theme->a_hover_unfocused_shade->texture[0].type = - theme->a_toggled_hover_focused_shade->texture[0].type = - theme->a_toggled_hover_unfocused_shade->texture[0].type = - theme->a_toggled_focused_unpressed_shade->texture[0].type = - theme->a_toggled_unfocused_unpressed_shade->texture[0].type = - theme->a_toggled_focused_pressed_shade->texture[0].type = - theme->a_toggled_unfocused_pressed_shade->texture[0].type = - theme->a_focused_unpressed_shade->texture[0].type = - theme->a_focused_pressed_shade->texture[0].type = - theme->a_unfocused_unpressed_shade->texture[0].type = - theme->a_unfocused_pressed_shade->texture[0].type = - theme->a_disabled_focused_iconify->texture[0].type = - theme->a_disabled_unfocused_iconify->texture[0].type = - theme->a_hover_focused_iconify->texture[0].type = - theme->a_hover_unfocused_iconify->texture[0].type = - theme->a_focused_unpressed_iconify->texture[0].type = - theme->a_focused_pressed_iconify->texture[0].type = - theme->a_unfocused_unpressed_iconify->texture[0].type = + theme->a_disabled_focused_max->texture[0].type = + theme->a_disabled_unfocused_max->texture[0].type = + theme->a_hover_focused_max->texture[0].type = + theme->a_hover_unfocused_max->texture[0].type = + theme->a_toggled_hover_focused_max->texture[0].type = + theme->a_toggled_hover_unfocused_max->texture[0].type = + theme->a_toggled_focused_unpressed_max->texture[0].type = + theme->a_toggled_unfocused_unpressed_max->texture[0].type = + theme->a_toggled_focused_pressed_max->texture[0].type = + theme->a_toggled_unfocused_pressed_max->texture[0].type = + theme->a_focused_unpressed_max->texture[0].type = + theme->a_focused_pressed_max->texture[0].type = + theme->a_unfocused_unpressed_max->texture[0].type = + theme->a_unfocused_pressed_max->texture[0].type = + theme->a_disabled_focused_close->texture[0].type = + theme->a_disabled_unfocused_close->texture[0].type = + theme->a_hover_focused_close->texture[0].type = + theme->a_hover_unfocused_close->texture[0].type = + theme->a_focused_unpressed_close->texture[0].type = + theme->a_focused_pressed_close->texture[0].type = + theme->a_unfocused_unpressed_close->texture[0].type = + theme->a_unfocused_pressed_close->texture[0].type = + theme->a_disabled_focused_desk->texture[0].type = + theme->a_disabled_unfocused_desk->texture[0].type = + theme->a_hover_focused_desk->texture[0].type = + theme->a_hover_unfocused_desk->texture[0].type = + theme->a_toggled_hover_focused_desk->texture[0].type = + theme->a_toggled_hover_unfocused_desk->texture[0].type = + theme->a_toggled_focused_unpressed_desk->texture[0].type = + theme->a_toggled_unfocused_unpressed_desk->texture[0].type = + theme->a_toggled_focused_pressed_desk->texture[0].type = + theme->a_toggled_unfocused_pressed_desk->texture[0].type = + theme->a_focused_unpressed_desk->texture[0].type = + theme->a_focused_pressed_desk->texture[0].type = + theme->a_unfocused_unpressed_desk->texture[0].type = + theme->a_unfocused_pressed_desk->texture[0].type = + theme->a_disabled_focused_shade->texture[0].type = + theme->a_disabled_unfocused_shade->texture[0].type = + theme->a_hover_focused_shade->texture[0].type = + theme->a_hover_unfocused_shade->texture[0].type = + theme->a_toggled_hover_focused_shade->texture[0].type = + theme->a_toggled_hover_unfocused_shade->texture[0].type = + theme->a_toggled_focused_unpressed_shade->texture[0].type = + theme->a_toggled_unfocused_unpressed_shade->texture[0].type = + theme->a_toggled_focused_pressed_shade->texture[0].type = + theme->a_toggled_unfocused_pressed_shade->texture[0].type = + theme->a_focused_unpressed_shade->texture[0].type = + theme->a_focused_pressed_shade->texture[0].type = + theme->a_unfocused_unpressed_shade->texture[0].type = + theme->a_unfocused_pressed_shade->texture[0].type = + theme->a_disabled_focused_iconify->texture[0].type = + theme->a_disabled_unfocused_iconify->texture[0].type = + theme->a_hover_focused_iconify->texture[0].type = + theme->a_hover_unfocused_iconify->texture[0].type = + theme->a_focused_unpressed_iconify->texture[0].type = + theme->a_focused_pressed_iconify->texture[0].type = + theme->a_unfocused_unpressed_iconify->texture[0].type = theme->a_unfocused_pressed_iconify->texture[0].type = theme->a_menu_bullet_normal->texture[0].type = theme->a_menu_bullet_selected->texture[0].type = RR_TEXTURE_MASK; - - theme->a_disabled_focused_max->texture[0].data.mask.mask = - theme->a_disabled_unfocused_max->texture[0].data.mask.mask = + + theme->a_disabled_focused_max->texture[0].data.mask.mask = + theme->a_disabled_unfocused_max->texture[0].data.mask.mask = theme->max_disabled_mask; - theme->a_hover_focused_max->texture[0].data.mask.mask = - theme->a_hover_unfocused_max->texture[0].data.mask.mask = + theme->a_hover_focused_max->texture[0].data.mask.mask = + theme->a_hover_unfocused_max->texture[0].data.mask.mask = theme->max_hover_mask; - theme->a_focused_pressed_max->texture[0].data.mask.mask = + theme->a_focused_pressed_max->texture[0].data.mask.mask = theme->a_unfocused_pressed_max->texture[0].data.mask.mask = theme->max_pressed_mask; - theme->a_focused_unpressed_max->texture[0].data.mask.mask = - theme->a_unfocused_unpressed_max->texture[0].data.mask.mask = + theme->a_focused_unpressed_max->texture[0].data.mask.mask = + theme->a_unfocused_unpressed_max->texture[0].data.mask.mask = theme->max_mask; - theme->a_toggled_hover_focused_max->texture[0].data.mask.mask = + theme->a_toggled_hover_focused_max->texture[0].data.mask.mask = theme->a_toggled_hover_unfocused_max->texture[0].data.mask.mask = theme->max_toggled_hover_mask; - theme->a_toggled_focused_unpressed_max->texture[0].data.mask.mask = + theme->a_toggled_focused_unpressed_max->texture[0].data.mask.mask = theme->a_toggled_unfocused_unpressed_max->texture[0].data.mask.mask = theme->max_toggled_mask; - theme->a_toggled_focused_pressed_max->texture[0].data.mask.mask = + theme->a_toggled_focused_pressed_max->texture[0].data.mask.mask = theme->a_toggled_unfocused_pressed_max->texture[0].data.mask.mask = theme->max_toggled_pressed_mask; - theme->a_disabled_focused_close->texture[0].data.mask.mask = - theme->a_disabled_unfocused_close->texture[0].data.mask.mask = + theme->a_disabled_focused_close->texture[0].data.mask.mask = + theme->a_disabled_unfocused_close->texture[0].data.mask.mask = theme->close_disabled_mask; - theme->a_hover_focused_close->texture[0].data.mask.mask = - theme->a_hover_unfocused_close->texture[0].data.mask.mask = + theme->a_hover_focused_close->texture[0].data.mask.mask = + theme->a_hover_unfocused_close->texture[0].data.mask.mask = theme->close_hover_mask; - theme->a_focused_pressed_close->texture[0].data.mask.mask = + theme->a_focused_pressed_close->texture[0].data.mask.mask = theme->a_unfocused_pressed_close->texture[0].data.mask.mask = theme->close_pressed_mask; - theme->a_focused_unpressed_close->texture[0].data.mask.mask = + theme->a_focused_unpressed_close->texture[0].data.mask.mask = theme->a_unfocused_unpressed_close->texture[0].data.mask.mask = theme->close_mask; - theme->a_disabled_focused_desk->texture[0].data.mask.mask = - theme->a_disabled_unfocused_desk->texture[0].data.mask.mask = + theme->a_disabled_focused_desk->texture[0].data.mask.mask = + theme->a_disabled_unfocused_desk->texture[0].data.mask.mask = theme->desk_disabled_mask; - theme->a_hover_focused_desk->texture[0].data.mask.mask = - theme->a_hover_unfocused_desk->texture[0].data.mask.mask = + theme->a_hover_focused_desk->texture[0].data.mask.mask = + theme->a_hover_unfocused_desk->texture[0].data.mask.mask = theme->desk_hover_mask; - theme->a_focused_pressed_desk->texture[0].data.mask.mask = + theme->a_focused_pressed_desk->texture[0].data.mask.mask = theme->a_unfocused_pressed_desk->texture[0].data.mask.mask = theme->desk_pressed_mask; - theme->a_focused_unpressed_desk->texture[0].data.mask.mask = - theme->a_unfocused_unpressed_desk->texture[0].data.mask.mask = + theme->a_focused_unpressed_desk->texture[0].data.mask.mask = + theme->a_unfocused_unpressed_desk->texture[0].data.mask.mask = theme->desk_mask; - theme->a_toggled_hover_focused_desk->texture[0].data.mask.mask = + theme->a_toggled_hover_focused_desk->texture[0].data.mask.mask = theme->a_toggled_hover_unfocused_desk->texture[0].data.mask.mask = theme->desk_toggled_hover_mask; - theme->a_toggled_focused_unpressed_desk->texture[0].data.mask.mask = + theme->a_toggled_focused_unpressed_desk->texture[0].data.mask.mask = theme->a_toggled_unfocused_unpressed_desk->texture[0].data.mask.mask = theme->desk_toggled_mask; - theme->a_toggled_focused_pressed_desk->texture[0].data.mask.mask = + theme->a_toggled_focused_pressed_desk->texture[0].data.mask.mask = theme->a_toggled_unfocused_pressed_desk->texture[0].data.mask.mask = theme->desk_toggled_pressed_mask; - theme->a_disabled_focused_shade->texture[0].data.mask.mask = - theme->a_disabled_unfocused_shade->texture[0].data.mask.mask = + theme->a_disabled_focused_shade->texture[0].data.mask.mask = + theme->a_disabled_unfocused_shade->texture[0].data.mask.mask = theme->shade_disabled_mask; - theme->a_hover_focused_shade->texture[0].data.mask.mask = - theme->a_hover_unfocused_shade->texture[0].data.mask.mask = + theme->a_hover_focused_shade->texture[0].data.mask.mask = + theme->a_hover_unfocused_shade->texture[0].data.mask.mask = theme->shade_hover_mask; - theme->a_focused_pressed_shade->texture[0].data.mask.mask = + theme->a_focused_pressed_shade->texture[0].data.mask.mask = theme->a_unfocused_pressed_shade->texture[0].data.mask.mask = theme->shade_pressed_mask; - theme->a_focused_unpressed_shade->texture[0].data.mask.mask = - theme->a_unfocused_unpressed_shade->texture[0].data.mask.mask = + theme->a_focused_unpressed_shade->texture[0].data.mask.mask = + theme->a_unfocused_unpressed_shade->texture[0].data.mask.mask = theme->shade_mask; - theme->a_toggled_hover_focused_shade->texture[0].data.mask.mask = + theme->a_toggled_hover_focused_shade->texture[0].data.mask.mask = theme->a_toggled_hover_unfocused_shade->texture[0].data.mask.mask = theme->shade_toggled_hover_mask; - theme->a_toggled_focused_unpressed_shade->texture[0].data.mask.mask = + theme->a_toggled_focused_unpressed_shade->texture[0].data.mask.mask = theme->a_toggled_unfocused_unpressed_shade->texture[0].data.mask.mask = theme->shade_toggled_mask; - theme->a_toggled_focused_pressed_shade->texture[0].data.mask.mask = + theme->a_toggled_focused_pressed_shade->texture[0].data.mask.mask = theme->a_toggled_unfocused_pressed_shade->texture[0].data.mask.mask = theme->shade_toggled_pressed_mask; - theme->a_disabled_focused_iconify->texture[0].data.mask.mask = - theme->a_disabled_unfocused_iconify->texture[0].data.mask.mask = + theme->a_disabled_focused_iconify->texture[0].data.mask.mask = + theme->a_disabled_unfocused_iconify->texture[0].data.mask.mask = theme->iconify_disabled_mask; - theme->a_hover_focused_iconify->texture[0].data.mask.mask = - theme->a_hover_unfocused_iconify->texture[0].data.mask.mask = + theme->a_hover_focused_iconify->texture[0].data.mask.mask = + theme->a_hover_unfocused_iconify->texture[0].data.mask.mask = theme->iconify_hover_mask; - theme->a_focused_pressed_iconify->texture[0].data.mask.mask = + theme->a_focused_pressed_iconify->texture[0].data.mask.mask = theme->a_unfocused_pressed_iconify->texture[0].data.mask.mask = theme->iconify_pressed_mask; - theme->a_focused_unpressed_iconify->texture[0].data.mask.mask = - theme->a_unfocused_unpressed_iconify->texture[0].data.mask.mask = + theme->a_focused_unpressed_iconify->texture[0].data.mask.mask = + theme->a_unfocused_unpressed_iconify->texture[0].data.mask.mask = theme->iconify_mask; - theme->a_menu_bullet_normal->texture[0].data.mask.mask = - theme->a_menu_bullet_selected->texture[0].data.mask.mask = + theme->a_menu_bullet_normal->texture[0].data.mask.mask = + theme->a_menu_bullet_selected->texture[0].data.mask.mask = theme->menu_bullet_mask; - theme->a_disabled_focused_max->texture[0].data.mask.color = - theme->a_disabled_focused_close->texture[0].data.mask.color = - theme->a_disabled_focused_desk->texture[0].data.mask.color = - theme->a_disabled_focused_shade->texture[0].data.mask.color = - theme->a_disabled_focused_iconify->texture[0].data.mask.color = + theme->a_disabled_focused_max->texture[0].data.mask.color = + theme->a_disabled_focused_close->texture[0].data.mask.color = + theme->a_disabled_focused_desk->texture[0].data.mask.color = + theme->a_disabled_focused_shade->texture[0].data.mask.color = + theme->a_disabled_focused_iconify->texture[0].data.mask.color = theme->titlebut_disabled_focused_color; - theme->a_disabled_unfocused_max->texture[0].data.mask.color = - theme->a_disabled_unfocused_close->texture[0].data.mask.color = - theme->a_disabled_unfocused_desk->texture[0].data.mask.color = - theme->a_disabled_unfocused_shade->texture[0].data.mask.color = - theme->a_disabled_unfocused_iconify->texture[0].data.mask.color = + theme->a_disabled_unfocused_max->texture[0].data.mask.color = + theme->a_disabled_unfocused_close->texture[0].data.mask.color = + theme->a_disabled_unfocused_desk->texture[0].data.mask.color = + theme->a_disabled_unfocused_shade->texture[0].data.mask.color = + theme->a_disabled_unfocused_iconify->texture[0].data.mask.color = theme->titlebut_disabled_unfocused_color; - theme->a_hover_focused_max->texture[0].data.mask.color = - theme->a_hover_focused_close->texture[0].data.mask.color = - theme->a_hover_focused_desk->texture[0].data.mask.color = - theme->a_hover_focused_shade->texture[0].data.mask.color = - theme->a_hover_focused_iconify->texture[0].data.mask.color = + theme->a_hover_focused_max->texture[0].data.mask.color = + theme->a_hover_focused_close->texture[0].data.mask.color = + theme->a_hover_focused_desk->texture[0].data.mask.color = + theme->a_hover_focused_shade->texture[0].data.mask.color = + theme->a_hover_focused_iconify->texture[0].data.mask.color = theme->titlebut_hover_focused_color; - theme->a_hover_unfocused_max->texture[0].data.mask.color = - theme->a_hover_unfocused_close->texture[0].data.mask.color = - theme->a_hover_unfocused_desk->texture[0].data.mask.color = - theme->a_hover_unfocused_shade->texture[0].data.mask.color = - theme->a_hover_unfocused_iconify->texture[0].data.mask.color = + theme->a_hover_unfocused_max->texture[0].data.mask.color = + theme->a_hover_unfocused_close->texture[0].data.mask.color = + theme->a_hover_unfocused_desk->texture[0].data.mask.color = + theme->a_hover_unfocused_shade->texture[0].data.mask.color = + theme->a_hover_unfocused_iconify->texture[0].data.mask.color = theme->titlebut_hover_unfocused_color; theme->a_toggled_hover_focused_max->texture[0].data.mask.color = theme->a_toggled_hover_focused_desk->texture[0].data.mask.color = @@ -1306,33 +1294,33 @@ RrTheme* RrThemeNew(const RrInstance *inst, const gchar *name, theme->a_toggled_unfocused_pressed_desk->texture[0].data.mask.color = theme->a_toggled_unfocused_pressed_shade->texture[0].data.mask.color = theme->titlebut_toggled_unfocused_pressed_color; - theme->a_focused_unpressed_max->texture[0].data.mask.color = - theme->a_focused_unpressed_close->texture[0].data.mask.color = - theme->a_focused_unpressed_desk->texture[0].data.mask.color = - theme->a_focused_unpressed_shade->texture[0].data.mask.color = - theme->a_focused_unpressed_iconify->texture[0].data.mask.color = + theme->a_focused_unpressed_max->texture[0].data.mask.color = + theme->a_focused_unpressed_close->texture[0].data.mask.color = + theme->a_focused_unpressed_desk->texture[0].data.mask.color = + theme->a_focused_unpressed_shade->texture[0].data.mask.color = + theme->a_focused_unpressed_iconify->texture[0].data.mask.color = theme->titlebut_focused_unpressed_color; - theme->a_focused_pressed_max->texture[0].data.mask.color = - theme->a_focused_pressed_close->texture[0].data.mask.color = - theme->a_focused_pressed_desk->texture[0].data.mask.color = - theme->a_focused_pressed_shade->texture[0].data.mask.color = + theme->a_focused_pressed_max->texture[0].data.mask.color = + theme->a_focused_pressed_close->texture[0].data.mask.color = + theme->a_focused_pressed_desk->texture[0].data.mask.color = + theme->a_focused_pressed_shade->texture[0].data.mask.color = theme->a_focused_pressed_iconify->texture[0].data.mask.color = theme->titlebut_focused_pressed_color; - theme->a_unfocused_unpressed_max->texture[0].data.mask.color = - theme->a_unfocused_unpressed_close->texture[0].data.mask.color = - theme->a_unfocused_unpressed_desk->texture[0].data.mask.color = - theme->a_unfocused_unpressed_shade->texture[0].data.mask.color = - theme->a_unfocused_unpressed_iconify->texture[0].data.mask.color = + theme->a_unfocused_unpressed_max->texture[0].data.mask.color = + theme->a_unfocused_unpressed_close->texture[0].data.mask.color = + theme->a_unfocused_unpressed_desk->texture[0].data.mask.color = + theme->a_unfocused_unpressed_shade->texture[0].data.mask.color = + theme->a_unfocused_unpressed_iconify->texture[0].data.mask.color = theme->titlebut_unfocused_unpressed_color; - theme->a_unfocused_pressed_max->texture[0].data.mask.color = - theme->a_unfocused_pressed_close->texture[0].data.mask.color = - theme->a_unfocused_pressed_desk->texture[0].data.mask.color = - theme->a_unfocused_pressed_shade->texture[0].data.mask.color = + theme->a_unfocused_pressed_max->texture[0].data.mask.color = + theme->a_unfocused_pressed_close->texture[0].data.mask.color = + theme->a_unfocused_pressed_desk->texture[0].data.mask.color = + theme->a_unfocused_pressed_shade->texture[0].data.mask.color = theme->a_unfocused_pressed_iconify->texture[0].data.mask.color = theme->titlebut_unfocused_pressed_color; - theme->a_menu_bullet_normal->texture[0].data.mask.color = + theme->a_menu_bullet_normal->texture[0].data.mask.color = theme->menu_color; - theme->a_menu_bullet_selected->texture[0].data.mask.color = + theme->a_menu_bullet_selected->texture[0].data.mask.color = theme->menu_selected_color; g_free(path); @@ -1464,10 +1452,11 @@ void RrThemeFree(RrTheme *theme) RrPixmapMaskFree(theme->close_pressed_mask); RrPixmapMaskFree(theme->menu_bullet_mask); - RrFontClose(theme->win_font_focused); + RrFontClose(theme->win_font_focused); RrFontClose(theme->win_font_unfocused); RrFontClose(theme->menu_title_font); RrFontClose(theme->menu_font); + RrFontClose(theme->osd_font); RrAppearanceFree(theme->a_disabled_focused_max); RrAppearanceFree(theme->a_disabled_unfocused_max); @@ -1621,7 +1610,7 @@ static gboolean read_int(XrmDatabase db, const gchar *rname, gint *value) gchar *rclass = create_class_name(rname); gchar *rettype, *end; XrmValue retvalue; - + if (XrmGetResource(db, rname, rclass, &rettype, &retvalue) && retvalue.addr != NULL) { *value = (gint)strtol(retvalue.addr, &end, 10); @@ -1639,7 +1628,7 @@ static gboolean read_string(XrmDatabase db, const gchar *rname, gchar **value) gchar *rclass = create_class_name(rname); gchar *rettype; XrmValue retvalue; - + if (XrmGetResource(db, rname, rclass, &rettype, &retvalue) && retvalue.addr != NULL) { *value = retvalue.addr; @@ -1657,7 +1646,7 @@ static gboolean read_color(XrmDatabase db, const RrInstance *inst, gchar *rclass = create_class_name(rname); gchar *rettype; XrmValue retvalue; - + if (XrmGetResource(db, rname, rclass, &rettype, &retvalue) && retvalue.addr != NULL) { RrColor *c = RrColorParse(inst, retvalue.addr); @@ -1761,6 +1750,7 @@ static gboolean read_appearance(XrmDatabase db, const RrInstance *inst, gboolean ret = FALSE; gchar *rclass = create_class_name(rname); gchar *cname, *ctoname, *bcname, *icname, *hname, *sname; + gchar *csplitname, *ctosplitname; gchar *rettype; XrmValue retvalue; gint i; @@ -1771,6 +1761,8 @@ static gboolean read_appearance(XrmDatabase db, const RrInstance *inst, icname = g_strconcat(rname, ".interlace.color", NULL); hname = g_strconcat(rname, ".highlight", NULL); sname = g_strconcat(rname, ".shadow", NULL); + csplitname = g_strconcat(rname, ".color.splitTo", NULL); + ctosplitname = g_strconcat(rname, ".colorTo.splitTo", NULL); if (XrmGetResource(db, rname, rclass, &rettype, &retvalue) && retvalue.addr != NULL) { @@ -1795,11 +1787,48 @@ static gboolean read_appearance(XrmDatabase db, const RrInstance *inst, value->surface.interlace_color = RrColorNew(inst, 0, 0, 0); if (read_int(db, hname, &i) && i >= 0) value->surface.bevel_light_adjust = i; - if (read_int(db, sname, &i) && i >= 0 && i <= 255) + if (read_int(db, sname, &i) && i >= 0 && i <= 256) value->surface.bevel_dark_adjust = i; + + if (value->surface.grad == RR_SURFACE_SPLIT_VERTICAL) { + gint r, g, b; + + if (!read_color(db, inst, csplitname, + &value->surface.split_primary)) + { + r = value->surface.primary->r; + r += r >> 2; + g = value->surface.primary->g; + g += g >> 2; + b = value->surface.primary->b; + b += b >> 2; + if (r > 0xFF) r = 0xFF; + if (g > 0xFF) g = 0xFF; + if (b > 0xFF) b = 0xFF; + value->surface.split_primary = RrColorNew(inst, r, g, b); + } + + if (!read_color(db, inst, ctosplitname, + &value->surface.split_secondary)) + { + r = value->surface.secondary->r; + r += r >> 4; + g = value->surface.secondary->g; + g += g >> 4; + b = value->surface.secondary->b; + b += b >> 4; + if (r > 0xFF) r = 0xFF; + if (g > 0xFF) g = 0xFF; + if (b > 0xFF) b = 0xFF; + value->surface.split_secondary = RrColorNew(inst, r, g, b); + } + } + ret = TRUE; } + g_free(ctosplitname); + g_free(csplitname); g_free(sname); g_free(hname); g_free(icname);