]> git.tdb.fi Git - ext/subsurface.git/blobdiff - display.h
Fix profile and average depth for freedives
[ext/subsurface.git] / display.h
index 96fa29a5d574168b8d07b06b4410fff4a874de75..4e1511656ad5d20b38948b8819a5ad25aefe5ee0 100644 (file)
--- a/display.h
+++ b/display.h
@@ -1,18 +1,36 @@
 #ifndef DISPLAY_H
 #define DISPLAY_H
 
-#include <gtk/gtk.h>
-#include <gdk/gdk.h>
 #include <cairo.h>
 
-extern int selected_dive;
-#define current_dive (get_dive(selected_dive))
-
-extern GtkWidget *dive_profile_widget(void);
-extern GtkWidget *dive_info_frame(void);
-extern GtkWidget *extended_dive_info_widget(void);
-extern GtkWidget *create_dive_list(void);
-extern void update_dive_info(struct dive *dive);
 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 init_profile_background(struct graphics_context *gc);
+extern void attach_tooltip(int x, int y, int w, int h, const char *text);
+
+struct options {
+       enum { PRETTY, TABLE } type;
+       gboolean print_profiles;
+};
+
+extern char zoomed_plot;
 
 #endif