theme->a_menu_bullet_selected = RrAppearanceNew(inst, 1);
theme->a_clear = RrAppearanceNew(inst, 0);
theme->a_clear_tex = RrAppearanceNew(inst, 1);
+ theme->osd_hilite_bg = RrAppearanceNew(inst, 0);
+ theme->osd_hilite_label = RrAppearanceNew(inst, 1);
+ theme->osd_hilite_fg = RrAppearanceNew(inst, 0);
+ theme->osd_unhilite_fg = RrAppearanceNew(inst, 0);
/* load the font stuff */
theme->fbwidth = 1;
/* menu border width inherits from frame border width */
- if (!FIND(int, L("dimensions","menu","border"),
- &theme->mbwidth, 0, 100))
+ if (!FIND(int, L("dimensions","menu","border"), &theme->mbwidth, 0, 100))
theme->mbwidth = theme->fbwidth;
+ /* osd border width inherits from frame border width */
+ if (!FIND(int, L("dimensions","osd","border"), &theme->obwidth, 0, 100))
+ theme->obwidth = theme->fbwidth;
+
if (!FIND(point, L("dimensions","window","clientpadding"),
&theme->cbwidthx, &theme->cbwidthy, 0, 100, 0, 100))
theme->cbwidthx = theme->cbwidthy = 1;
theme->frame_unfocused_border_color->b);
/* menu border color inherits from frame focused border color */
- if (!FIND(color, L("menu","border"),
- &theme->menu_border_color, NULL))
+ if (!FIND(color, L("menu","border"), &theme->menu_border_color, NULL))
theme->menu_border_color =
RrColorNew(inst,
theme->frame_focused_border_color->r,
theme->frame_focused_border_color->g,
theme->frame_focused_border_color->b);
+ /* osd border color inherits from frame focused border color */
+ if (!FIND(color, L("osd","border"), &theme->osd_border_color, NULL))
+ theme->osd_border_color =
+ RrColorNew(inst,
+ theme->frame_focused_border_color->r,
+ theme->frame_focused_border_color->g,
+ theme->frame_focused_border_color->b);
if (!FIND(color, L("window","active","clientpadding"),
&theme->cb_focused_color, NULL))
theme->cb_focused_color = RrColorNew(inst, 255, 255, 255);
if (!FIND(color, L("window","active","label","text","primary"),
&theme->title_focused_color, NULL))
theme->title_focused_color = RrColorNew(inst, 0x0, 0x0, 0x0);
- if (!FIND(color, L("osd","text","primary"),
+ if (!FIND(color, L("osd","label","text","primary"),
&theme->osd_color, NULL))
theme->osd_color = RrColorNew(inst,
theme->title_focused_color->r,
theme->title_focused_shadow_color = RrColorNew(inst, 0, 0, 0);
theme->title_focused_shadow_alpha = 50;
}
- if (!FIND(color, L("osd","text","shadow","primary"),
+ if (!FIND(color, L("osd","label","text","shadow","primary"),
&theme->osd_shadow_color, &theme->osd_shadow_alpha))
{
theme->osd_shadow_color =
theme->a_menu_disabled_selected =
RrAppearanceCopy(theme->a_menu_selected);
- /* read the appearances for rendering non-decorations */
- theme->osd_hilite_bg = RrAppearanceCopy(theme->a_focused_title);
- theme->osd_hilite_label = RrAppearanceCopy(theme->a_focused_label);
- if (theme->a_focused_label->surface.grad != RR_SURFACE_PARENTREL)
- theme->osd_hilite_fg = RrAppearanceCopy(theme->a_focused_label);
- else
- theme->osd_hilite_fg = RrAppearanceCopy(theme->a_focused_title);
- if (theme->a_unfocused_label->surface.grad != RR_SURFACE_PARENTREL)
- theme->osd_unhilite_fg = RrAppearanceCopy(theme->a_unfocused_label);
- else
- theme->osd_unhilite_fg = RrAppearanceCopy(theme->a_unfocused_title);
+ /* read appearances for non-decorations (on-screen-display) */
+ if (!FIND(appearance, L("osd", "background"), theme->osd_hilite_bg, FALSE)) {
+ RrAppearanceFree(theme->osd_hilite_bg);
+ theme->osd_hilite_bg = RrAppearanceCopy(theme->a_focused_title);
+ }
+ if (!FIND(appearance, L("osd", "label"), theme->osd_hilite_label, TRUE)) {
+ RrAppearanceFree(theme->osd_hilite_label);
+ theme->osd_hilite_label = RrAppearanceCopy(theme->a_focused_label);
+ }
+ /* osd_hilite_fg can't be parentrel */
+ if (!FIND(appearance, L("osd", "hilight"), theme->osd_hilite_fg, FALSE)) {
+ RrAppearanceFree(theme->osd_hilite_fg);
+ if (theme->a_focused_label->surface.grad != RR_SURFACE_PARENTREL)
+ theme->osd_hilite_fg = RrAppearanceCopy(theme->a_focused_label);
+ else
+ theme->osd_hilite_fg = RrAppearanceCopy(theme->a_focused_title);
+ }
+ /* osd_unhilite_fg can't be parentrel either */
+ if (!FIND(appearance, L("osd", "unhilight"), theme->osd_unhilite_fg,
+ FALSE))
+ {
+ RrAppearanceFree(theme->osd_unhilite_fg);
+ if (theme->a_unfocused_label->surface.grad != RR_SURFACE_PARENTREL)
+ theme->osd_unhilite_fg=RrAppearanceCopy(theme->a_unfocused_label);
+ else
+ theme->osd_unhilite_fg=RrAppearanceCopy(theme->a_unfocused_title);
+ }
/* read buttons textures */
if (!FIND(appearance, L("window","active","buttons","disabled"),
theme->a_focused_label->texture[0].data.text.shadow_alpha =
theme->title_focused_shadow_alpha;
- if (!FIND(shadow, L("osd","text","shadow","offset"),
+ if (!FIND(shadow, L("osd","label","text","shadow","offset"),
theme->osd_hilite_label))
{
theme->osd_hilite_label->texture[0].data.text.shadow_offset_x =
if (!FIND(shadow, L("menu","active-disabled","shadow","offset"),
theme->a_menu_text_disabled_selected))
theme->a_menu_text_disabled_selected->
- texture[0].data.text.shadow_offset_x = 0;
- theme->a_menu_text_disabled_selected->
- texture[0].data.text.shadow_offset_y = 0;
+ texture[0].data.text.shadow_offset_x =
+ theme->a_menu_text_disabled_selected->
+ texture[0].data.text.shadow_offset_y = 0;
theme->a_menu_text_normal->texture[0].data.text.shadow_color =
theme->menu_text_normal_shadow_color;
theme->a_menu_text_normal->texture[0].data.text.shadow_alpha =
g_free(theme->name);
RrColorFree(theme->menu_border_color);
+ RrColorFree(theme->osd_border_color);
RrColorFree(theme->frame_focused_border_color);
RrColorFree(theme->frame_unfocused_border_color);
RrColorFree(theme->title_separator_focused_color);
} else {
*grad = RR_SURFACE_SOLID;
}
+ }
- if (strstr(tex, "sunken") != NULL)
- *relief = RR_RELIEF_SUNKEN;
- else if (strstr(tex, "flat") != NULL)
- *relief = RR_RELIEF_FLAT;
- else
- *relief = RR_RELIEF_RAISED;
-
- *border = FALSE;
- if (*relief == RR_RELIEF_FLAT) {
- if (strstr(tex, "border") != NULL)
- *border = TRUE;
- } else {
- if (strstr(tex, "bevel2") != NULL)
- *bevel = RR_BEVEL_2;
- else
- *bevel = RR_BEVEL_1;
- }
+ if (strstr(tex, "sunken") != NULL)
+ *relief = RR_RELIEF_SUNKEN;
+ else if (strstr(tex, "flat") != NULL)
+ *relief = RR_RELIEF_FLAT;
+ else if (strstr(tex, "raised") != NULL)
+ *relief = RR_RELIEF_RAISED;
+ else
+ *relief = (*grad == RR_SURFACE_PARENTREL) ?
+ RR_RELIEF_FLAT : RR_RELIEF_RAISED;
- if (strstr(tex, "interlaced") != NULL)
- *interlaced = TRUE;
+ *border = FALSE;
+ if (*relief == RR_RELIEF_FLAT) {
+ if (strstr(tex, "border") != NULL)
+ *border = TRUE;
+ } else {
+ if (strstr(tex, "bevel2") != NULL)
+ *bevel = RR_BEVEL_2;
else
- *interlaced = FALSE;
+ *bevel = RR_BEVEL_1;
}
+
+ if (strstr(tex, "interlaced") != NULL)
+ *interlaced = TRUE;
+ else
+ *interlaced = FALSE;
}
static xmlNodePtr find_node(xmlNodePtr n, const gchar *names[])