From e291d28cdb37534ad5b22c1eff94a9b389edd2ad Mon Sep 17 00:00:00 2001 From: foswret Date: Thu, 30 Apr 2026 23:50:37 -0500 Subject: implement wrapper function for pango text drawing --- src/calp.c | 7 ++++--- src/draw.c | 28 ++++++++++++++++++++++++++-- src/draw.h | 2 ++ 3 files changed, 32 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/calp.c b/src/calp.c index 9b0bb20..6336a40 100644 --- a/src/calp.c +++ b/src/calp.c @@ -31,9 +31,10 @@ int main (int argc, char **argv) { // Draw stuff here fill_bg(cr, width, height); - // FUNCTIONS TO MAKE - // Draw Grid - // Draw Numbers + // Draw text in upper left corner + draw_text(cr, 0.0, 0.0, "1"); + + // Clean up cairo_destroy(cr); diff --git a/src/draw.c b/src/draw.c index 51cd862..a01caa0 100644 --- a/src/draw.c +++ b/src/draw.c @@ -1,8 +1,32 @@ #include +#include -int fill_bg(cairo_t *c, double x, double y) { +int fill_bg(cairo_t *c, double w, double h) { cairo_set_source_rgb (c, 255.0, 255.0, 255.0); - cairo_rectangle(c, 0, 0, x, y); + cairo_rectangle(c, 0, 0, w, h); cairo_fill(c); return 0; } + +int draw_text (cairo_t *c, double x, double y, char *text) { +#define FONT "Sans Bold 27" + PangoLayout *layout; + PangoFontDescription *desc; + + // Create a PangoLayout, setting font & text + layout = pango_cairo_create_layout(c); + + desc = pango_font_description_from_string(FONT); + pango_layout_set_font_description(layout, desc); + pango_font_description_free(desc); + + cairo_set_source_rgb (c, 0.0, 0.0, 0.0); + pango_layout_set_text(layout, text, -1); + + //pango_cairo_update_layout (c, layout); + + cairo_move_to (c, x, y); + pango_cairo_show_layout (c, layout); + g_object_unref(layout); + return 0; +} diff --git a/src/draw.h b/src/draw.h index 3cfc460..e767ef8 100644 --- a/src/draw.h +++ b/src/draw.h @@ -1 +1,3 @@ int fill_bg(cairo_t *c, double w, double h); + +int draw_text(cairo_t *c, double x, double y, char *text); -- cgit v1.2.3