#include #include "font-info.h" enum { graphicText = 1, graphicTag = 2, graphicLine = 3, graphicCircle = 4, graphicRect = 5 }; typedef struct { int type; int x, y; char *text; font_info *font; int x1, y1; int x2, y2; color_t color1, color2, color3; void *item; } graphic_component; typedef struct { int ngc; graphic_component *gc; float scale; } gc_list; void reset_gc_list(gc_list *gcl); void add_text_gcl(gc_list *gcl, int dx, int x, int y, char *t, font_info *f); void add_tag_gcl(gc_list *gcl, int x1, int y1, int x2, int y2, int x, int y, char *t, void *tag, font_info *f, color_t text_color, color_t back_color, color_t outline_color); void add_line_gcl(gc_list *gcl, int x1, int y1, int x2, int y2, color_t color); void add_rect_gcl(gc_list *gcl, int x1, int y1, int x2, int y2, color_t color); void add_circle_gcl(gc_list *gcl, int x, int y, int r, color_t color); void draw_gc_list(gc_list *gcl, int x1, int y1, int x2, int y2, int clear_bg);