summaryrefslogtreecommitdiffstats
path: root/display-gtk.h
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2011-11-23 22:56:57 -0800
committerGravatar Dirk Hohndel <dirk@hohndel.org>2011-11-24 10:12:40 -0800
commit671f6544ac8b4a6eb68576b37344e84808511eb8 (patch)
tree12a0b650a6d926dbaa7392ef099c04b6fe5a67c7 /display-gtk.h
parentcf6e0e7ca1ef74f4090f660484bdc4726609b5d3 (diff)
downloadsubsurface-671f6544ac8b4a6eb68576b37344e84808511eb8.tar.gz
Split reading/writing preferences into OS specific files
This adds tested code for Linux and Mac OS, implementing the api that Linus suggested. The Windows code was moved into its own file, but hasn't even been compile tested, yet. In order to have just one interface to set or get a preference value we encode TRUE as (void *) 1 and FALSE as NULL. This works consistently on all platforms and regardless of whether we have 32 or 64 bit. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'display-gtk.h')
-rw-r--r--display-gtk.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/display-gtk.h b/display-gtk.h
index 56fd5c4d9..9e5093d40 100644
--- a/display-gtk.h
+++ b/display-gtk.h
@@ -19,6 +19,19 @@ typedef struct {
gboolean otu;
} visible_cols_t;
+typedef enum {
+ PREF_BOOL,
+ PREF_STRING
+} pref_type_t;
+
+#define BOOL_TO_PTR(_cond) ((_cond) ? (void *)1 : NULL)
+#define PTR_TO_BOOL(_ptr) ((_ptr) != NULL)
+
+extern void subsurface_open_conf(void);
+extern void subsurface_set_conf(char *name, pref_type_t type, const void *value);
+extern const void *subsurface_get_conf(char *name, pref_type_t type);
+extern void subsurface_close_conf(void);
+
extern visible_cols_t visible_cols;
extern const char *divelist_font;