add osd border stuff

This commit is contained in:
Dana Jansens 2007-06-05 15:57:27 +00:00
parent aca8327244
commit 8349e4ca6b
6 changed files with 37 additions and 13 deletions

View file

@ -137,6 +137,7 @@
<xs:complexType name="allosd"> <xs:complexType name="allosd">
<xs:all> <xs:all>
<xs:element name="border" type="obt:color" minOccurs="0"/>
<xs:element name="label" type="obt:textarea" minOccurs="0"/> <xs:element name="label" type="obt:textarea" minOccurs="0"/>
<xs:element name="background" type="obt:area" minOccurs="0"/> <xs:element name="background" type="obt:area" minOccurs="0"/>
<xs:element name="hilight" type="obt:area" minOccurs="0"/> <xs:element name="hilight" type="obt:area" minOccurs="0"/>
@ -157,12 +158,19 @@
</xs:all> </xs:all>
</xs:complexType> </xs:complexType>
<xs:complexType name="osdDimensions">
<xs:all>
<xs:element name="borderwidth" type="xs:integer" minOccurs="0"/>
</xs:all>
</xs:complexType>
<xs:complexType name="themeDimensions"> <xs:complexType name="themeDimensions">
<xs:all> <xs:all>
<xs:element name="padding" type="obt:point" minOccurs="0"/> <xs:element name="padding" type="obt:point" minOccurs="0"/>
<xs:element name="handle" type="xs:integer" minOccurs="0"/> <xs:element name="handle" type="xs:integer" minOccurs="0"/>
<xs:element name="window" type="obt:windowDimensions" minOccurs="0"/> <xs:element name="window" type="obt:windowDimensions" minOccurs="0"/>
<xs:element name="menu" type="obt:menuDimensions" minOccurs="0"/> <xs:element name="menu" type="obt:menuDimensions" minOccurs="0"/>
<xs:element name="osd" type="obt:osdDimensions" minOccurs="0"/>
</xs:all> </xs:all>
</xs:complexType> </xs:complexType>

View file

@ -112,9 +112,9 @@ void focus_cycle_popup_startup(gboolean reconfig)
popup.a_bg->texture[0].type = RR_TEXTURE_RGBA; popup.a_bg->texture[0].type = RR_TEXTURE_RGBA;
attrib.override_redirect = True; attrib.override_redirect = True;
attrib.border_pixel=RrColorPixel(ob_rr_theme->frame_focused_border_color); attrib.border_pixel=RrColorPixel(ob_rr_theme->osd_border_color);
popup.bg = create_window(RootWindow(ob_display, ob_screen), popup.bg = create_window(RootWindow(ob_display, ob_screen),
ob_rr_theme->fbwidth, ob_rr_theme->obwidth,
CWOverrideRedirect | CWBorderPixel, &attrib); CWOverrideRedirect | CWBorderPixel, &attrib);
popup.text = create_window(popup.bg, 0, 0, NULL); popup.text = create_window(popup.bg, 0, 0, NULL);
@ -298,9 +298,9 @@ static void popup_render(ObFocusCyclePopup *p, const ObClient *c)
/* find the position for the popup (include the outer borders) */ /* find the position for the popup (include the outer borders) */
x = screen_area->x + (screen_area->width - x = screen_area->x + (screen_area->width -
(w + ob_rr_theme->fbwidth * 2)) / 2; (w + ob_rr_theme->obwidth * 2)) / 2;
y = screen_area->y + (screen_area->height - y = screen_area->y + (screen_area->height -
(h + ob_rr_theme->fbwidth * 2)) / 2; (h + ob_rr_theme->obwidth * 2)) / 2;
/* get the dimensions of the target hilite texture */ /* get the dimensions of the target hilite texture */
rgbax = ml; rgbax = ml;

View file

