frame
This commit is contained in:
parent
ce4e834de5
commit
ec52f00edf
40
x.c
40
x.c
@ -108,8 +108,10 @@ PangoLayout *r_create_layout_from_notification(cairo_t *c, notification *n)
|
|||||||
notification_update_text_to_render(n);
|
notification_update_text_to_render(n);
|
||||||
|
|
||||||
int width = -1;
|
int width = -1;
|
||||||
if (xctx.geometry.w > 0)
|
if (xctx.geometry.w > 0) {
|
||||||
width = xctx.geometry.w - 2 * settings.h_padding;
|
width = xctx.geometry.w - 2 * settings.h_padding;
|
||||||
|
width -= 2 * settings.frame_width;
|
||||||
|
}
|
||||||
r_setup_pango_layout(layout, width);
|
r_setup_pango_layout(layout, width);
|
||||||
|
|
||||||
pango_layout_set_text(layout, n->text_to_render, -1);
|
pango_layout_set_text(layout, n->text_to_render, -1);
|
||||||
@ -158,8 +160,10 @@ void x_win_draw(void)
|
|||||||
int width;
|
int width;
|
||||||
if (xctx.geometry.w > 0)
|
if (xctx.geometry.w > 0)
|
||||||
width = xctx.geometry.w;
|
width = xctx.geometry.w;
|
||||||
else
|
else {
|
||||||
width = text_width + 2 * settings.h_padding;
|
width = text_width + 2 * settings.h_padding;
|
||||||
|
width += 2 * settings.frame_width;
|
||||||
|
}
|
||||||
|
|
||||||
height += (g_slist_length(layouts) - 1) * settings.separator_height;
|
height += (g_slist_length(layouts) - 1) * settings.separator_height;
|
||||||
height += g_slist_length(layouts) * settings.padding * 2;
|
height += g_slist_length(layouts) * settings.padding * 2;
|
||||||
@ -168,9 +172,9 @@ void x_win_draw(void)
|
|||||||
|
|
||||||
XResizeWindow(xctx.dc->dpy, xctx.win, width, height);
|
XResizeWindow(xctx.dc->dpy, xctx.win, width, height);
|
||||||
|
|
||||||
cairo_rectangle(c, 0.0, 0.0, width, height);
|
|
||||||
/* FIXME frame color */
|
/* FIXME frame color */
|
||||||
cairo_set_source_rgb(c, 0.2, 0.2, 0.2);
|
cairo_set_source_rgb(c, 0.0, 0.0, 0.8);
|
||||||
|
cairo_rectangle(c, 0.0, 0.0, width, height);
|
||||||
cairo_fill(c);
|
cairo_fill(c);
|
||||||
|
|
||||||
/* FIXME text color */
|
/* FIXME text color */
|
||||||
@ -179,16 +183,39 @@ void x_win_draw(void)
|
|||||||
|
|
||||||
double y = 0;
|
double y = 0;
|
||||||
|
|
||||||
|
bool first = true;
|
||||||
for (GSList *iter = layouts; iter; iter = iter->next) {
|
for (GSList *iter = layouts; iter; iter = iter->next) {
|
||||||
PangoLayout *l = iter->data;
|
PangoLayout *l = iter->data;
|
||||||
|
|
||||||
|
int h;
|
||||||
|
pango_layout_get_pixel_size(l, NULL, &h);
|
||||||
|
|
||||||
|
int bg_x = 0;
|
||||||
|
int bg_y = y;
|
||||||
|
int bg_width = width;
|
||||||
|
int bg_height = (2 * settings.h_padding) + h;
|
||||||
|
|
||||||
|
/* adding frame */
|
||||||
|
bg_x += settings.frame_width;
|
||||||
|
if (first) {
|
||||||
|
bg_y += settings.frame_width;
|
||||||
|
bg_height -= settings.frame_width;
|
||||||
|
}
|
||||||
|
bg_width -= 2 * settings.frame_width;
|
||||||
|
if (!iter->next)
|
||||||
|
bg_height -= settings.frame_width;
|
||||||
|
|
||||||
|
/* FIXME background color */
|
||||||
|
cairo_set_source_rgb(c, 0.2, 0.2, 0.2);
|
||||||
|
cairo_rectangle(c, bg_x, bg_y, bg_width, bg_height);
|
||||||
|
cairo_fill(c);
|
||||||
|
|
||||||
y += settings.padding;
|
y += settings.padding;
|
||||||
cairo_move_to(c, settings.h_padding, y);
|
cairo_move_to(c, settings.h_padding, y);
|
||||||
/* FIXME text color */
|
/* FIXME text color */
|
||||||
cairo_set_source_rgb(c, 0.8, 0.8, 0.8);
|
cairo_set_source_rgb(c, 0.8, 0.8, 0.8);
|
||||||
pango_cairo_update_layout(c, l);
|
pango_cairo_update_layout(c, l);
|
||||||
pango_cairo_show_layout(c, l);
|
pango_cairo_show_layout(c, l);
|
||||||
int h;
|
|
||||||
pango_layout_get_pixel_size(l, NULL, &h);
|
|
||||||
y += h + settings.padding;
|
y += h + settings.padding;
|
||||||
if (settings.separator_height > 0 && iter->next) {
|
if (settings.separator_height > 0 && iter->next) {
|
||||||
cairo_move_to(c, 0, y + settings.separator_height / 2);
|
cairo_move_to(c, 0, y + settings.separator_height / 2);
|
||||||
@ -200,6 +227,7 @@ void x_win_draw(void)
|
|||||||
cairo_stroke(c);
|
cairo_stroke(c);
|
||||||
}
|
}
|
||||||
cairo_move_to(c, settings.h_padding, y);
|
cairo_move_to(c, settings.h_padding, y);
|
||||||
|
first = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
cairo_show_page(c);
|
cairo_show_page(c);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user