diff options
Diffstat (limited to 'draw.h')
| -rw-r--r-- | draw.h | 76 |
1 files changed, 3 insertions, 73 deletions
@@ -12,83 +12,13 @@ struct dimensions { -int draw_calendar(cairo_t *c, double x, double y, struct dimensions d) { - double x1, y1, x2, y2; - x1 = x; - y1 = y; - x2 = d.pw - x1; /* Set the line endpoint to right side of the page */ +int draw_calendar(cairo_t *c, double x, double y, struct dimensions d); - for (int i = 0; i < d.r + 1; i++) { /* Draw Horizontal Lines */ - cairo_move_to (c, x, y); - cairo_line_to (c, x2, y); - y = y + d.bh; - } - x = x1; - y = y1; - y2 = y1 + d.mh; /* Set the line endpoint as the bottom of the month */ - for (int i = 0; i < d.c + 1; i++) { /* Draw Vertical Lines */ - cairo_move_to (c, x, y); - cairo_line_to (c, x, y2); - x = x + d.bw; - } - cairo_stroke(c); - return(0); -} +int draw_numbers(cairo_t *c, double x, double y, struct dimensions d, int wd, int nd); -int draw_numbers(cairo_t *c, double x, double y, struct dimensions d, int wd, int nd) { - char str[3]; - cairo_text_extents_t te; - cairo_font_extents_t fe; - cairo_select_font_face (c, "sans-serif", - CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD); - cairo_set_font_size (c, d.bw / 2); - - int iterative = 0; - cairo_font_extents (c, &fe); - double yi = y; - double xi = x; - int current_weekday = wd; - x = d.m + (wd * d.bw); - for (int j = 0; j < d.r; j++) { - y = y + d.bh - ((d.bh - fe.ascent) / 2); - for (int k = current_weekday; k < d.c; k++) { - if (iterative < nd) { - sprintf(str, "%d", iterative + 1); - cairo_text_extents (c, str, &te); - double box_margins = (d.bw - te.width) / 2; - - cairo_move_to(c, x + box_margins - te.x_bearing, y); /* center the number within the box */ - cairo_show_text(c, str); - cairo_move_to(c, x, y); /* Sort of backtrack to realign with the spacing of the boxes */ - x = x + d.bw; - iterative++; - current_weekday++; - } - } - current_weekday = 0; - y = y - (d.bh - ((d.bh - fe.ascent) / 2)); - y = y + d.bh; - x = xi; - } - return(0); -} - - - -int draw_month_name(cairo_t *c, char *name, struct dimensions d) { - double x, y = d.m; - cairo_set_font_size(c, 1.0); - cairo_text_extents_t te; - cairo_font_extents_t fe; - cairo_text_extents(c, name, &te); - x = (d.pw / 2) - (te.width / 2); - y = 1.5; - cairo_move_to(c, x, y); - cairo_show_text(c, &name[0]); - return(0); -} +int draw_month_name(cairo_t *c, char *name, struct dimensions d); |