@ -51,9 +51,9 @@ ObPopup *popup_new()
0, 0, 1, 1, 0, RrDepth(ob_rr_inst), 0, 0, 1, 1, 0, RrDepth(ob_rr_inst),
InputOutput, RrVisual(ob_rr_inst), 0, NULL); InputOutput, RrVisual(ob_rr_inst), 0, NULL);
XSetWindowBorderWidth(ob_display, self->bg, ob_rr_theme->fbwidth); XSetWindowBorderWidth(ob_display, self->bg, ob_rr_theme->obwidth);
XSetWindowBorder(ob_display, self->bg, XSetWindowBorder(ob_display, self->bg,
RrColorPixel(ob_rr_theme->frame_focused_border_color)); RrColorPixel(ob_rr_theme->osd_border_color));
XMapWindow(ob_display, self->text); XMapWindow(ob_display, self->text);
@ -355,7 +355,7 @@ static void pager_popup_draw_icon(gint px, gint py, gint w, gint h,
gint eachw, eachh; gint eachw, eachh;
const guint cols = screen_desktop_layout.columns; const guint cols = screen_desktop_layout.columns;
const guint rows = screen_desktop_layout.rows; const guint rows = screen_desktop_layout.rows;
const gint linewidth = ob_rr_theme->fbwidth; const gint linewidth = ob_rr_theme->obwidth;
eachw = (w - ((cols + 1) * linewidth)) / cols; eachw = (w - ((cols + 1) * linewidth)) / cols;
eachh = (h - ((rows + 1) * linewidth)) / rows; eachh = (h - ((rows + 1) * linewidth)) / rows;
@ -500,9 +500,9 @@ void pager_popup_delay_show(ObPagerPopup *self, gulong usec,
XSetWindowAttributes attr; XSetWindowAttributes attr;
attr.border_pixel = attr.border_pixel =
RrColorPixel(ob_rr_theme->frame_focused_border_color); RrColorPixel(ob_rr_theme->osd_border_color);
self->wins[i] = XCreateWindow(ob_display, self->popup->bg, self->wins[i] = XCreateWindow(ob_display, self->popup->bg,
0, 0, 1, 1, ob_rr_theme->fbwidth, 0, 0, 1, 1, ob_rr_theme->obwidth,
RrDepth(ob_rr_inst), InputOutput, RrDepth(ob_rr_inst), InputOutput,
RrVisual(ob_rr_inst), CWBorderPixel, RrVisual(ob_rr_inst), CWBorderPixel,
&attr); &attr);

View file

@ -213,10 +213,13 @@ RrTheme* RrThemeNew(const RrInstance *inst, const gchar *name,
theme->fbwidth = 1; theme->fbwidth = 1;
/* menu border width inherits from frame border width */ /* menu border width inherits from frame border width */
if (!FIND(int, L("dimensions","menu","border"), if (!FIND(int, L("dimensions","menu","border"), &theme->mbwidth, 0, 100))
&theme->mbwidth, 0, 100))
theme->mbwidth = theme->fbwidth; 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"), if (!FIND(point, L("dimensions","window","clientpadding"),
&theme->cbwidthx, &theme->cbwidthy, 0, 100, 0, 100)) &theme->cbwidthx, &theme->cbwidthy, 0, 100, 0, 100))
theme->cbwidthx = theme->cbwidthy = 1; theme->cbwidthx = theme->cbwidthy = 1;
@ -251,13 +254,19 @@ RrTheme* RrThemeNew(const RrInstance *inst, const gchar *name,
theme->frame_unfocused_border_color->b); theme->frame_unfocused_border_color->b);
/* menu border color inherits from frame focused border color */ /* menu border color inherits from frame focused border color */
if (!FIND(color, L("menu","border"), if (!FIND(color, L("menu","border"), &theme->menu_border_color, NULL))
&theme->menu_border_color, NULL))
theme->menu_border_color = theme->menu_border_color =
RrColorNew(inst, RrColorNew(inst,
theme->frame_focused_border_color->r, theme->frame_focused_border_color->r,
theme->frame_focused_border_color->g, theme->frame_focused_border_color->g,
theme->frame_focused_border_color->b); 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"), if (!FIND(color, L("window","active","clientpadding"),
&theme->cb_focused_color, NULL)) &theme->cb_focused_color, NULL))
theme->cb_focused_color = RrColorNew(inst, 255, 255, 255); theme->cb_focused_color = RrColorNew(inst, 255, 255, 255);
@ -1238,6 +1247,7 @@ void RrThemeFree(RrTheme *theme)
g_free(theme->name); g_free(theme->name);
RrColorFree(theme->menu_border_color); RrColorFree(theme->menu_border_color);
RrColorFree(theme->osd_border_color);
RrColorFree(theme->frame_focused_border_color); RrColorFree(theme->frame_focused_border_color);
RrColorFree(theme->frame_unfocused_border_color); RrColorFree(theme->frame_unfocused_border_color);
RrColorFree(theme->title_separator_focused_color); RrColorFree(theme->title_separator_focused_color);

View file

@ -42,6 +42,7 @@ struct _RrTheme {
gint handle_height; gint handle_height;
gint fbwidth; /*!< frame border width */ gint fbwidth; /*!< frame border width */
gint mbwidth; /*!< menu border width */ gint mbwidth; /*!< menu border width */
gint obwidth; /*!< osd border width */
gint cbwidthx; gint cbwidthx;
gint cbwidthy; gint cbwidthy;
gint menu_overlap; gint menu_overlap;
@ -58,6 +59,7 @@ struct _RrTheme {
/* style settings - colors */ /* style settings - colors */
RrColor *menu_border_color; RrColor *menu_border_color;
RrColor *osd_border_color;
RrColor *frame_focused_border_color; RrColor *frame_focused_border_color;
RrColor *frame_unfocused_border_color; RrColor *frame_unfocused_border_color;
RrColor *title_separator_focused_color; RrColor *title_separator_focused_color;

View file

@ -342,12 +342,16 @@ int main(int argc, char **argv)
if (read_int(db, "borderWidth", &i)) { if (read_int(db, "borderWidth", &i)) {
CONT3("dimensions", "window", "border", NUM(i)); CONT3("dimensions", "window", "border", NUM(i));
CONT3("dimensions", "menu", "border", NUM(i)); CONT3("dimensions", "menu", "border", NUM(i));
CONT3("dimensions", "osd", "border", NUM(i));
} else if (read_int(db, "border.width", &i)) { } else if (read_int(db, "border.width", &i)) {
CONT3("dimensions", "window", "border", NUM(i)); CONT3("dimensions", "window", "border", NUM(i));
CONT3("dimensions", "menu", "border", NUM(i)); CONT3("dimensions", "menu", "border", NUM(i));
CONT3("dimensions", "osd", "border", NUM(i));
} }
if (read_int(db, "menu.border.width", &i)) if (read_int(db, "menu.border.width", &i))
CONT3("dimensions", "menu", "border", NUM(i)); CONT3("dimensions", "menu", "border", NUM(i));
if (read_int(db, "osd.border.width", &i))
CONT3("dimensions", "osd", "border", NUM(i));
if (read_color(db, "border.color", &i, &j, &k)) { if (read_color(db, "border.color", &i, &j, &k)) {
COLOR3("window", "active", "border", i, j, k, 255); COLOR3("window", "active", "border", i, j, k, 255);