/* * xfconfd * * Copyright (c) 2007 Brian Tarricone * * 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; version 2 of the License ONLY. * * 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 */ #ifndef __XFCONF_BACKEND_H__ #define __XFCONF_BACKEND_H__ #include #if defined(GETTEXT_PACKAGE) #include #else #include #endif #include #include "xfconf-daemon.h" #define XFCONF_TYPE_BACKEND (xfconf_backend_get_type()) #define XFCONF_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), XFCONF_TYPE_BACKEND, XfconfBackend)) #define XFCONF_IS_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), XFCONF_TYPE_BACKEND)) #define XFCONF_BACKEND_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE((obj), XFCONF_TYPE_BACKEND, XfconfBackendInterface)) #define xfconf_backend_return_val_if_fail(cond, val) G_STMT_START{ \ if(!(cond)) { \ if(error) { \ g_set_error(error, XFCONF_ERROR, \ XFCONF_ERROR_INTERNAL_ERROR, \ _("An internal error occurred; this is probably a bug")); \ } \ g_return_val_if_fail((cond), (val)); \ return (val); /* ensure return even if G_DISABLE_CHECKS */ \ } \ }G_STMT_END G_BEGIN_DECLS typedef struct _XfconfBackend XfconfBackend; typedef struct _XfconfBackendInterface XfconfBackendInterface; typedef void (*XfconfPropertyChangedFunc)(XfconfBackend *backend, const gchar *channel, const gchar *property, gpointer user_data); struct _XfconfBackendInterface { GTypeInterface parent; gboolean (*initialize)(XfconfBackend *backend, GError **error); gboolean (*set)(XfconfBackend *backend, const gchar *channel, const gchar *property, const GValue *value, GError **error); gboolean (*get)(XfconfBackend *backend, const gchar *channel, const gchar *property, GValue *value, GError **error); gboolean (*get_all)(XfconfBackend *backend, const gchar *channel, const gchar *property_base, GHashTable *properties, GError **error); gboolean (*exists)(XfconfBackend *backend, const gchar *channel, const gchar *property, gboolean *exists, GError **error); gboolean (*reset)(XfconfBackend *backend, const gchar *channel, const gchar *property, gboolean recursive, GError **error); gboolean (*list_channels)(XfconfBackend *backend, GSList **channels, GError **error); gboolean (*is_property_locked)(XfconfBackend *backend, const gchar *channel, const gchar *property, gboolean *locked, GError **error); gboolean (*flush)(XfconfBackend *backend, GError **error); void (*register_property_changed_func)(XfconfBackend *backend, XfconfPropertyChangedFunc func, gpointer user_data); /*< reserved for future expansion >*/ void (*_xb_reserved0)(); void (*_xb_reserved1)(); void (*_xb_reserved2)(); void (*_xb_reserved3)(); }; GType xfconf_backend_get_type(void) G_GNUC_CONST; gboolean xfconf_backend_initialize(XfconfBackend *backend, GError **error); gboolean xfconf_backend_set(XfconfBackend *backend, const gchar *channel, const gchar *property, const GValue *value, GError **error); gboolean xfconf_backend_get(XfconfBackend *backend, const gchar *channel, const gchar *property, GValue *value, GError **error); gboolean xfconf_backend_get_all(XfconfBackend *backend, const gchar *channel, const gchar *property_base, GHashTable *properties, GError **error); gboolean xfconf_backend_exists(XfconfBackend *backend, const gchar *channel, const gchar *property, gboolean *exists, GError **error); gboolean xfconf_backend_reset(XfconfBackend *backend, const gchar *channel, const gchar *property, gboolean recursive, GError **error); gboolean xfconf_backend_list_channels(XfconfBackend *backend, GSList **channels, GError **error); gboolean xfconf_backend_is_property_locked(XfconfBackend *backend, const gchar *channel, const gchar *property, gboolean *locked, GError **error); gboolean xfconf_backend_flush(XfconfBackend *backend, GError **error); void xfconf_backend_register_property_changed_func(XfconfBackend *backend, XfconfPropertyChangedFunc func, gpointer user_data); G_END_DECLS #endif /* __XFCONF_BACKEND_H__ */