add osd border stuff
This commit is contained in:
parent
aca8327244
commit
8349e4ca6b
6 changed files with 37 additions and 13 deletions
|
@ -137,6 +137,7 @@
|
|||
|
||||
<xs:complexType name="allosd">
|
||||
<xs:all>
|
||||
<xs:element name="border" type="obt:color" 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"/>
|
||||
|
@ -157,12 +158,19 @@
|
|||
</xs:all>
|
||||
</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:all>
|
||||
<xs:element name="padding" type="obt:point" minOccurs="0"/>
|
||||
<xs:element name="handle" type="xs:integer" minOccurs="0"/>
|
||||
<xs:element name="window" type="obt:windowDimensions" minOccurs="0"/>
|
||||
<xs:element name="menu" type="obt:menuDimensions" minOccurs="0"/>
|
||||
<xs:element name="osd" type="obt:osdDimensions" minOccurs="0"/>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
|
||||
|
|
|
@ -112,9 +112,9 @@ void focus_cycle_popup_startup(gboolean reconfig)
|
|||
popup.a_bg->texture[0].type = RR_TEXTURE_RGBA;
|
||||
|
||||
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),
|
||||
ob_rr_theme->fbwidth,
|
||||
ob_rr_theme->obwidth,
|
||||
CWOverrideRedirect | CWBorderPixel, &attrib);
|
||||
|
||||
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) */
|
||||
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 -
|
||||
(h + ob_rr_theme->fbwidth * 2)) / 2;
|
||||
(h + ob_rr_theme->obwidth * 2)) / 2;
|
||||
|
||||
/* get the dimensions of the target hilite texture */
|
||||
rgbax = ml;
|
||||
|
|
|
@ -51,9 +51,9 @@ ObPopup *popup_new()
|
|||
0, 0, 1, 1, 0, RrDepth(ob_rr_inst),
|
||||
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,
|
||||
RrColorPixel(ob_rr_theme->frame_focused_border_color));
|
||||
RrColorPixel(ob_rr_theme->osd_border_color));
|
||||
|
||||
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;
|
||||
const guint cols = screen_desktop_layout.columns;
|
||||
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;
|
||||
eachh = (h - ((rows + 1) * linewidth)) / rows;
|
||||
|
@ -500,9 +500,9 @@ void pager_popup_delay_show(ObPagerPopup *self, gulong usec,
|
|||
XSetWindowAttributes attr;
|
||||
|
||||
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,
|
||||
0, 0, 1, 1, ob_rr_theme->fbwidth,
|
||||
0, 0, 1, 1, ob_rr_theme->obwidth,
|
||||
RrDepth(ob_rr_inst), InputOutput,
|
||||
RrVisual(ob_rr_inst), CWBorderPixel,
|
||||
&attr);
|
||||
|
|
|
@ -213,10 +213,13 @@ RrTheme* RrThemeNew(const RrInstance *inst, const gchar *name,
|
|||
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;
|
||||
|
@ -251,13 +254,19 @@ RrTheme* RrThemeNew(const RrInstance *inst, const gchar *name,
|
|||
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);
|
||||
|
@ -1238,6 +1247,7 @@ void RrThemeFree(RrTheme *theme)
|
|||
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);
|
||||
|
|
|
@ -42,6 +42,7 @@ struct _RrTheme {
|
|||
gint handle_height;
|
||||
gint fbwidth; /*!< frame border width */
|
||||
gint mbwidth; /*!< menu border width */
|
||||
gint obwidth; /*!< osd border width */
|
||||
gint cbwidthx;
|
||||
gint cbwidthy;
|
||||
gint menu_overlap;
|
||||
|
@ -58,6 +59,7 @@ struct _RrTheme {
|
|||
|
||||
/* style settings - colors */
|
||||
RrColor *menu_border_color;
|
||||
RrColor *osd_border_color;
|
||||
RrColor *frame_focused_border_color;
|
||||
RrColor *frame_unfocused_border_color;
|
||||
RrColor *title_separator_focused_color;
|
||||
|
|
|
@ -342,12 +342,16 @@ int main(int argc, char **argv)
|
|||
if (read_int(db, "borderWidth", &i)) {
|
||||
CONT3("dimensions", "window", "border", NUM(i));
|
||||
CONT3("dimensions", "menu", "border", NUM(i));
|
||||
CONT3("dimensions", "osd", "border", NUM(i));
|
||||
} else if (read_int(db, "border.width", &i)) {
|
||||
CONT3("dimensions", "window", "border", NUM(i));
|
||||
CONT3("dimensions", "menu", "border", NUM(i));
|
||||
CONT3("dimensions", "osd", "border", NUM(i));
|
||||
}
|
||||
if (read_int(db, "menu.border.width", &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)) {
|
||||
COLOR3("window", "active", "border", i, j, k, 255);
|
||||
|
|
Loading…
Reference in a new issue