4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) version 3.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with the program; if not, see <http://www.gnu.org/licenses/>
19 #if !defined (__CAMEL_H_INSIDE__) && !defined (CAMEL_COMPILATION)
20 #error "Only <camel/camel.h> can be included directly."
23 #ifndef CAMEL_SETTINGS_H
24 #define CAMEL_SETTINGS_H
26 #include <glib-object.h>
27 #include <camel/camel-url.h>
29 /* Standard GObject macros */
30 #define CAMEL_TYPE_SETTINGS \
31 (camel_settings_get_type ())
32 #define CAMEL_SETTINGS(obj) \
33 (G_TYPE_CHECK_INSTANCE_CAST \
34 ((obj), CAMEL_TYPE_SETTINGS, CamelSettings))
35 #define CAMEL_SETTINGS_CLASS(cls) \
36 (G_TYPE_CHECK_CLASS_CAST \
37 ((cls), CAMEL_TYPE_SETTINGS, CamelSettingsClass))
38 #define CAMEL_IS_SETTINGS(obj) \
39 (G_TYPE_CHECK_INSTANCE_TYPE \
40 ((obj), CAMEL_TYPE_SETTINGS))
41 #define CAMEL_IS_SETTINGS_CLASS(cls) \
42 (G_TYPE_CHECK_CLASS_TYPE \
43 ((cls), CAMEL_TYPE_SETTINGS))
44 #define CAMEL_SETTINGS_GET_CLASS(obj) \
45 (G_TYPE_INSTANCE_GET_CLASS \
46 ((obj), CAMEL_TYPE_SETTINGS, CamelSettingsClass))
53 * Contains only private data that should be read and manipulated using the
58 typedef struct _CamelSettings CamelSettings;
59 typedef struct _CamelSettingsClass CamelSettingsClass;
60 typedef struct _CamelSettingsPrivate CamelSettingsPrivate;
62 struct _CamelSettings {
64 CamelSettingsPrivate *priv;
67 struct _CamelSettingsClass {
68 GObjectClass parent_class;
70 GParamSpec ** (*list_settings) (CamelSettingsClass *klass,
73 CamelSettings * (*clone) (CamelSettings *settings);
74 gboolean (*equal) (CamelSettings *settings_a,
75 CamelSettings *settings_b);
78 GType camel_settings_get_type (void) G_GNUC_CONST;
79 GParamSpec ** camel_settings_class_list_settings
80 (CamelSettingsClass *settings_class,
82 CamelSettings * camel_settings_clone (CamelSettings *settings);
83 gboolean camel_settings_equal (CamelSettings *settings_a,
84 CamelSettings *settings_b);
88 #endif /* CAMEL_SETTINGS_H */