view src/rcfile.h @ 1783:b0352818977b

Allow to switch to fullscreen mode using LIRC. Imagine the following situation (which happened to me several times) : you want to see photos from your bed or your sofa so you launch geeqie and go to the right directory, then you take your remote control and sit comfortably far from your keyboard and mouse. And when you want to begin to watch photos, you realize you forgot to enable full screen! You have to stand up and to go until your computer and come back, whereas you could have done it with your remote control. Patch by Bernard Massot.
author zas_
date Tue, 05 Jan 2010 17:49:50 +0000
parents 2ca277a9845b
children 956aab097ea7
line wrap: on
line source

/*
 * Geeqie
 * (C) 2004 John Ellis
 * Copyright (C) 2008 - 2009 The Geeqie Team
 *
 * Author: John Ellis
 *
 * This software is released under the GNU General Public License (GNU GPL).
 * Please read the included file COPYING for more information.
 * This software comes with no warranty of any kind, use at your own risk!
 */


#ifndef RCFILE_H
#define RCFILE_H


void write_indent(GString *str, gint indent);
void write_char_option(GString *str, gint indent, const gchar *label, const gchar *text);
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_SUBTITLE(_title_) g_string_append_printf(outstr, "\n\n<!-- "_title_" -->\n\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_))




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: */