X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=linux.c;fp=linux.c;h=2edcf85a1ebebfab5b4f32a21e87f04561b29e84;hb=671f6544ac8b4a6eb68576b37344e84808511eb8;hp=0000000000000000000000000000000000000000;hpb=cf6e0e7ca1ef74f4090f660484bdc4726609b5d3;p=ext%2Fsubsurface.git diff --git a/linux.c b/linux.c new file mode 100644 index 0000000..2edcf85 --- /dev/null +++ b/linux.c @@ -0,0 +1,48 @@ +/* linux.c */ +/* implements Linux specific functions */ +#include "display-gtk.h" +#include + +GConfClient *gconf; + +static char *gconf_name(char *name) +{ + static char buf[255] = "/apps/subsurface/"; + + snprintf(buf, 255, "/apps/subsurface/%s", name); + + return buf; +} + +void subsurface_open_conf(void) +{ + gconf = gconf_client_get_default(); +} + +void subsurface_set_conf(char *name, pref_type_t type, const void *value) +{ + switch (type) { + case PREF_BOOL: + gconf_client_set_bool(gconf, gconf_name(name), value != NULL, NULL); + break; + case PREF_STRING: + gconf_client_set_string(gconf, gconf_name(name), value, NULL); + } +} + +const void *subsurface_get_conf(char *name, pref_type_t type) +{ + switch (type) { + case PREF_BOOL: + return gconf_client_get_bool(gconf, gconf_name(name), NULL) ? (void *) 1 : NULL; + case PREF_STRING: + return gconf_client_get_string(gconf, gconf_name(name), NULL); + } + /* we shouldn't get here */ + return NULL; +} + +void subsurface_close_conf(void) +{ + /* this is a no-op */ +}