add toggled-pressed and toggled-hover button states to themes. also rename toggled to be toggled-unpressed

This commit is contained in:
Dana Jansens 2007-03-28 03:32:46 +00:00
parent 33cc572402
commit 5fb30e4488
5 changed files with 387 additions and 155 deletions

View file

@ -114,7 +114,9 @@
<xs:element name="pressed" type="obt:buttonarea" minOccurs="0"/>
<xs:element name="hover" type="obt:buttonarea" minOccurs="0"/>
<xs:element name="disabled" type="obt:buttonarea" minOccurs="0"/>
<xs:element name="toggled" type="obt:buttonarea" minOccurs="0"/>
<xs:element name="toggled-unpressed" type="obt:buttonarea" minOccurs="0"/>
<xs:element name="toggled-pressed" type="obt:buttonarea" minOccurs="0"/>
<xs:element name="toggled-hover" type="obt:buttonarea" minOccurs="0"/>
</xs:all>
</xs:complexType>

View file

@ -50,12 +50,17 @@ void framerender_frame(ObFrame *self)
t = self->a_focused_title;
l = self->a_focused_label;
m = (!(self->decorations & OB_FRAME_DECOR_MAXIMIZE) ?
ob_rr_theme->a_disabled_focused_max :
(self->client->max_vert || self->client->max_horz ?
(self->max_press ?
ob_rr_theme->a_toggled_focused_pressed_max :
(self->max_hover ?
ob_rr_theme->a_toggled_hover_focused_max :
ob_rr_theme->a_toggled_focused_unpressed_max)) :
(self->max_press ?
ob_rr_theme->a_focused_pressed_max :
(self->client->max_vert || self->client->max_horz ?
ob_rr_theme->a_toggled_focused_max :
(self->max_hover ?
ob_rr_theme->a_hover_focused_max :
ob_rr_theme->a_focused_unpressed_max))));
@ -69,19 +74,27 @@ void framerender_frame(ObFrame *self)
ob_rr_theme->a_focused_unpressed_iconify)));
d = (!(self->decorations & OB_FRAME_DECOR_ALLDESKTOPS) ?
ob_rr_theme->a_disabled_focused_desk :
(self->client->desktop == DESKTOP_ALL ?
(self->desk_press ?
ob_rr_theme->a_toggled_focused_pressed_desk :
(self->desk_hover ?
ob_rr_theme->a_toggled_hover_focused_desk :
ob_rr_theme->a_toggled_focused_unpressed_desk)) :
(self->desk_press ?
ob_rr_theme->a_focused_pressed_desk :
(self->client->desktop == DESKTOP_ALL ?
ob_rr_theme->a_toggled_focused_desk :
(self->desk_hover ?
ob_rr_theme->a_hover_focused_desk :
ob_rr_theme->a_focused_unpressed_desk))));
s = (!(self->decorations & OB_FRAME_DECOR_SHADE) ?
ob_rr_theme->a_disabled_focused_shade :
(self->client->shaded ?
(self->shade_press ?
ob_rr_theme->a_toggled_focused_pressed_shade :
(self->shade_hover ?
ob_rr_theme->a_toggled_hover_focused_shade :
ob_rr_theme->a_toggled_focused_unpressed_shade)) :
(self->shade_press ?
ob_rr_theme->a_focused_pressed_shade :
(self->client->shaded ?
ob_rr_theme->a_toggled_focused_shade :
(self->shade_hover ?
ob_rr_theme->a_hover_focused_shade :
ob_rr_theme->a_focused_unpressed_shade))));
@ -93,15 +106,18 @@ void framerender_frame(ObFrame *self)
ob_rr_theme->a_hover_focused_close :
ob_rr_theme->a_focused_unpressed_close)));
} else {
t = self->a_unfocused_title;
l = self->a_unfocused_label;
m = (!(self->decorations & OB_FRAME_DECOR_MAXIMIZE) ?
ob_rr_theme->a_disabled_unfocused_max :
(self->client->max_vert || self->client->max_horz ?
(self->max_press ?
ob_rr_theme->a_toggled_unfocused_pressed_max :
(self->max_hover ?
ob_rr_theme->a_toggled_hover_unfocused_max :
ob_rr_theme->a_toggled_unfocused_unpressed_max)) :
(self->max_press ?
ob_rr_theme->a_unfocused_pressed_max :
(self->client->max_vert || self->client->max_horz ?
ob_rr_theme->a_toggled_unfocused_max :
(self->max_hover ?
ob_rr_theme->a_hover_unfocused_max :
ob_rr_theme->a_unfocused_unpressed_max))));
@ -115,19 +131,27 @@ void framerender_frame(ObFrame *self)
ob_rr_theme->a_unfocused_unpressed_iconify)));
d = (!(self->decorations & OB_FRAME_DECOR_ALLDESKTOPS) ?
ob_rr_theme->a_disabled_unfocused_desk :
(self->client->desktop == DESKTOP_ALL ?
(self->desk_press ?
ob_rr_theme->a_toggled_unfocused_pressed_desk :
(self->desk_hover ?
ob_rr_theme->a_toggled_hover_unfocused_desk :
ob_rr_theme->a_toggled_unfocused_unpressed_desk)) :
(self->desk_press ?
ob_rr_theme->a_unfocused_pressed_desk :
(self->client->desktop == DESKTOP_ALL ?
ob_rr_theme->a_toggled_unfocused_desk :
(self->desk_hover ?
ob_rr_theme->a_hover_unfocused_desk :
ob_rr_theme->a_unfocused_unpressed_desk))));
s = (!(self->decorations & OB_FRAME_DECOR_SHADE) ?
ob_rr_theme->a_disabled_unfocused_shade :
(self->client->shaded ?
(self->shade_press ?
ob_rr_theme->a_toggled_unfocused_pressed_shade :
(self->shade_hover ?
ob_rr_theme->a_toggled_hover_unfocused_shade :
ob_rr_theme->a_toggled_unfocused_unpressed_shade)) :
(self->shade_press ?
ob_rr_theme->a_unfocused_pressed_shade :
(self->client->shaded ?
ob_rr_theme->a_toggled_unfocused_shade :
(self->shade_hover ?
ob_rr_theme->a_hover_unfocused_shade :
ob_rr_theme->a_unfocused_unpressed_shade))));

View file

@ -95,8 +95,12 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
theme->a_disabled_unfocused_max = RrAppearanceNew(inst, 1);
theme->a_hover_focused_max = RrAppearanceNew(inst, 1);
theme->a_hover_unfocused_max = RrAppearanceNew(inst, 1);
theme->a_toggled_focused_max = RrAppearanceNew(inst, 1);
theme->a_toggled_unfocused_max = RrAppearanceNew(inst, 1);
theme->a_toggled_focused_pressed_max = RrAppearanceNew(inst, 1);
theme->a_toggled_unfocused_pressed_max = RrAppearanceNew(inst, 1);
theme->a_toggled_focused_unpressed_max = RrAppearanceNew(inst, 1);
theme->a_toggled_unfocused_unpressed_max = RrAppearanceNew(inst, 1);
theme->a_toggled_hover_focused_max = RrAppearanceNew(inst, 1);
theme->a_toggled_hover_unfocused_max = RrAppearanceNew(inst, 1);
theme->a_focused_unpressed_max = RrAppearanceNew(inst, 1);
theme->a_focused_pressed_max = RrAppearanceNew(inst, 1);
theme->a_unfocused_unpressed_max = RrAppearanceNew(inst, 1);
@ -263,20 +267,54 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
theme->titlebut_unfocused_unpressed_color->r,
theme->titlebut_unfocused_unpressed_color->g,
theme->titlebut_unfocused_unpressed_color->b);
if (!FIND(color, L("window","active","buttons","toggled","image"),
&theme->titlebut_toggled_focused_color, NULL))
theme->titlebut_toggled_focused_color =
if (!FIND(color,
L("window","active","buttons","toggled-pressed","image"),
&theme->titlebut_toggled_focused_pressed_color, NULL))
theme->titlebut_toggled_focused_pressed_color =
RrColorNew(inst,
theme->titlebut_focused_pressed_color->r,
theme->titlebut_focused_pressed_color->g,
theme->titlebut_focused_pressed_color->b);
if (!FIND(color, L("window","inactive","buttons","toggled","image"),
&theme->titlebut_toggled_unfocused_color, NULL))
theme->titlebut_toggled_unfocused_color =
if (!FIND(color,
L("window","inactive","buttons","toggled-pressed","image"),
&theme->titlebut_toggled_unfocused_pressed_color, NULL))
theme->titlebut_toggled_unfocused_pressed_color =
RrColorNew(inst,
theme->titlebut_unfocused_pressed_color->r,
theme->titlebut_unfocused_pressed_color->g,
theme->titlebut_unfocused_pressed_color->b);
if (!FIND(color,
L("window","active","buttons","toggled-unpressed","image"),
&theme->titlebut_toggled_focused_unpressed_color, NULL))
theme->titlebut_toggled_focused_unpressed_color =
RrColorNew(inst,
theme->titlebut_focused_unpressed_color->r,
theme->titlebut_focused_unpressed_color->g,
theme->titlebut_focused_unpressed_color->b);
if (!FIND(color,
L("window","inactive","buttons","toggled-unpressed","image"),
&theme->titlebut_toggled_unfocused_unpressed_color, NULL))
theme->titlebut_toggled_unfocused_unpressed_color =
RrColorNew(inst,
theme->titlebut_unfocused_unpressed_color->r,
theme->titlebut_unfocused_unpressed_color->g,
theme->titlebut_unfocused_unpressed_color->b);
if (!FIND(color,
L("window","active","buttons","toggled-hover","image"),
&theme->titlebut_toggled_hover_focused_color, NULL))
theme->titlebut_toggled_hover_focused_color =
RrColorNew(inst,
theme->titlebut_focused_unpressed_color->r,
theme->titlebut_focused_unpressed_color->g,
theme->titlebut_focused_unpressed_color->b);
if (!FIND(color,
L("window","inactive","buttons","toggled-hover","image"),
&theme->titlebut_toggled_hover_unfocused_color, NULL))
theme->titlebut_toggled_hover_unfocused_color =
RrColorNew(inst,
theme->titlebut_unfocused_unpressed_color->r,
theme->titlebut_unfocused_unpressed_color->g,
theme->titlebut_unfocused_unpressed_color->b);
if (!FIND(color, L("menu","title","text","primary"),
&theme->menu_title_color, NULL))
theme->menu_title_color = RrColorNew(inst, 0, 0, 0);
@ -351,6 +389,14 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
if (!read_mask(&ps, "max_toggled.xbm", &theme->max_toggled_mask))
theme->max_toggled_mask =
RrPixmapMaskCopy(theme->max_pressed_mask);
if (!read_mask(&ps, "max_toggled_pressed.xbm",
&theme->max_toggled_pressed_mask))
theme->max_toggled_pressed_mask =
RrPixmapMaskCopy(theme->max_toggled_mask);
if (!read_mask(&ps, "max_toggled_hover.xbm",
&theme->max_toggled_hover_mask))
theme->max_toggled_hover_mask =
RrPixmapMaskCopy(theme->max_toggled_mask);
if (!read_mask(&ps, "max_disabled.xbm", &theme->max_disabled_mask))
theme->max_disabled_mask = RrPixmapMaskCopy(theme->max_mask);
if (!read_mask(&ps, "max_hover.xbm", &theme->max_hover_mask))
@ -367,6 +413,10 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
theme->max_pressed_mask = RrPixmapMaskCopy(theme->max_mask);
theme->max_disabled_mask = RrPixmapMaskCopy(theme->max_mask);
theme->max_hover_mask = RrPixmapMaskCopy(theme->max_mask);
theme->desk_toggled_pressed_mask =
RrPixmapMaskCopy(theme->desk_toggled_mask);
theme->desk_toggled_hover_mask =
RrPixmapMaskCopy(theme->desk_toggled_mask);
}
if (read_mask(&ps, "iconify.xbm", &theme->iconify_mask)) {
@ -400,6 +450,14 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
if (!read_mask(&ps, "desk_toggled.xbm", &theme->desk_toggled_mask))
theme->desk_toggled_mask =
RrPixmapMaskCopy(theme->desk_pressed_mask);
if (!read_mask(&ps, "desk_toggled_pressed.xbm",
&theme->desk_toggled_pressed_mask))
theme->desk_toggled_pressed_mask =
RrPixmapMaskCopy(theme->desk_toggled_mask);
if (!read_mask(&ps, "desk_toggled_hover.xbm",
&theme->desk_toggled_hover_mask))
theme->desk_toggled_hover_mask =
RrPixmapMaskCopy(theme->desk_toggled_mask);
if (!read_mask(&ps, "desk_disabled.xbm", &theme->desk_disabled_mask))
theme->desk_disabled_mask = RrPixmapMaskCopy(theme->desk_mask);
if (!read_mask(&ps, "desk_hover.xbm", &theme->desk_hover_mask))
@ -417,6 +475,10 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
theme->desk_pressed_mask = RrPixmapMaskCopy(theme->desk_mask);
theme->desk_disabled_mask = RrPixmapMaskCopy(theme->desk_mask);
theme->desk_hover_mask = RrPixmapMaskCopy(theme->desk_mask);
theme->desk_toggled_pressed_mask =
RrPixmapMaskCopy(theme->desk_toggled_mask);
theme->desk_toggled_hover_mask =
RrPixmapMaskCopy(theme->desk_toggled_mask);
}
if (read_mask(&ps, "shade.xbm", &theme->shade_mask)) {
@ -425,6 +487,14 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
if (!read_mask(&ps, "shade_toggled.xbm", &theme->shade_toggled_mask))
theme->shade_toggled_mask =
RrPixmapMaskCopy(theme->shade_pressed_mask);
if (!read_mask(&ps, "shade_toggled_pressed.xbm",
&theme->shade_toggled_pressed_mask))
theme->shade_toggled_pressed_mask =
RrPixmapMaskCopy(theme->shade_toggled_mask);
if (!read_mask(&ps, "shade_toggled_hover.xbm",
&theme->shade_toggled_hover_mask))
theme->shade_toggled_hover_mask =
RrPixmapMaskCopy(theme->shade_toggled_mask);
if (!read_mask(&ps, "shade_disabled.xbm", &theme->shade_disabled_mask))
theme->shade_disabled_mask = RrPixmapMaskCopy(theme->shade_mask);
if (!read_mask(&ps, "shade_hover.xbm", &theme->shade_hover_mask))
@ -442,6 +512,10 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
theme->shade_pressed_mask = RrPixmapMaskCopy(theme->shade_mask);
theme->shade_disabled_mask = RrPixmapMaskCopy(theme->shade_mask);
theme->shade_hover_mask = RrPixmapMaskCopy(theme->shade_mask);
theme->shade_toggled_pressed_mask =
RrPixmapMaskCopy(theme->shade_toggled_mask);
theme->shade_toggled_hover_mask =
RrPixmapMaskCopy(theme->shade_toggled_mask);
}
if (read_mask(&ps, "close.xbm", &theme->close_mask)) {
@ -523,20 +597,6 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
if (!FIND(appearance, L("window","inactive","buttons","pressed"),
theme->a_unfocused_pressed_max, TRUE))
set_default_appearance(theme->a_unfocused_pressed_max);
if (!FIND(appearance, L("window","active","buttons","toggled"),
theme->a_toggled_focused_max, TRUE))
{
RrAppearanceFree(theme->a_toggled_focused_max);
theme->a_toggled_focused_max =
RrAppearanceCopy(theme->a_focused_pressed_max);
}
if (!FIND(appearance, L("window","inactive","buttons","toggled"),
theme->a_toggled_unfocused_max, TRUE))
{
RrAppearanceFree(theme->a_toggled_unfocused_max);
theme->a_toggled_unfocused_max =
RrAppearanceCopy(theme->a_unfocused_pressed_max);
}
if (!FIND(appearance, L("window","active","buttons","unpressed"),
theme->a_focused_unpressed_max, TRUE))
set_default_appearance(theme->a_focused_unpressed_max);
@ -557,6 +617,48 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
theme->a_hover_unfocused_max =
RrAppearanceCopy(theme->a_unfocused_unpressed_max);
}
if (!FIND(appearance, L("window","active","buttons","toggled-pressed"),
theme->a_toggled_focused_pressed_max, TRUE))
{
RrAppearanceFree(theme->a_toggled_focused_pressed_max);
theme->a_toggled_focused_pressed_max =
RrAppearanceCopy(theme->a_focused_pressed_max);
}
if (!FIND(appearance, L("window","inactive","buttons","toggled-pressed"),
theme->a_toggled_unfocused_pressed_max, TRUE))
{
RrAppearanceFree(theme->a_toggled_unfocused_pressed_max);
theme->a_toggled_unfocused_pressed_max =
RrAppearanceCopy(theme->a_unfocused_pressed_max);
}
if (!FIND(appearance, L("window","active","buttons","toggled-unpressed"),
theme->a_toggled_focused_unpressed_max, TRUE))
{
RrAppearanceFree(theme->a_toggled_focused_unpressed_max);
theme->a_toggled_focused_unpressed_max =
RrAppearanceCopy(theme->a_focused_unpressed_max);
}
if (!FIND(appearance, L("window","inactive","buttons","toggled-unpressed"),
theme->a_toggled_unfocused_unpressed_max, TRUE))
{
RrAppearanceFree(theme->a_toggled_unfocused_unpressed_max);
theme->a_toggled_unfocused_unpressed_max =
RrAppearanceCopy(theme->a_unfocused_unpressed_max);
}
if (!FIND(appearance, L("window","active","buttons","toggled-hover"),
theme->a_toggled_hover_focused_max, TRUE))
{
RrAppearanceFree(theme->a_toggled_hover_focused_max);
theme->a_toggled_hover_focused_max =
RrAppearanceCopy(theme->a_focused_unpressed_max);
}
if (!FIND(appearance, L("window","inactive","buttons","toggled-hover"),
theme->a_toggled_hover_unfocused_max, TRUE))
{
RrAppearanceFree(theme->a_toggled_hover_unfocused_max);
theme->a_toggled_hover_unfocused_max =
RrAppearanceCopy(theme->a_unfocused_unpressed_max);
}
theme->a_disabled_focused_close =
RrAppearanceCopy(theme->a_disabled_focused_max);
@ -582,10 +684,18 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
RrAppearanceCopy(theme->a_hover_focused_max);
theme->a_hover_unfocused_desk =
RrAppearanceCopy(theme->a_hover_unfocused_max);
theme->a_toggled_focused_desk =
RrAppearanceCopy(theme->a_toggled_focused_max);
theme->a_toggled_unfocused_desk =
RrAppearanceCopy(theme->a_toggled_unfocused_max);
theme->a_toggled_focused_pressed_desk =
RrAppearanceCopy(theme->a_toggled_focused_pressed_max);
theme->a_toggled_unfocused_pressed_desk =
RrAppearanceCopy(theme->a_toggled_unfocused_pressed_max);
theme->a_toggled_focused_unpressed_desk =
RrAppearanceCopy(theme->a_toggled_focused_unpressed_max);
theme->a_toggled_unfocused_unpressed_desk =
RrAppearanceCopy(theme->a_toggled_unfocused_unpressed_max);
theme->a_toggled_hover_focused_desk =
RrAppearanceCopy(theme->a_toggled_hover_focused_max);
theme->a_toggled_hover_unfocused_desk =
RrAppearanceCopy(theme->a_toggled_hover_unfocused_max);
theme->a_unfocused_unpressed_desk =
RrAppearanceCopy(theme->a_unfocused_unpressed_max);
theme->a_unfocused_pressed_desk =
@ -602,10 +712,18 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
RrAppearanceCopy(theme->a_hover_focused_max);
theme->a_hover_unfocused_shade =
RrAppearanceCopy(theme->a_hover_unfocused_max);
theme->a_toggled_focused_shade =
RrAppearanceCopy(theme->a_toggled_focused_max);
theme->a_toggled_unfocused_shade =
RrAppearanceCopy(theme->a_toggled_unfocused_max);
theme->a_toggled_focused_pressed_shade =
RrAppearanceCopy(theme->a_toggled_focused_pressed_max);
theme->a_toggled_unfocused_pressed_shade =
RrAppearanceCopy(theme->a_toggled_unfocused_pressed_max);
theme->a_toggled_focused_unpressed_shade =
RrAppearanceCopy(theme->a_toggled_focused_unpressed_max);
theme->a_toggled_unfocused_unpressed_shade =
RrAppearanceCopy(theme->a_toggled_unfocused_unpressed_max);
theme->a_toggled_hover_focused_shade =
RrAppearanceCopy(theme->a_toggled_hover_focused_max);
theme->a_toggled_hover_unfocused_shade =
RrAppearanceCopy(theme->a_toggled_hover_unfocused_max);
theme->a_unfocused_unpressed_shade =
RrAppearanceCopy(theme->a_unfocused_unpressed_max);
theme->a_unfocused_pressed_shade =
@ -756,8 +874,12 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
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_focused_max->texture[0].type =
theme->a_toggled_unfocused_max->texture[0].type =
theme->a_toggled_focused_pressed_max->texture[0].type =
theme->a_toggled_unfocused_pressed_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_hover_focused_max->texture[0].type =
theme->a_toggled_hover_unfocused_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 =
@ -774,8 +896,12 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
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_focused_desk->texture[0].type =
theme->a_toggled_unfocused_desk->texture[0].type =
theme->a_toggled_focused_pressed_desk->texture[0].type =
theme->a_toggled_unfocused_pressed_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_hover_focused_desk->texture[0].type =
theme->a_toggled_hover_unfocused_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 =
@ -784,8 +910,12 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
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_focused_shade->texture[0].type =
theme->a_toggled_unfocused_shade->texture[0].type =
theme->a_toggled_focused_pressed_shade->texture[0].type =
theme->a_toggled_unfocused_pressed_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_hover_focused_shade->texture[0].type =
theme->a_toggled_hover_unfocused_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 =
@ -813,9 +943,15 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
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_focused_max->texture[0].data.mask.mask =
theme->a_toggled_unfocused_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_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_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_disabled_focused_close->texture[0].data.mask.mask =
theme->a_disabled_unfocused_close->texture[0].data.mask.mask =
theme->close_disabled_mask;
@ -840,9 +976,15 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
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_focused_desk->texture[0].data.mask.mask =
theme->a_toggled_unfocused_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_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_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_disabled_focused_shade->texture[0].data.mask.mask =
theme->a_disabled_unfocused_shade->texture[0].data.mask.mask =
theme->shade_disabled_mask;
@ -855,9 +997,15 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
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_focused_shade->texture[0].data.mask.mask =
theme->a_toggled_unfocused_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_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_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_disabled_focused_iconify->texture[0].data.mask.mask =
theme->a_disabled_unfocused_iconify->texture[0].data.mask.mask =
theme->iconify_disabled_mask;
@ -897,14 +1045,32 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
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_focused_max->texture[0].data.mask.color =
theme->a_toggled_focused_desk->texture[0].data.mask.color =
theme->a_toggled_focused_shade->texture[0].data.mask.color =
theme->titlebut_toggled_focused_color;
theme->a_toggled_unfocused_max->texture[0].data.mask.color =
theme->a_toggled_unfocused_desk->texture[0].data.mask.color =
theme->a_toggled_unfocused_shade->texture[0].data.mask.color =
theme->titlebut_toggled_unfocused_color;
theme->a_toggled_hover_focused_max->texture[0].data.mask.color =
theme->a_toggled_hover_focused_desk->texture[0].data.mask.color =
theme->a_toggled_hover_focused_shade->texture[0].data.mask.color =
theme->titlebut_toggled_hover_focused_color;
theme->a_toggled_hover_unfocused_max->texture[0].data.mask.color =
theme->a_toggled_hover_unfocused_desk->texture[0].data.mask.color =
theme->a_toggled_hover_unfocused_shade->texture[0].data.mask.color =
theme->titlebut_toggled_hover_unfocused_color;
theme->a_toggled_focused_pressed_max->texture[0].data.mask.color =
theme->a_toggled_focused_pressed_desk->texture[0].data.mask.color =
theme->a_toggled_focused_pressed_shade->texture[0].data.mask.color =
theme->titlebut_toggled_focused_pressed_color;
theme->a_toggled_unfocused_pressed_max->texture[0].data.mask.color =
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_toggled_focused_unpressed_max->texture[0].data.mask.color =
theme->a_toggled_focused_unpressed_desk->texture[0].data.mask.color =
theme->a_toggled_focused_unpressed_shade->texture[0].data.mask.color =
theme->titlebut_toggled_focused_unpressed_color;
theme->a_toggled_unfocused_unpressed_max->texture[0].data.mask.color =
theme->a_toggled_unfocused_unpressed_desk->
texture[0].data.mask.color =
theme->a_toggled_unfocused_unpressed_shade->
texture[0].data.mask.color =
theme->titlebut_toggled_unfocused_unpressed_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 =
@ -1004,12 +1170,16 @@ void RrThemeFree(RrTheme *theme)
RrColorFree(theme->titlebut_disabled_unfocused_color);
RrColorFree(theme->titlebut_hover_focused_color);
RrColorFree(theme->titlebut_hover_unfocused_color);
RrColorFree(theme->titlebut_toggled_focused_color);
RrColorFree(theme->titlebut_toggled_unfocused_color);
RrColorFree(theme->titlebut_focused_pressed_color);
RrColorFree(theme->titlebut_unfocused_pressed_color);
RrColorFree(theme->titlebut_focused_unpressed_color);
RrColorFree(theme->titlebut_unfocused_unpressed_color);
RrColorFree(theme->titlebut_toggled_hover_focused_color);
RrColorFree(theme->titlebut_toggled_hover_unfocused_color);
RrColorFree(theme->titlebut_toggled_focused_pressed_color);
RrColorFree(theme->titlebut_toggled_unfocused_pressed_color);
RrColorFree(theme->titlebut_toggled_focused_unpressed_color);
RrColorFree(theme->titlebut_toggled_unfocused_unpressed_color);
RrColorFree(theme->menu_title_color);
RrColorFree(theme->menu_color);
RrColorFree(theme->menu_disabled_color);
@ -1059,12 +1229,16 @@ void RrThemeFree(RrTheme *theme)
RrAppearanceFree(theme->a_disabled_unfocused_max);
RrAppearanceFree(theme->a_hover_focused_max);
RrAppearanceFree(theme->a_hover_unfocused_max);
RrAppearanceFree(theme->a_toggled_focused_max);
RrAppearanceFree(theme->a_toggled_unfocused_max);
RrAppearanceFree(theme->a_focused_unpressed_max);
RrAppearanceFree(theme->a_focused_pressed_max);
RrAppearanceFree(theme->a_unfocused_unpressed_max);
RrAppearanceFree(theme->a_unfocused_pressed_max);
RrAppearanceFree(theme->a_toggled_hover_focused_max);
RrAppearanceFree(theme->a_toggled_hover_unfocused_max);
RrAppearanceFree(theme->a_toggled_focused_unpressed_max);
RrAppearanceFree(theme->a_toggled_focused_pressed_max);
RrAppearanceFree(theme->a_toggled_unfocused_unpressed_max);
RrAppearanceFree(theme->a_toggled_unfocused_pressed_max);
RrAppearanceFree(theme->a_disabled_focused_close);
RrAppearanceFree(theme->a_disabled_unfocused_close);
RrAppearanceFree(theme->a_hover_focused_close);
@ -1077,22 +1251,30 @@ void RrThemeFree(RrTheme *theme)
RrAppearanceFree(theme->a_disabled_unfocused_desk);
RrAppearanceFree(theme->a_hover_focused_desk);
RrAppearanceFree(theme->a_hover_unfocused_desk);
RrAppearanceFree(theme->a_toggled_focused_desk);
RrAppearanceFree(theme->a_toggled_unfocused_desk);
RrAppearanceFree(theme->a_focused_unpressed_desk);
RrAppearanceFree(theme->a_focused_pressed_desk);
RrAppearanceFree(theme->a_unfocused_unpressed_desk);
RrAppearanceFree(theme->a_unfocused_pressed_desk);
RrAppearanceFree(theme->a_toggled_hover_focused_desk);
RrAppearanceFree(theme->a_toggled_hover_unfocused_desk);
RrAppearanceFree(theme->a_toggled_focused_unpressed_desk);
RrAppearanceFree(theme->a_toggled_focused_pressed_desk);
RrAppearanceFree(theme->a_toggled_unfocused_unpressed_desk);
RrAppearanceFree(theme->a_toggled_unfocused_pressed_desk);
RrAppearanceFree(theme->a_disabled_focused_shade);
RrAppearanceFree(theme->a_disabled_unfocused_shade);
RrAppearanceFree(theme->a_hover_focused_shade);
RrAppearanceFree(theme->a_hover_unfocused_shade);
RrAppearanceFree(theme->a_toggled_focused_shade);
RrAppearanceFree(theme->a_toggled_unfocused_shade);
RrAppearanceFree(theme->a_focused_unpressed_shade);
RrAppearanceFree(theme->a_focused_pressed_shade);
RrAppearanceFree(theme->a_unfocused_unpressed_shade);
RrAppearanceFree(theme->a_unfocused_pressed_shade);
RrAppearanceFree(theme->a_toggled_hover_focused_shade);
RrAppearanceFree(theme->a_toggled_hover_unfocused_shade);
RrAppearanceFree(theme->a_toggled_focused_unpressed_shade);
RrAppearanceFree(theme->a_toggled_focused_pressed_shade);
RrAppearanceFree(theme->a_toggled_unfocused_unpressed_shade);
RrAppearanceFree(theme->a_toggled_unfocused_pressed_shade);
RrAppearanceFree(theme->a_disabled_focused_iconify);
RrAppearanceFree(theme->a_disabled_unfocused_iconify);
RrAppearanceFree(theme->a_hover_focused_iconify);

View file

@ -65,8 +65,12 @@ struct _RrTheme {
RrColor *titlebut_disabled_unfocused_color;
RrColor *titlebut_hover_focused_color;
RrColor *titlebut_hover_unfocused_color;
RrColor *titlebut_toggled_focused_color;
RrColor *titlebut_toggled_unfocused_color;
RrColor *titlebut_toggled_hover_focused_color;
RrColor *titlebut_toggled_hover_unfocused_color;
RrColor *titlebut_toggled_focused_pressed_color;
RrColor *titlebut_toggled_unfocused_pressed_color;
RrColor *titlebut_toggled_focused_unpressed_color;
RrColor *titlebut_toggled_unfocused_unpressed_color;
RrColor *titlebut_focused_pressed_color;
RrColor *titlebut_unfocused_pressed_color;
RrColor *titlebut_focused_unpressed_color;
@ -96,24 +100,30 @@ struct _RrTheme {
/* style settings - masks */
RrPixmapMask *max_mask;
RrPixmapMask *max_toggled_mask;
RrPixmapMask *max_hover_mask;
RrPixmapMask *max_disabled_mask;
RrPixmapMask *max_pressed_mask;
RrPixmapMask *max_toggled_mask;
RrPixmapMask *max_toggled_hover_mask;
RrPixmapMask *max_toggled_pressed_mask;
RrPixmapMask *max_disabled_mask;
RrPixmapMask *iconify_mask;
RrPixmapMask *iconify_hover_mask;
RrPixmapMask *iconify_disabled_mask;
RrPixmapMask *iconify_pressed_mask;
RrPixmapMask *iconify_disabled_mask;
RrPixmapMask *desk_mask;
RrPixmapMask *desk_toggled_mask;
RrPixmapMask *desk_hover_mask;
RrPixmapMask *desk_disabled_mask;
RrPixmapMask *desk_pressed_mask;
RrPixmapMask *desk_toggled_mask;
RrPixmapMask *desk_toggled_hover_mask;
RrPixmapMask *desk_toggled_pressed_mask;
RrPixmapMask *desk_disabled_mask;
RrPixmapMask *shade_mask;
RrPixmapMask *shade_toggled_mask;
RrPixmapMask *shade_hover_mask;
RrPixmapMask *shade_disabled_mask;
RrPixmapMask *shade_pressed_mask;
RrPixmapMask *shade_toggled_mask;
RrPixmapMask *shade_toggled_hover_mask;
RrPixmapMask *shade_toggled_pressed_mask;
RrPixmapMask *shade_disabled_mask;
RrPixmapMask *close_mask;
RrPixmapMask *close_hover_mask;
RrPixmapMask *close_disabled_mask;
@ -127,12 +137,16 @@ struct _RrTheme {
RrAppearance *a_disabled_unfocused_max;
RrAppearance *a_hover_focused_max;
RrAppearance *a_hover_unfocused_max;
RrAppearance *a_toggled_focused_max;
RrAppearance *a_toggled_unfocused_max;
RrAppearance *a_focused_unpressed_max;
RrAppearance *a_focused_pressed_max;
RrAppearance *a_unfocused_unpressed_max;
RrAppearance *a_unfocused_pressed_max;
RrAppearance *a_toggled_hover_focused_max;
RrAppearance *a_toggled_hover_unfocused_max;
RrAppearance *a_toggled_focused_unpressed_max;
RrAppearance *a_toggled_focused_pressed_max;
RrAppearance *a_toggled_unfocused_unpressed_max;
RrAppearance *a_toggled_unfocused_pressed_max;
RrAppearance *a_disabled_focused_close;
RrAppearance *a_disabled_unfocused_close;
RrAppearance *a_hover_focused_close;
@ -145,22 +159,30 @@ struct _RrTheme {
RrAppearance *a_disabled_unfocused_desk;
RrAppearance *a_hover_focused_desk;
RrAppearance *a_hover_unfocused_desk;
RrAppearance *a_toggled_focused_desk;
RrAppearance *a_toggled_unfocused_desk;
RrAppearance *a_focused_unpressed_desk;
RrAppearance *a_focused_pressed_desk;
RrAppearance *a_unfocused_unpressed_desk;
RrAppearance *a_unfocused_pressed_desk;
RrAppearance *a_toggled_hover_focused_desk;
RrAppearance *a_toggled_hover_unfocused_desk;
RrAppearance *a_toggled_focused_unpressed_desk;
RrAppearance *a_toggled_focused_pressed_desk;
RrAppearance *a_toggled_unfocused_unpressed_desk;
RrAppearance *a_toggled_unfocused_pressed_desk;
RrAppearance *a_disabled_focused_shade;
RrAppearance *a_disabled_unfocused_shade;
RrAppearance *a_hover_focused_shade;
RrAppearance *a_hover_unfocused_shade;
RrAppearance *a_toggled_focused_shade;
RrAppearance *a_toggled_unfocused_shade;
RrAppearance *a_focused_unpressed_shade;
RrAppearance *a_focused_pressed_shade;
RrAppearance *a_unfocused_unpressed_shade;
RrAppearance *a_unfocused_pressed_shade;
RrAppearance *a_toggled_hover_focused_shade;
RrAppearance *a_toggled_hover_unfocused_shade;
RrAppearance *a_toggled_focused_unpressed_shade;
RrAppearance *a_toggled_focused_pressed_shade;
RrAppearance *a_toggled_unfocused_unpressed_shade;
RrAppearance *a_toggled_unfocused_pressed_shade;
RrAppearance *a_disabled_focused_iconify;
RrAppearance *a_disabled_unfocused_iconify;
RrAppearance *a_hover_focused_iconify;

View file

@ -26,12 +26,13 @@
#include <ctype.h>
#include <string.h>
static gboolean read_int(XrmDatabase db, gchar *rname, gint *value);
static gboolean read_string(XrmDatabase db, gchar *rname, gchar **value);
static gboolean read_color(XrmDatabase db, gchar *rname,
static gboolean read_int(XrmDatabase db, const gchar *rname, gint *value);
static gboolean read_string(XrmDatabase db, const gchar *rname,
const gchar **value);
static gboolean read_color(XrmDatabase db, const gchar *rname,
gint *r, gint *g, gint *b);
static int parse_inline_number(char *p)
static int parse_inline_number(const char *p)
{
int neg = 1;
int res = 0;
@ -45,7 +46,7 @@ static int parse_inline_number(char *p)
return res;
}
static gchar *create_class_name(gchar *rname)
static gchar *create_class_name(const gchar *rname)
{
gchar *rclass = g_strdup(rname);
gchar *p = rclass;
@ -60,7 +61,7 @@ static gchar *create_class_name(gchar *rname)
return rclass;
}
static gboolean read_int(XrmDatabase db, gchar *rname, gint *value)
static gboolean read_int(XrmDatabase db, const gchar *rname, gint *value)
{
gboolean ret = FALSE;
gchar *rclass = create_class_name(rname);
@ -78,7 +79,8 @@ static gboolean read_int(XrmDatabase db, gchar *rname, gint *value)
return ret;
}
static gboolean read_string(XrmDatabase db, gchar *rname, gchar **value)
static gboolean read_string(XrmDatabase db, const gchar *rname,
const gchar **value)
{
gboolean ret = FALSE;
gchar *rclass = create_class_name(rname);
@ -104,7 +106,7 @@ static gchar hextodec(gchar h)
return -1;
}
static gboolean parse_color(gchar *c, gint *r, gint *g, gint *b)
static gboolean parse_color(const gchar *c, gint *r, gint *g, gint *b)
{
int dig1, dig2, i, color[3];
int len = strlen(c);
@ -150,7 +152,7 @@ static gboolean parse_color(gchar *c, gint *r, gint *g, gint *b)
return FALSE;
}
static gboolean read_color(XrmDatabase db, gchar *rname,
static gboolean read_color(XrmDatabase db, const gchar *rname,
gint *r, gint *g, gint *b)
{
gboolean ret = FALSE;
@ -279,7 +281,7 @@ int main(int argc, char **argv)
{
XrmDatabase db;
int i,j,k;
gchar *s;
const gchar *s;
int ret = 0;
if (argc > 1) {
@ -406,11 +408,11 @@ int main(int argc, char **argv)
if (read_color(db, "window.active.button.toggled.image.color",
&i, &j, &k))
COLOR5("window","active","buttons","toggled","image",i,j,k,255);
COLOR5("window","active","buttons","toggled-unpressed","image",i,j,k,255);
if (read_color(db, "window.inactive.button.toggled.image.color",
&i, &j, &k))
COLOR5("window","inactive","buttons","toggled","image",i,j,k,255);
COLOR5("window","inactive","buttons","toggled-unpressed","image",i,j,k,255);
if (read_color(db, "menu.title.text.color",
&i, &j, &k))