Cleanup, drop WRITE_SUBTITLE() macro, remove commented out code.
[geeqie.git] / src / rcfile.h
index 04609c1..8a486e6 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Geeqie
  * (C) 2004 John Ellis
- * Copyright (C) 2008 The Geeqie Team
+ * Copyright (C) 2008 - 2012 The Geeqie Team
  *
  * Author: John Ellis
  *
 #ifndef RCFILE_H
 #define RCFILE_H
 
-gchar *quoted_value(const gchar *text, const gchar **tail);
-gchar *escquote_value(const gchar *text);
 
-void save_options(void);
-void load_options(void);
+void write_indent(GString *str, gint indent);
+void write_char_option(GString *str, gint indent, const gchar *label, const gchar *text);
+gboolean read_dummy_option(const gchar *option, const gchar *label, const gchar *message);
+gboolean read_char_option(const gchar *option, const gchar *label, const gchar *value, gchar **text);
+void write_color_option(GString *str, gint indent, gchar *label, GdkColor *color);
+gboolean read_color_option(const gchar *option, const gchar *label, const gchar *value, GdkColor *color);
+void write_int_option(GString *str, gint indent, const gchar *label, gint n);
+gboolean read_int_option(const gchar *option, const gchar *label, const gchar *value, gint *n);
+void write_uint_option(GString *str, gint indent, const gchar *label, guint n);
+gboolean read_uint_option(const gchar *option, const gchar *label, const gchar *value, guint *n);
+gboolean read_uint_option_clamp(const gchar *option, const gchar *label, const gchar *value, guint *n, guint min, guint max);
+gboolean read_int_option_clamp(const gchar *option, const gchar *label, const gchar *value, gint *n, gint min, gint max);
+void write_int_unit_option(GString *str, gint indent, gchar *label, gint n, gint subunits);
+gboolean read_int_unit_option(const gchar *option, const gchar *label, const gchar *value, gint *n, gint subunits);
+void write_bool_option(GString *str, gint indent, gchar *label, gint n);
+gboolean read_bool_option(const gchar *option, const gchar *label, const gchar *value, gint *n);
+
+#define WRITE_BOOL(_source_, _name_) write_bool_option(outstr, indent, #_name_, (_source_)._name_)
+#define WRITE_INT(_source_, _name_) write_int_option(outstr, indent, #_name_, (_source_)._name_)
+#define WRITE_UINT(_source_, _name_) write_uint_option(outstr, indent, #_name_, (_source_)._name_)
+#define WRITE_INT_UNIT(_source_, _name_, _unit_) write_int_unit_option(outstr, indent, #_name_, (_source_)._name_, _unit_)
+#define WRITE_CHAR(_source_, _name_) write_char_option(outstr, indent, #_name_, (_source_)._name_)
+#define WRITE_COLOR(_source_, _name_) write_color_option(outstr, indent, #_name_, &(_source_)._name_)
+
+#define WRITE_NL() write_indent(outstr, indent)
+#define WRITE_SEPARATOR() g_string_append(outstr, "\n")
+#define WRITE_STRING(...) g_string_append_printf(outstr, __VA_ARGS__)
+
+#define READ_BOOL(_target_, _name_) read_bool_option(option, #_name_, value, &(_target_)._name_)
+#define READ_INT(_target_, _name_) read_int_option(option, #_name_, value, &(_target_)._name_)
+#define READ_UINT(_target_, _name_) read_uint_option(option, #_name_, value, &(_target_)._name_)
+#define READ_INT_CLAMP(_target_, _name_, _min_, _max_) read_int_option_clamp(option, #_name_, value, &(_target_)._name_, _min_, _max_)
+#define READ_UINT_CLAMP(_target_, _name_, _min_, _max_) read_uint_option_clamp(option, #_name_, value, &(_target_)._name_, _min_, _max_)
+#define READ_INT_UNIT(_target_, _name_, _unit_) read_int_unit_option(option, #_name_, value, &(_target_)._name_, _unit_)
+#define READ_CHAR(_target_, _name_) read_char_option(option, #_name_, value, &(_target_)._name_)
+#define READ_COLOR(_target_, _name_) read_color_option(option, #_name_, value, &(_target_)._name_)
+
+#define READ_BOOL_FULL(_name_, _target_) read_bool_option(option, _name_, value, &(_target_))
+#define READ_INT_FULL(_name_, _target_) read_int_option(option, _name_, value, &(_target_))
+#define READ_UINT_FULL(_name_, _target_) read_uint_option(option, _name_, value, &(_target_))
+#define READ_INT_CLAMP_FULL(_name_, _target_, _min_, _max_) read_int_option_clamp(option, _name_, value, &(_target_), _min_, _max_)
+#define READ_INT_UNIT_FULL(_name_, _target_, _unit_) read_int_unit_option(option, _name_, value, &(_target_), _unit_)
+#define READ_CHAR_FULL(_name_, _target_) read_char_option(option, _name_, value, &(_target_))
+#define READ_COLOR_FULL(_name_, _target_) read_color_option(option, _name_, value, &(_target_))
+
+#define READ_DUMMY(_target_, _name_, _msg_) read_dummy_option(option, #_name_, _msg_)
+
+typedef struct _GQParserFuncData GQParserFuncData;
+typedef struct _GQParserData GQParserData;
+typedef        void (* GQParserStartFunc)(GQParserData *parser_data, GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer data, GError **error);
+typedef        void (* GQParserEndFunc)(GQParserData *parser_data, GMarkupParseContext *context, const gchar *element_name, gpointer data, GError **error);
+
+void options_parse_func_push(GQParserData *parser_data, GQParserStartFunc start_func, GQParserEndFunc end_func, gpointer data);
+void options_parse_func_pop(GQParserData *parser_data);
+void options_parse_func_set_data(GQParserData *parser_data, gpointer data);
+
+
+gboolean save_config_to_file(const gchar *utf8_path, ConfOptions *options);
+
+gboolean load_config_from_buf(const gchar *buf, gsize size, gboolean startup);
+gboolean load_config_from_file(const gchar *utf8_path, gboolean startup);
 
 
 #endif
+/* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */