add osd theme elements
This commit is contained in:
parent
698e901c78
commit
aca8327244
3 changed files with 65 additions and 15 deletions
|
@ -137,7 +137,10 @@
|
||||||
|
|
||||||
<xs:complexType name="allosd">
|
<xs:complexType name="allosd">
|
||||||
<xs:all>
|
<xs:all>
|
||||||
<xs:element name="text" type="obt:text" minOccurs="0"/>
|
<xs:element name="label" type="obt:textarea" minOccurs="0"/>
|
||||||
|
<xs:element name="background" type="obt:area" minOccurs="0"/>
|
||||||
|
<xs:element name="hilight" type="obt:area" minOccurs="0"/>
|
||||||
|
<xs:element name="unhilight" type="obt:area" minOccurs="0"/>
|
||||||
</xs:all>
|
</xs:all>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
|
|
||||||
|
|
|
@ -141,6 +141,10 @@ RrTheme* RrThemeNew(const RrInstance *inst, const gchar *name,
|
||||||
theme->a_menu_bullet_selected = RrAppearanceNew(inst, 1);
|
theme->a_menu_bullet_selected = RrAppearanceNew(inst, 1);
|
||||||
theme->a_clear = RrAppearanceNew(inst, 0);
|
theme->a_clear = RrAppearanceNew(inst, 0);
|
||||||
theme->a_clear_tex = RrAppearanceNew(inst, 1);
|
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 */
|
/* load the font stuff */
|
||||||
|
|
||||||
|
@ -263,7 +267,7 @@ RrTheme* RrThemeNew(const RrInstance *inst, const gchar *name,
|
||||||
if (!FIND(color, L("window","active","label","text","primary"),
|
if (!FIND(color, L("window","active","label","text","primary"),
|
||||||
&theme->title_focused_color, NULL))
|
&theme->title_focused_color, NULL))
|
||||||
theme->title_focused_color = RrColorNew(inst, 0x0, 0x0, 0x0);
|
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, NULL))
|
||||||
theme->osd_color = RrColorNew(inst,
|
theme->osd_color = RrColorNew(inst,
|
||||||
theme->title_focused_color->r,
|
theme->title_focused_color->r,
|
||||||
|
@ -388,7 +392,7 @@ RrTheme* RrThemeNew(const RrInstance *inst, const gchar *name,
|
||||||
theme->title_focused_shadow_color = RrColorNew(inst, 0, 0, 0);
|
theme->title_focused_shadow_color = RrColorNew(inst, 0, 0, 0);
|
||||||
theme->title_focused_shadow_alpha = 50;
|
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->osd_shadow_alpha))
|
||||||
{
|
{
|
||||||
theme->osd_shadow_color =
|
theme->osd_shadow_color =
|
||||||
|
@ -604,17 +608,33 @@ RrTheme* RrThemeNew(const RrInstance *inst, const gchar *name,
|
||||||
theme->a_menu_disabled_selected =
|
theme->a_menu_disabled_selected =
|
||||||
RrAppearanceCopy(theme->a_menu_selected);
|
RrAppearanceCopy(theme->a_menu_selected);
|
||||||
|
|
||||||
/* read the appearances for rendering non-decorations */
|
/* read appearances for non-decorations (on-screen-display) */
|
||||||
theme->osd_hilite_bg = RrAppearanceCopy(theme->a_focused_title);
|
if (!FIND(appearance, L("osd", "background"), theme->osd_hilite_bg, FALSE)) {
|
||||||
theme->osd_hilite_label = RrAppearanceCopy(theme->a_focused_label);
|
RrAppearanceFree(theme->osd_hilite_bg);
|
||||||
if (theme->a_focused_label->surface.grad != RR_SURFACE_PARENTREL)
|
theme->osd_hilite_bg = RrAppearanceCopy(theme->a_focused_title);
|
||||||
theme->osd_hilite_fg = RrAppearanceCopy(theme->a_focused_label);
|
}
|
||||||
else
|
if (!FIND(appearance, L("osd", "label"), theme->osd_hilite_label, TRUE)) {
|
||||||
theme->osd_hilite_fg = RrAppearanceCopy(theme->a_focused_title);
|
RrAppearanceFree(theme->osd_hilite_label);
|
||||||
if (theme->a_unfocused_label->surface.grad != RR_SURFACE_PARENTREL)
|
theme->osd_hilite_label = RrAppearanceCopy(theme->a_focused_label);
|
||||||
theme->osd_unhilite_fg = RrAppearanceCopy(theme->a_unfocused_label);
|
}
|
||||||
else
|
/* osd_hilite_fg can't be parentrel */
|
||||||
theme->osd_unhilite_fg = RrAppearanceCopy(theme->a_unfocused_title);
|
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 */
|
/* read buttons textures */
|
||||||
if (!FIND(appearance, L("window","active","buttons","disabled"),
|
if (!FIND(appearance, L("window","active","buttons","disabled"),
|
||||||
|
@ -816,7 +836,7 @@ RrTheme* RrThemeNew(const RrInstance *inst, const gchar *name,
|
||||||
theme->a_focused_label->texture[0].data.text.shadow_alpha =
|
theme->a_focused_label->texture[0].data.text.shadow_alpha =
|
||||||
theme->title_focused_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))
|
||||||
{
|
{
|
||||||
theme->osd_hilite_label->texture[0].data.text.shadow_offset_x =
|
theme->osd_hilite_label->texture[0].data.text.shadow_offset_x =
|
||||||
|
|
|
@ -465,6 +465,9 @@ int main(int argc, char **argv)
|
||||||
&i, &j, &k))
|
&i, &j, &k))
|
||||||
COLOR4("menu","active","text","primary",i,j,k,255);
|
COLOR4("menu","active","text","primary",i,j,k,255);
|
||||||
|
|
||||||
|
if (read_color(db, "osd.label.text.color", &i, &j, &k))
|
||||||
|
COLOR4("osd","label","text","primary",i,j,k,255);
|
||||||
|
|
||||||
APPEARANCE3("window.active.title.bg", "window", "active", "titlebar");
|
APPEARANCE3("window.active.title.bg", "window", "active", "titlebar");
|
||||||
APPEARANCE3("window.inactive.title.bg", "window", "inactive", "titlebar");
|
APPEARANCE3("window.inactive.title.bg", "window", "inactive", "titlebar");
|
||||||
APPEARANCE3("window.active.label.bg", "window", "active", "label");
|
APPEARANCE3("window.active.label.bg", "window", "active", "label");
|
||||||
|
@ -499,6 +502,11 @@ int main(int argc, char **argv)
|
||||||
APPEARANCE4("window.inactive.button.hover.bg",
|
APPEARANCE4("window.inactive.button.hover.bg",
|
||||||
"window", "inactive", "buttons", "hover");
|
"window", "inactive", "buttons", "hover");
|
||||||
|
|
||||||
|
APPEARANCE2("osd.bg", "osd", "background");
|
||||||
|
APPEARANCE2("osd.label.bg", "osd", "label");
|
||||||
|
APPEARANCE2("osd.hilight.bg", "osd", "hilight");
|
||||||
|
APPEARANCE2("osd.unhilight.bg", "osd", "unhilight");
|
||||||
|
|
||||||
if (read_string(db, "window.active.label.text.font", &s)) {
|
if (read_string(db, "window.active.label.text.font", &s)) {
|
||||||
char *p;
|
char *p;
|
||||||
if (strstr(s, "shadow=y")) {
|
if (strstr(s, "shadow=y")) {
|
||||||
|
@ -592,6 +600,25 @@ int main(int argc, char **argv)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (read_string(db, "osd.label.text.font", &s)) {
|
||||||
|
char *p;
|
||||||
|
if (strstr(s, "shadow=y")) {
|
||||||
|
if ((p = strstr(s, "shadowoffset=")))
|
||||||
|
i = parse_inline_number(p + strlen("shadowoffset="));
|
||||||
|
else
|
||||||
|
i = 1;
|
||||||
|
ATTR5("osd","label","text","shadow","offset","x",NUM(i));
|
||||||
|
ATTR5("osd","label","text","shadow","offset","y",NUM(i));
|
||||||
|
}
|
||||||
|
if ((p = strstr(s, "shadowtint=")))
|
||||||
|
{
|
||||||
|
i = parse_inline_number(p + strlen("shadowtint="));
|
||||||
|
j = (i > 0 ? 0 : 255);
|
||||||
|
i = ABS(i*255/100);
|
||||||
|
COLOR5("osd","label","text","shadow","primary",j,j,j,i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (xmlSaveFormatFile("-", doc, 1) < 0) {
|
if (xmlSaveFormatFile("-", doc, 1) < 0) {
|
||||||
fprintf(stderr, "Error writing the xml tree\n");
|
fprintf(stderr, "Error writing the xml tree\n");
|
||||||
ret = 1;
|
ret = 1;
|
||||||
|
|
Loading…
Reference in a new issue