#include #include #include #include #include #include #include #include #include "include/color.h" #include "include/date.h" #include "include/draw.h" #define US_LETTER_PAPER_WIDTH 8.5; #define US_LETTER_PAPER_HEIGHT 11; int main (int argc, char *argv[]) { int rows = 5; int columns = 7; double margin = 0.5; int number_of_days = 28; double month_origin_x = margin; double month_origin_y = 3.0; double paper_width = US_LETTER_PAPER_WIDTH; double paper_height = US_LETTER_PAPER_HEIGHT; double month_width = paper_width - (month_origin_x * 2); double month_height = paper_height - month_origin_y - margin; double day_box_width = month_width / columns; double day_box_height = month_height / rows; struct dimensions dim = { paper_width, /* pw */ paper_height, /* ph */ month_width, /* mw */ month_height, /* mh */ day_box_width, /* bw */ day_box_height, /* bh */ rows, /* r */ columns, /* c */ margin, /* m */ }; char date_strings[number_of_days][2]; char months[12][10] = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; int days_in_month[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; char weekday_abbr[7][5] = { "Su", "Mo", "Tue", "Wed", "Thurs", "Fri", "Sat" }; cairo_surface_t * surface = cairo_pdf_surface_create("0.pdf", paper_width * 72, paper_height * 72); cairo_t *cr = cairo_create(surface); cairo_scale(cr, 72, 72); cairo_set_line_width(cr, 0.03); set_color(cr, "BLACK"); draw_calendar(cr, month_origin_x, month_origin_y, dim); set_color(cr, "GRAY"); draw_numbers(cr, month_origin_x, month_origin_y, dim, 6, number_of_days); draw_month_name(cr, months[1], dim); /* Clean Up */ cairo_destroy(cr); cairo_surface_destroy(surface); return(0); }