Make window client a little more interesting.

dev
Kristian Høgsberg 16 years ago
parent 3f59e82c20
commit ca1d1f65d0
  1. 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…
Cancel
Save