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: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>
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Reference in a new issue