X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=display.h;h=c441a7dd2410c5401e083a686fb1a5aea495b6de;hb=b72ade0e78825dd97add4c7607c574df351abed0;hp=c239fbd3c3bc516ae8341a4b8c0536cec2fc6507;hpb=8e95ded57bdbaa66ba1c2ec25c55a56d53bce943;p=ext%2Fsubsurface.git diff --git a/display.h b/display.h index c239fbd..c441a7d 100644 --- a/display.h +++ b/display.h @@ -1,10 +1,28 @@ #ifndef DISPLAY_H #define DISPLAY_H -#include -#include #include -extern GtkWidget *dive_profile_frame(void); +extern void repaint_dive(void); +extern void do_print(void); + +/* + * Cairo scaling really is horribly horribly mis-designed. + * + * Which is sad, because I really like Cairo otherwise. But + * the fact that the line width is scaled with the same scale + * as the coordinate system is a f*&%ing disaster. So we + * can't use it, and instead have this butt-ugly wrapper thing.. + */ +struct graphics_context { + int printer; + cairo_t *cr; + double maxx, maxy; + double leftx, rightx; + double topy, bottomy; +}; + +extern void plot(struct graphics_context *gc, cairo_rectangle_int_t *drawing_area, struct dive *dive); +extern void set_source_rgb(struct graphics_context *gc, double r, double g, double b); #endif