/* * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client * Copyright (C) 1999-2005 Hiroyuki Yamamoto * * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __PREFS_H__ #define __PREFS_H__ #include #include typedef struct _PrefParam PrefParam; typedef struct _PrefFile PrefFile; #define PREFSBUFSIZE 1024 typedef enum { P_STRING, P_INT, P_BOOL, P_ENUM, P_USHORT, P_OTHER } PrefType; typedef void (*DataSetFunc) (PrefParam *pparam); typedef void (*WidgetSetFunc) (PrefParam *pparam); struct _PrefParam { gchar *name; gchar *defval; gpointer data; PrefType type; gpointer ui_data; }; struct _PrefFile { FILE *fp; gchar *path; }; GHashTable *prefs_param_table_get (PrefParam *param); void prefs_param_table_destroy (GHashTable *param_table); void prefs_read_config (PrefParam *param, const gchar *label, const gchar *rcfile, const gchar *encoding); void prefs_write_config (PrefParam *param, const gchar *label, const gchar *rcfile); PrefFile *prefs_file_open (const gchar *path); gint prefs_file_write_param (PrefFile *pfile, PrefParam *param); gint prefs_file_close (PrefFile *pfile); gint prefs_file_close_revert (PrefFile *pfile); void prefs_set_default (PrefParam *param); void prefs_free (PrefParam *param); #endif /* __PREFS_H__ */