Author: abrander
Date: 2010-05-26 13:56:06 +0200 (Wed, 26 May 2010)
New Revision: 3372

Added:
   trunk/librawstudio/conf_interface.c
   trunk/librawstudio/conf_interface.h
Log:
Missing from revision 3371.


Copied: trunk/librawstudio/conf_interface.c (from rev 3370, 
trunk/src/conf_interface.c)
===================================================================
--- trunk/librawstudio/conf_interface.c                         (rev 0)
+++ trunk/librawstudio/conf_interface.c 2010-05-26 11:56:06 UTC (rev 3372)
@@ -0,0 +1,512 @@
+/*
+ * * Copyright (C) 2006-2010 Anders Brander <[email protected]>, 
+ * * Anders Kvist <[email protected]> and Klaus Post <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, 
USA.
+ */
+
+#include <gtk/gtk.h>
+#include <glib.h>
+#include <stdio.h>
+#include "conf_interface.h"
+
+#ifdef G_OS_WIN32
+ #define WITH_REGISTRY
+ #undef WITH_GCONF
+#endif
+
+#ifdef WITH_GCONF
+ #include <gconf/gconf-client.h>
+ #define GCONF_PATH "/apps/rawstudio/"
+#else
+ #ifdef G_OS_WIN32
+  #include <windows.h>
+  #define WITH_REGISTRY
+  #define REGISTRY_KEY "Software\\Rawstudio"
+ #endif
+#endif
+
+gboolean
+rs_conf_get_boolean(const gchar *name, gboolean *boolean_value)
+{
+       gboolean ret = FALSE;
+#ifdef WITH_GCONF
+       GConfValue *gvalue;
+       GConfClient *client = gconf_client_get_default();
+       GString *fullname = g_string_new(GCONF_PATH);
+       g_string_append(fullname, name);
+       if (client)
+       {
+               g_static_mutex_lock(&lock);
+               gvalue = gconf_client_get(client, fullname->str, NULL);
+               g_static_mutex_unlock(&lock);
+               if (gvalue)
+               {
+                       if (gvalue->type == GCONF_VALUE_BOOL)
+                       {
+                               ret = TRUE;
+                               if (boolean_value)
+                                       *boolean_value = 
gconf_value_get_bool(gvalue);
+                       }
+                       gconf_value_free(gvalue);
+               }
+               g_object_unref(client);
+       }
+       g_string_free(fullname, TRUE);
+#endif
+#ifdef WITH_REGISTRY
+       ret = rs_conf_get_integer(name, boolean_value);
+#endif
+       return(ret);
+}
+
+gboolean
+rs_conf_get_boolean_with_default(const gchar *name, gboolean *boolean_value, 
gboolean default_value)
+{
+       gboolean ret = FALSE;
+       if (boolean_value)
+               *boolean_value = default_value;
+#ifdef WITH_GCONF
+       GConfValue *gvalue;
+       GConfClient *client = gconf_client_get_default();
+       GString *fullname = g_string_new(GCONF_PATH);
+       g_string_append(fullname, name);
+       if (client)
+       {
+               g_static_mutex_lock(&lock);
+               gvalue = gconf_client_get(client, fullname->str, NULL);
+               g_static_mutex_unlock(&lock);
+               if (gvalue)
+               {
+                       if (gvalue->type == GCONF_VALUE_BOOL)
+                       {
+                               ret = TRUE;
+                               if (boolean_value)
+                                       *boolean_value = 
gconf_value_get_bool(gvalue);
+                       }
+                       gconf_value_free(gvalue);
+               }
+               g_object_unref(client);
+       }
+       g_string_free(fullname, TRUE);
+#endif
+#ifdef WITH_REGISTRY
+       ret = rs_conf_get_integer(name, boolean_value);
+#endif
+       return(ret);
+}
+
+gboolean
+rs_conf_set_boolean(const gchar *name, gboolean bool_value)
+{
+       gboolean ret = FALSE;
+#ifdef WITH_GCONF
+       GConfClient *client = gconf_client_get_default();
+       GString *fullname = g_string_new(GCONF_PATH);
+       g_string_append(fullname, name);
+       g_static_mutex_lock(&lock);
+       if (client)
+       {
+               ret = gconf_client_set_bool(client, fullname->str, bool_value, 
NULL);
+               g_object_unref(client);
+       }
+       g_static_mutex_unlock(&lock);
+       g_string_free(fullname, TRUE);
+#endif
+#ifdef WITH_REGISTRY
+       ret = rs_conf_set_integer(name, bool_value);
+#endif
+       return(ret);
+}
+
+gchar *
+rs_conf_get_string(const gchar *name)
+{
+       gchar *ret=NULL;
+#ifdef WITH_GCONF
+       GConfValue *gvalue;
+       GConfClient *client = gconf_client_get_default();
+       GString *fullname = g_string_new(GCONF_PATH);
+       g_string_append(fullname, name);
+       if (client)
+       {
+               g_static_mutex_lock(&lock);
+               gvalue = gconf_client_get(client, fullname->str, NULL);
+               g_static_mutex_unlock(&lock);
+               if (gvalue)
+               {
+                       if (gvalue->type == GCONF_VALUE_STRING)
+                               ret = g_strdup(gconf_value_get_string(gvalue));
+                       gconf_value_free(gvalue);
+               }
+               g_object_unref(client);
+       }
+       g_string_free(fullname, TRUE);
+#endif
+#ifdef WITH_REGISTRY
+    HKEY hKey;
+       char *szLwd;
+    DWORD dwBufLen;
+    LONG lRet;
+
+       if (RegOpenKeyEx( HKEY_CURRENT_USER, REGISTRY_KEY, 0, KEY_QUERY_VALUE, 
&hKey ) == ERROR_SUCCESS)
+       {
+           lRet = RegQueryValueEx( hKey, name, NULL, NULL, NULL, &dwBufLen);
+               if (dwBufLen > 0)
+               {
+               szLwd = g_malloc(dwBufLen);
+               lRet = RegQueryValueEx( hKey, name, NULL, NULL, (LPBYTE) szLwd, 
&dwBufLen);
+               RegCloseKey( hKey );
+               if (lRet == ERROR_SUCCESS)
+                               ret = szLwd;
+                       else
+                               g_free(szLwd);
+               }
+       }
+#endif
+       return(ret);
+}
+
+gboolean
+rs_conf_set_string(const gchar *name, const gchar *string_value)
+{
+       gboolean ret = FALSE;
+#ifdef WITH_GCONF
+       GConfClient *client = gconf_client_get_default();
+       GString *fullname = g_string_new(GCONF_PATH);
+       g_string_append(fullname, name);
+       if (client)
+       {
+               g_static_mutex_lock(&lock);
+               ret = gconf_client_set_string(client, fullname->str, 
string_value, NULL);
+               g_static_mutex_unlock(&lock);
+               g_object_unref(client);
+       }
+       g_string_free(fullname, TRUE);
+#endif
+#ifdef WITH_REGISTRY
+    HKEY hKey;
+
+       if (RegCreateKeyEx(HKEY_CURRENT_USER, REGISTRY_KEY, 0, NULL, 
REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hKey, NULL) == ERROR_SUCCESS)
+       {
+               if (RegSetValueEx(hKey, name, 0, REG_SZ, (LPBYTE) string_value, 
(DWORD) (lstrlen(string_value)+1))==ERROR_SUCCESS)
+                       ret = TRUE;
+       }
+    RegCloseKey(hKey);
+#endif
+       return ret;
+}
+
+gboolean
+rs_conf_get_integer(const gchar *name, gint *integer_value)
+{
+       gboolean ret=FALSE;
+#ifdef WITH_GCONF
+       GConfValue *gvalue;
+       GConfClient *client = gconf_client_get_default();
+       GString *fullname = g_string_new(GCONF_PATH);
+       g_string_append(fullname, name);
+       if (client)
+       {
+               g_static_mutex_lock(&lock);
+               gvalue = gconf_client_get(client, fullname->str, NULL);
+               g_static_mutex_unlock(&lock);
+               if (gvalue)
+               {
+                       if (gvalue->type == GCONF_VALUE_INT)
+                       {
+                               ret = TRUE;
+                               *integer_value = gconf_value_get_int(gvalue);
+                       }
+                       gconf_value_free(gvalue);
+               }
+               g_object_unref(client);
+       }
+       g_string_free(fullname, TRUE);
+#endif
+#ifdef WITH_REGISTRY
+    HKEY hKey;
+    DWORD dwBufLen;
+    LONG lRet;
+
+       if (RegOpenKeyEx( HKEY_CURRENT_USER, REGISTRY_KEY, 0, KEY_QUERY_VALUE, 
&hKey ) == ERROR_SUCCESS)
+       {
+           lRet = RegQueryValueEx( hKey, name, NULL, NULL, NULL, &dwBufLen);
+               if (dwBufLen > 0)
+               {
+                       gint val;
+                       DWORD size = sizeof(gint);
+               lRet = RegQueryValueEx( hKey, name, NULL, NULL, (LPBYTE) &val, 
&size);
+               RegCloseKey( hKey );
+               if ((lRet == ERROR_SUCCESS) && (size == sizeof(gint)))
+               {
+                               ret = TRUE;
+                               *integer_value = val;
+                       }
+               }
+       }
+#endif
+       return(ret);
+}
+
+gboolean
+rs_conf_set_integer(const gchar *name, const gint integer_value)
+{
+       gboolean ret = FALSE;
+#ifdef WITH_GCONF
+       GConfClient *client = gconf_client_get_default();
+       GString *fullname = g_string_new(GCONF_PATH);
+       g_string_append(fullname, name);
+       g_static_mutex_lock(&lock);
+       if (client)
+       {
+               ret = gconf_client_set_int(client, fullname->str, 
integer_value, NULL);
+               g_object_unref(client);
+       }
+       g_static_mutex_unlock(&lock);
+       g_string_free(fullname, TRUE);
+#endif
+#ifdef WITH_REGISTRY
+    HKEY hKey;
+
+       if (RegCreateKeyEx(HKEY_CURRENT_USER, REGISTRY_KEY, 0, NULL, 
REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hKey, NULL) == ERROR_SUCCESS)
+       {
+               if (RegSetValueEx(hKey, name, 0, REG_DWORD, (LPBYTE) 
&integer_value, sizeof(gint))==ERROR_SUCCESS)
+                       ret = TRUE;
+       }
+    RegCloseKey(hKey);
+#endif
+       return(ret);
+}
+
+gboolean
+rs_conf_get_color(const gchar *name, GdkColor *color)
+{
+       gchar *str;
+       gboolean ret = FALSE;
+
+       str = rs_conf_get_string(name);
+       if (str)
+       {
+               ret = gdk_color_parse(str, color);
+               g_free(str);
+       }
+       return(ret);
+}
+
+gboolean
+rs_conf_set_color(const gchar *name, GdkColor *color)
+{
+       gchar *str;
+       gboolean ret = FALSE;
+
+       str = g_strdup_printf ("#%02x%02x%02x", color->red>>8, color->green>>8, 
color->blue>>8);
+       if (str)
+       {
+               ret = rs_conf_set_string(name, str);
+               g_free(str);
+       }
+       return(ret);
+}
+
+gboolean
+rs_conf_get_double(const gchar *name, gdouble *float_value)
+{
+       gboolean ret=FALSE;
+#ifdef WITH_GCONF
+       GConfValue *gvalue;
+       GConfClient *client = gconf_client_get_default();
+       GString *fullname = g_string_new(GCONF_PATH);
+       g_string_append(fullname, name);
+       if (client)
+       {
+               g_static_mutex_lock(&lock);
+               gvalue = gconf_client_get(client, fullname->str, NULL);
+               g_static_mutex_unlock(&lock);
+               if (gvalue)
+               {
+                       if (gvalue->type == GCONF_VALUE_FLOAT)
+                       {
+                               ret = TRUE;
+                               *float_value = gconf_value_get_float(gvalue);
+                       }
+                       gconf_value_free(gvalue);
+               }
+               g_object_unref(client);
+       }
+       g_string_free(fullname, TRUE);
+#endif
+#ifdef WITH_REGISTRY
+    HKEY hKey;
+    DWORD dwBufLen;
+    LONG lRet;
+
+       if (RegOpenKeyEx( HKEY_CURRENT_USER, REGISTRY_KEY, 0, KEY_QUERY_VALUE, 
&hKey ) == ERROR_SUCCESS)
+       {
+           lRet = RegQueryValueEx( hKey, name, NULL, NULL, NULL, &dwBufLen);
+               if (dwBufLen > 0)
+               {
+                       gdouble val;
+                       DWORD size = sizeof(gdouble);
+               lRet = RegQueryValueEx( hKey, name, NULL, NULL, (LPBYTE) &val, 
&size);
+               RegCloseKey( hKey );
+               if ((lRet == ERROR_SUCCESS) && (size == sizeof(gdouble)))
+               {
+                               ret = TRUE;
+                               *float_value = val;
+                       }
+               }
+       }
+#endif
+       return(ret);
+}
+
+gboolean
+rs_conf_set_double(const gchar *name, const gdouble float_value)
+{
+       gboolean ret = FALSE;
+#ifdef WITH_GCONF
+       GConfClient *client = gconf_client_get_default();
+       GString *fullname = g_string_new(GCONF_PATH);
+       g_string_append(fullname, name);
+       g_static_mutex_lock(&lock);
+       if (client)
+       {
+               ret = gconf_client_set_float(client, fullname->str, 
float_value, NULL);
+               g_object_unref(client);
+       }
+       g_static_mutex_unlock(&lock);
+       g_string_free(fullname, TRUE);
+#endif
+#ifdef WITH_REGISTRY
+    HKEY hKey;
+
+       if (RegCreateKeyEx(HKEY_CURRENT_USER, REGISTRY_KEY, 0, NULL, 
REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hKey, NULL) == ERROR_SUCCESS)
+       {
+               if (RegSetValueEx(hKey, name, 0, REG_BINARY, (LPBYTE) 
&float_value, sizeof(gdouble))==ERROR_SUCCESS)
+                       ret = TRUE;
+       }
+    RegCloseKey(hKey);
+#endif
+       return(ret);
+}
+
+GSList *
+rs_conf_get_list_string(const gchar *name)
+{
+       GSList *list = NULL;
+#ifdef WITH_GCONF
+       GConfClient *client = gconf_client_get_default();
+       GString *fullname = g_string_new(GCONF_PATH);
+
+       g_string_append(fullname, name);
+       g_static_mutex_lock(&lock);
+       if (client)
+       {
+               list = gconf_client_get_list(client, fullname->str, 
GCONF_VALUE_STRING, NULL);
+               g_object_unref(client);
+       }
+       g_static_mutex_unlock(&lock);
+       g_string_free(fullname, TRUE);
+#else
+       /* FIXME: windows stub */
+#endif
+       return list;
+}
+
+gboolean
+rs_conf_set_list_string(const gchar *name, GSList *list)
+{
+       gboolean ret = FALSE;
+#ifdef WITH_GCONF
+       GConfClient *client = gconf_client_get_default();
+       GString *fullname = g_string_new(GCONF_PATH);
+
+       g_string_append(fullname, name);
+       g_static_mutex_lock(&lock);
+       if (client)
+       {
+               ret = gconf_client_set_list(client, fullname->str, 
GCONF_VALUE_STRING, list, NULL);
+               g_object_unref(client);
+       }
+       g_static_mutex_unlock(&lock);
+       g_string_free(fullname, TRUE);
+#else
+       /* FIXME: windows stub */
+#endif
+       return(ret);
+}
+
+gboolean
+rs_conf_add_string_to_list_string(const gchar *name, gchar *value)
+{
+       gboolean ret = FALSE;
+
+       GSList *newlist = NULL;
+       GSList *oldlist = rs_conf_get_list_string(name);
+
+       while (oldlist)
+       {
+               newlist = g_slist_append(newlist, oldlist->data);
+               oldlist = oldlist->next;
+       }
+
+       newlist = g_slist_append(newlist, value);
+       ret = rs_conf_set_list_string(name, newlist);
+
+       return(ret);
+}
+
+gchar *
+rs_conf_get_nth_string_from_list_string(const gchar *name, gint num)
+{
+       GSList *list = rs_conf_get_list_string(name);
+       gint i;
+       gchar *value = NULL;
+
+       if (list)
+       {
+               for (i = 0; i < num; i++)
+                       list = list->next;
+               if (list)
+                       value = (gchar *) list->data;
+               else
+                       value = NULL;
+       }
+       return value;
+}
+
+gboolean
+rs_conf_unset(const gchar *name)
+{
+       gboolean ret = FALSE;
+#ifdef WITH_GCONF
+       GConfClient *client = gconf_client_get_default();
+       GString *fullname = g_string_new(GCONF_PATH);
+       g_string_append(fullname, name);
+       if (client)
+       {
+               g_static_mutex_lock(&lock);
+               ret = gconf_client_unset(client, fullname->str, NULL);
+               g_static_mutex_unlock(&lock);
+               g_object_unref(client);
+       }
+       g_string_free(fullname, TRUE);
+#endif
+#ifdef WITH_REGISTRY
+       /* FIXME: windows stub */
+#endif
+       return ret;
+}

