2011-08-31 17:20:46 +00:00
|
|
|
#ifndef DISPLAY_H
|
|
|
|
#define DISPLAY_H
|
|
|
|
|
2013-04-01 10:51:49 +00:00
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
2012-09-11 08:16:34 +00:00
|
|
|
#define SCALE_SCREEN 1.0
|
2013-05-04 20:24:23 +00:00
|
|
|
#warning "PORT THE get_screen_dpi to Qt"
|
|
|
|
#define SCALE_PRINT 1.0
|
|
|
|
//#define SCALE_PRINT (1.0 / get_screen_dpi())
|
2012-09-11 08:16:34 +00:00
|
|
|
|
2011-08-31 18:10:17 +00:00
|
|
|
extern void repaint_dive(void);
|
2011-09-13 23:02:42 +00:00
|
|
|
extern void do_print(void);
|
2013-05-04 20:24:23 +00:00
|
|
|
|
|
|
|
// Commented out because I don't know how to get the dpi on a paint device yet.
|
|
|
|
// extern gdouble get_screen_dpi(void);
|
2011-09-13 23:02:42 +00:00
|
|
|
|
2012-12-06 18:01:16 +00:00
|
|
|
/* Plot info with smoothing, velocity indication
|
|
|
|
* and one-, two- and three-minute minimums and maximums */
|
|
|
|
struct plot_info {
|
|
|
|
int nr;
|
|
|
|
int maxtime;
|
|
|
|
int meandepth, maxdepth;
|
2012-12-10 00:54:16 +00:00
|
|
|
int minpressure, maxpressure;
|
|
|
|
int mintemp, maxtemp;
|
2012-12-06 18:01:16 +00:00
|
|
|
double endtempcoord;
|
2012-12-09 22:34:41 +00:00
|
|
|
double maxpp;
|
2013-05-04 20:24:23 +00:00
|
|
|
bool has_ndl;
|
2012-12-06 18:01:16 +00:00
|
|
|
struct plot_data *entry;
|
|
|
|
};
|
|
|
|
|
2013-05-04 20:24:23 +00:00
|
|
|
/*
|
|
|
|
// I'm not sure if this is needed anymore - but keeping this here
|
|
|
|
// so I wont break stuff trying to redo the well.
|
|
|
|
*/
|
|
|
|
|
2011-09-13 23:02:42 +00:00
|
|
|
/*
|
|
|
|
* 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 {
|
2011-09-14 02:49:48 +00:00
|
|
|
int printer;
|
2011-09-13 23:02:42 +00:00
|
|
|
double maxx, maxy;
|
|
|
|
double leftx, rightx;
|
|
|
|
double topy, bottomy;
|
2012-11-11 12:20:32 +00:00
|
|
|
unsigned int maxtime;
|
2012-12-06 18:01:16 +00:00
|
|
|
struct plot_info pi;
|
2011-09-13 23:02:42 +00:00
|
|
|
};
|
|
|
|
|
2012-09-11 08:16:34 +00:00
|
|
|
typedef enum { SC_SCREEN, SC_PRINT } scale_mode_t;
|
|
|
|
|
2012-11-11 12:20:32 +00:00
|
|
|
extern void plot(struct graphics_context *gc, struct dive *dive, scale_mode_t scale);
|
2013-02-09 14:17:25 +00:00
|
|
|
extern struct divecomputer *select_dc(struct divecomputer *main);
|
2011-11-28 17:17:33 +00:00
|
|
|
extern void init_profile_background(struct graphics_context *gc);
|
2013-03-19 02:39:57 +00:00
|
|
|
extern void attach_tooltip(int x, int y, int w, int h, const char *text, struct event *event);
|
2013-05-08 21:56:06 +00:00
|
|
|
extern void get_plot_details(struct graphics_context *gc, int time, char *buf, int bufsize);
|
2013-03-17 23:13:02 +00:00
|
|
|
extern int x_to_time(double x);
|
2013-03-19 02:39:57 +00:00
|
|
|
extern int x_abs(double x);
|
2011-08-31 17:20:46 +00:00
|
|
|
|
2012-08-28 13:50:00 +00:00
|
|
|
struct options {
|
2013-02-03 11:11:27 +00:00
|
|
|
enum { PRETTY, TABLE, TWOPERPAGE } type;
|
2012-08-30 16:30:59 +00:00
|
|
|
int print_selected;
|
2013-03-13 07:18:49 +00:00
|
|
|
int color_selected;
|
2013-05-04 20:24:23 +00:00
|
|
|
bool notes_up;
|
2013-03-18 12:57:35 +00:00
|
|
|
int profile_height, notes_height, tanks_height;
|
2012-08-28 13:50:00 +00:00
|
|
|
};
|
|
|
|
|
Add a "View next dive computer" menu item
This adds the capability to actually view all your dive computers, by
adding a menu item under "Log"->"View"->"Next DC" to show the next dive
computer.
Realistically, if you actually commonly use this, you'd use the
accelerator shortcut. Which right now is Ctrl-C ("C for Computer"),
which is probably a horrible choice.
I really would want to have nice "next/prev dive" accelerators too,
because the cursor keys don't work very well with the gtk focus issues.
Being able to switch between dives would also make the "just the dive
profile, maam" view (ctrl-2) much more useful.
The prev/next dive in the profile view should probably be done with a
keyboard action callback, which also avoids some of the limitations of
accelerators (ie you can make any key do the action). Some gtk person,
please?
Anyway, this commit only does the dive computer choice thing, and only
using the accelerators.
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-12-17 17:37:07 +00:00
|
|
|
extern char zoomed_plot, dc_number;
|
2012-08-22 00:34:29 +00:00
|
|
|
|
2013-04-14 18:31:26 +00:00
|
|
|
extern unsigned int amount_selected;
|
|
|
|
|
2013-05-03 18:04:51 +00:00
|
|
|
extern int is_default_dive_computer_device(const char *);
|
|
|
|
extern int is_default_dive_computer(const char *, const char *);
|
|
|
|
extern const char *default_dive_computer_vendor;
|
|
|
|
extern const char *default_dive_computer_product;
|
|
|
|
extern const char *default_dive_computer_device;
|
|
|
|
|
2013-04-01 10:51:49 +00:00
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
2011-08-31 17:20:46 +00:00
|
|
|
#endif
|