1 | /* |
2 | * Copyright © 2010 Codethink Limited |
3 | * |
4 | * This library 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.1 of the License, or (at your option) any later version. |
8 | * |
9 | * This library 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. |
13 | * |
14 | * You should have received a copy of the GNU Lesser General Public |
15 | * License along with this library; if not, see <http://www.gnu.org/licenses/>. |
16 | */ |
17 | |
18 | #ifndef __G_SETTINGS_SCHEMA_INTERNAL_H__ |
19 | #define __G_SETTINGS_SCHEMA_INTERNAL_H__ |
20 | |
21 | #include "gsettingsschema.h" |
22 | |
23 | struct _GSettingsSchemaKey |
24 | { |
25 | GSettingsSchema *schema; |
26 | const gchar *name; |
27 | |
28 | guint is_flags : 1; |
29 | guint is_enum : 1; |
30 | |
31 | const guint32 *strinfo; |
32 | gsize strinfo_length; |
33 | |
34 | const gchar *unparsed; |
35 | gchar lc_char; |
36 | |
37 | const GVariantType *type; |
38 | GVariant *minimum, *maximum; |
39 | GVariant *default_value; |
40 | GVariant *desktop_overrides; |
41 | |
42 | gint ref_count; |
43 | }; |
44 | |
45 | const gchar * g_settings_schema_get_gettext_domain (GSettingsSchema *schema); |
46 | GVariantIter * g_settings_schema_get_value (GSettingsSchema *schema, |
47 | const gchar *key); |
48 | const GQuark * g_settings_schema_list (GSettingsSchema *schema, |
49 | gint *n_items); |
50 | const gchar * g_settings_schema_get_string (GSettingsSchema *schema, |
51 | const gchar *key); |
52 | |
53 | void g_settings_schema_key_init (GSettingsSchemaKey *key, |
54 | GSettingsSchema *schema, |
55 | const gchar *name); |
56 | void g_settings_schema_key_clear (GSettingsSchemaKey *key); |
57 | gboolean g_settings_schema_key_type_check (GSettingsSchemaKey *key, |
58 | GVariant *value); |
59 | GVariant * g_settings_schema_key_range_fixup (GSettingsSchemaKey *key, |
60 | GVariant *value); |
61 | GVariant * g_settings_schema_key_get_translated_default (GSettingsSchemaKey *key); |
62 | GVariant * g_settings_schema_key_get_per_desktop_default (GSettingsSchemaKey *key); |
63 | |
64 | gint g_settings_schema_key_to_enum (GSettingsSchemaKey *key, |
65 | GVariant *value); |
66 | GVariant * g_settings_schema_key_from_enum (GSettingsSchemaKey *key, |
67 | gint value); |
68 | guint g_settings_schema_key_to_flags (GSettingsSchemaKey *key, |
69 | GVariant *value); |
70 | GVariant * g_settings_schema_key_from_flags (GSettingsSchemaKey *key, |
71 | guint value); |
72 | |
73 | #endif /* __G_SETTINGS_SCHEMA_INTERNAL_H__ */ |
74 | |