Copied: trunk/librawstudio/conf_interface.h (from rev 3370, 
trunk/src/conf_interface.h)
===================================================================
--- trunk/librawstudio/conf_interface.h                         (rev 0)
+++ trunk/librawstudio/conf_interface.h 2010-05-26 11:56:06 UTC (rev 3372)
@@ -0,0 +1,117 @@
+/*
+ * * Copyright (C) 2006-2010 Anders Brander <[email protected]>, 
+ * * Anders Kvist <[email protected]> and Klaus Post <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, 
USA.
+ */
+
+#define CONF_LWD "last_working_directory"
+#define CONF_PREBGCOLOR "preview_background_color"
+#define CONF_HISTHEIGHT "histogram_height"
+#define CONF_PASTE_MASK "paste_mask"
+#define CONF_DEFAULT_EXPORT_TEMPLATE "default_export_template"
+#define CONF_CACHEDIR_IS_LOCAL "cache_in_home"
+#define CONF_LOAD_GDK "open_8bit_images"
+#define CONF_LOAD_RECURSIVE "load_recursive"
+#define CONF_PRELOAD "preload_photos"
+#define CONF_SAVE_FILETYPE "save_filetype"
+#define CONF_BATCH_DIRECTORY "batch_directory"
+#define CONF_BATCH_FILENAME "batch_filename"
+#define CONF_BATCH_FILETYPE "batch_filetype"
+#define CONF_BATCH_WIDTH "batch_width"
+#define CONF_BATCH_HEIGHT "batch_height"
+#define CONF_BATCH_JPEG_QUALITY "batch_jpeg_quality"
+#define CONF_BATCH_TIFF_UNCOMPRESSED "batch_tiff_uncompressed"
+#define CONF_BATCH_SIZE_LOCK "batch_size_lock"
+#define CONF_BATCH_SIZE_WIDTH "batch_size_width"
+#define CONF_BATCH_SIZE_HEIGHT "batch_size_height"
+#define CONF_BATCH_SIZE_SCALE "batch_size_scale"
+#define CONF_ROI_GRID "roi_grid"
+#define CONF_CROP_ASPECT "crop_aspect"
+#define CONF_SHOW_FILENAMES "show_filenames_in_iconview"
+#define CONF_USE_SYSTEM_THEME "use_system_theme"
+#define CONF_FULLSCREEN "fullscreen"
+#define CONF_SHOW_TOOLBOX_FULLSCREEN "show_toolbox_fullscreen"
+#define CONF_SHOW_TOOLBOX "show_toolbox"
+#define CONF_SHOW_ICONBOX_FULLSCREEN "show_iconbox_fullscreen"
+#define CONF_SHOW_ICONBOX "show_iconbox"
+#define CONF_SHOW_TOOLBOX_EXPOSURE "show_toolbox_exposure"
+#define CONF_SHOW_TOOLBOX_SATURATION "show_toolbox_saturation"
+#define CONF_SHOW_TOOLBOX_HUE "show_toolbox_hue"
+#define CONF_SHOW_TOOLBOX_CONTRAST "show_toolbox_contrast"
+#define CONF_SHOW_TOOLBOX_WARMTH "show_toolbox_warmth"
+#define CONF_SHOW_TOOLBOX_SHARPEN "show_toolbox_sharpen"
+#define CONF_SHOW_TOOLBOX_DENOISE_LUMA "show_toolbox_denoise_luma"
+#define CONF_SHOW_TOOLBOX_DENOISE_CHROMA "show_toolbox_denoise_chroma"
+#define CONF_SHOW_TOOLBOX_CURVE "show_toolbox_curve"
+#define CONF_SHOW_TOOLBOX_TRANSFORM "show_toolbox_transform"
+#define CONF_SHOW_TOOLBOX_HIST "show_toolbox_hist"
+#define CONF_TOOLBOX_WIDTH "toolbox_width"
+#define CONF_SPLIT_CONTINUOUS "split_continuous"
+#define CONF_LAST_PRIORITY_PAGE "last_priority_page"
+#define CONF_STORE_SORT_METHOD "store_sort_method"
+#define CONF_LIBRARY_AUTOTAG "library_autotag"
+#define CONF_LIBRARY_TAG_SEARCH "library_tag_search"
+#define CONF_EXPORT_AS_FOLDER "export_as_folder"
+#define CONF_EXPORT_AS_SIZE_PERCENT "export_as_size_percent"
+
+#define DEFAULT_CONF_EXPORT_FILENAME "%f_%2c"
+#define DEFAULT_CONF_BATCH_DIRECTORY "batch_exports/"
+#define DEFAULT_CONF_BATCH_FILENAME "%f_%2c"
+#define DEFAULT_CONF_BATCH_FILETYPE "jpeg"
+#define DEFAULT_CONF_BATCH_JPEG_QUALITY "100"
+#define DEFAULT_CONF_FULLSCREEN FALSE
+#define DEFAULT_CONF_SHOW_TOOLBOX_FULLSCREEN TRUE
+#define DEFAULT_CONF_SHOW_TOOLBOX TRUE
+#define DEFAULT_CONF_SHOW_ICONBOX_FULLSCREEN FALSE
+#define DEFAULT_CONF_SHOW_ICONBOX TRUE
+#define DEFAULT_CONF_SHOW_TOOLBOX_EXPOSURE TRUE
+#define DEFAULT_CONF_SHOW_TOOLBOX_SATURATION TRUE
+#define DEFAULT_CONF_SHOW_TOOLBOX_HUE TRUE
+#define DEFAULT_CONF_SHOW_TOOLBOX_CONTRAST TRUE
+#define DEFAULT_CONF_SHOW_TOOLBOX_WARMTH TRUE
+#define DEFAULT_CONF_SHOW_TOOLBOX_SHARPEN TRUE
+#define DEFAULT_CONF_SHOW_TOOLBOX_DENOISE_LUMA TRUE
+#define DEFAULT_CONF_SHOW_TOOLBOX_DENOISE_CHROMA TRUE
+#define DEFAULT_CONF_SHOW_TOOLBOX_CURVE TRUE
+#define DEFAULT_CONF_SHOW_TOOLBOX_TRANSFORM TRUE
+#define DEFAULT_CONF_SHOW_TOOLBOX_HIST TRUE
+#define DEFAULT_CONF_LOAD_RECURSIVE FALSE
+#define DEFAULT_CONF_USE_SYSTEM_THEME FALSE
+#define DEFAULT_CONF_SHOW_FILENAMES FALSE
+#define DEFAULT_CONF_LIBRARY_AUTOTAG FALSE
+
+/* get the last working directory from gconf */
+void rs_set_last_working_directory(const char *lwd);
+
+/* save the current working directory to gconf */
+gchar *rs_get_last_working_directory(void);
+
+gboolean rs_conf_get_boolean(const gchar *name, gboolean *boolean_value);
+gboolean rs_conf_get_boolean_with_default(const gchar *name, gboolean 
*boolean_value, gboolean default_value);
+gboolean rs_conf_set_boolean(const gchar *name, gboolean bool_value);
+gchar *rs_conf_get_string(const gchar *path);
+gboolean rs_conf_set_string(const gchar *path, const gchar *string);
+gboolean rs_conf_get_integer(const gchar *name, gint *integer_value);
+gboolean rs_conf_set_integer(const gchar *name, const gint integer_value);
+gboolean rs_conf_get_color(const gchar *name, GdkColor *color);
+gboolean rs_conf_set_color(const gchar *name, GdkColor *color);
+gboolean rs_conf_get_double(const gchar *name, gdouble *float_value);
+gboolean rs_conf_set_double(const gchar *name, const gdouble float_value);
+GSList *rs_conf_get_list_string(const gchar *name);
+gboolean rs_conf_set_list_string(const gchar *name, GSList *list);
+gboolean rs_conf_add_string_to_list_string(const gchar *name, gchar *value);
+gchar *rs_conf_get_nth_string_from_list_string(const gchar *name, gint num);
+gboolean rs_conf_unset(const gchar *name);


_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit

Reply via email to