]> git.tdb.fi Git - ext/subsurface.git/blob - display-gtk.h
Start re-working the print UI to allow printing tables with no profiles.
[ext/subsurface.git] / display-gtk.h
1 #ifndef DISPLAY_GTK_H
2 #define DISPLAY_GTK_H
3
4 #include <gtk/gtk.h>
5 #include <gdk/gdk.h>
6
7 extern GtkWidget *main_window;
8
9 /* we want a progress bar as part of the device_data_t - let's abstract this out */
10 typedef struct {
11         GtkWidget *bar;
12 } progressbar_t;
13
14 typedef struct {
15         gboolean cylinder;
16         gboolean temperature;
17         gboolean totalweight;
18         gboolean suit;
19         gboolean nitrox;
20         gboolean sac;
21         gboolean otu;
22     gboolean print_profiles;
23 } visible_cols_t;
24
25 typedef enum {
26         PREF_BOOL,
27         PREF_STRING
28 } pref_type_t;
29
30 #define BOOL_TO_PTR(_cond) ((_cond) ? (void *)1 : NULL)
31 #define PTR_TO_BOOL(_ptr) ((_ptr) != NULL)
32
33 #if defined __APPLE__
34 #define CTRLCHAR "<Meta>"
35 #define SHIFTCHAR "<Shift>"
36 #define PREFERENCE_ACCEL "<Meta>comma"
37 #else
38 #define CTRLCHAR "<Control>"
39 #define SHIFTCHAR "<Shift>"
40 #define PREFERENCE_ACCEL NULL
41 #endif
42
43 extern void subsurface_open_conf(void);
44 extern void subsurface_set_conf(char *name, pref_type_t type, const void *value);
45 extern const void *subsurface_get_conf(char *name, pref_type_t type);
46 extern void subsurface_flush_conf(void);
47 extern void subsurface_close_conf(void);
48
49 extern const char *subsurface_USB_name(void);
50 extern const char *subsurface_icon_name(void);
51 extern void subsurface_ui_setup(GtkSettings *settings, GtkWidget *menubar,
52                 GtkWidget *vbox, GtkUIManager *ui_manager);
53
54 extern const char *divelist_font;
55
56 extern visible_cols_t visible_cols;
57
58 extern const char *divelist_font;
59 extern void set_divelist_font(const char *);
60
61 extern void import_dialog(GtkWidget *, gpointer);
62 extern void add_dive_cb(GtkWidget *, gpointer);
63 extern void report_error(GError* error);
64 extern int process_ui_events(void);
65 extern void update_progressbar(progressbar_t *progress, double value);
66 extern void update_progressbar_text(progressbar_t *progress, const char *text);
67
68 extern GtkWidget *dive_profile_widget(void);
69 extern GtkWidget *dive_info_frame(void);
70 extern GtkWidget *extended_dive_info_widget(void);
71 extern GtkWidget *equipment_widget(int w_idx);
72 extern GtkWidget *single_stats_widget(void);
73 extern GtkWidget *total_stats_widget(void);
74 extern GtkWidget *cylinder_list_widget(int w_idx);
75 extern GtkWidget *weightsystem_list_widget(int w_idx);
76
77 extern GtkWidget *dive_list_create(void);
78
79 unsigned int amount_selected;
80
81 extern void process_selected_dives(void);
82
83 typedef void (*data_func_t)(GtkTreeViewColumn *col,
84                             GtkCellRenderer *renderer,
85                             GtkTreeModel *model,
86                             GtkTreeIter *iter,
87                             gpointer data);
88
89 typedef gint (*sort_func_t)(GtkTreeModel *model,
90                             GtkTreeIter *a,
91                             GtkTreeIter *b,
92                             gpointer user_data);
93
94 #define ALIGN_LEFT 1
95 #define ALIGN_RIGHT 2
96 #define INVISIBLE 4
97 #define UNSORTABLE 8
98
99 extern GtkTreeViewColumn *tree_view_column(GtkWidget *tree_view, int index, const char *title,
100                 data_func_t data_func, unsigned int flags);
101
102 #endif