Make window client a little more interesting.
This commit is contained in:
parent
3f59e82c20
commit
ca1d1f65d0
30
window.c
30
window.c
|
@ -81,8 +81,10 @@ draw_window(struct window *window)
|
|||
{
|
||||
cairo_surface_t *surface;
|
||||
cairo_t *cr;
|
||||
int border = 4;
|
||||
int half = (border + 1) / 2;
|
||||
int border = 2, radius = 5;
|
||||
int margin = (border + 1) / 2;
|
||||
cairo_text_extents_t extents;
|
||||
const static char title[] = "Wayland First Post";
|
||||
|
||||
surface = cairo_image_surface_create(CAIRO_FORMAT_RGB24,
|
||||
window->width,
|
||||
|
@ -90,16 +92,28 @@ draw_window(struct window *window)
|
|||
|
||||
cr = cairo_create(surface);
|
||||
cairo_set_line_width (cr, border);
|
||||
cairo_move_to(cr, half, half);
|
||||
cairo_line_to(cr, window->width - half, half);
|
||||
cairo_line_to(cr, window->width - half,
|
||||
window->height - half);
|
||||
cairo_line_to(cr, half, window->height - half);
|
||||
cairo_move_to(cr, margin, margin + radius);
|
||||
cairo_arc(cr, margin + radius, margin + radius, radius,
|
||||
M_PI, 3 * M_PI / 2);
|
||||
cairo_line_to(cr, window->width - radius - margin, margin);
|
||||
cairo_arc(cr, window->width - margin - radius, margin + radius, radius,
|
||||
3 * M_PI / 2, 2 * M_PI);
|
||||
cairo_line_to(cr, window->width - margin,
|
||||
window->height - margin);
|
||||
cairo_line_to(cr, margin, window->height - margin);
|
||||
cairo_close_path(cr);
|
||||
cairo_set_source_rgba(cr, 0, 0, 0, 0.85);
|
||||
cairo_set_source_rgba(cr, 0.2, 0.2, 0.2, 0.9);
|
||||
cairo_fill_preserve(cr);
|
||||
cairo_set_source_rgba(cr, 0, 0, 0, 1);
|
||||
cairo_set_font_size(cr, 14);
|
||||
cairo_text_extents(cr, title, &extents);
|
||||
cairo_move_to(cr, margin, margin + radius + extents.height + 10);
|
||||
cairo_line_to(cr, margin + window->width, margin + radius + extents.height + 10);
|
||||
cairo_stroke(cr);
|
||||
|
||||
cairo_move_to(cr, (window->width - extents.width) / 2, 10 - extents.y_bearing);
|
||||
cairo_show_text(cr, title);
|
||||
|
||||
cairo_destroy(cr);
|
||||
|
||||
window->stride = cairo_image_surface_get_stride(surface);
|
||||
|
|
Loading…
Reference in New Issue