File: foundry-settings.h

package info (click to toggle)
foundry 1.1~beta-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 15,552 kB
  • sloc: ansic: 167,487; xml: 417; makefile: 21; sh: 19; javascript: 10
file content (139 lines) | stat: -rw-r--r-- 8,167 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
/* foundry-settings.h
 *
 * Copyright 2024 Christian Hergert <chergert@redhat.com>
 *
 * This library is free software; you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as
 * published by the Free Software Foundation; either version 2.1 of the
 * License, or (at your option) any later version.
 *
 * This library 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
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along
 * with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 * SPDX-License-Identifier: LGPL-2.1-or-later
 */

#pragma once

#include <gio/gio.h>

#include "foundry-contextual.h"
#include "foundry-version-macros.h"

G_BEGIN_DECLS

#define FOUNDRY_TYPE_SETTINGS       (foundry_settings_get_type())
#define FOUNDRY_TYPE_SETTINGS_LAYER (foundry_settings_layer_get_type())


/**
 * FoundrySettingsLayer:
 * @FOUNDRY_SETTINGS_LAYER_APPLICATION: Application-wide settings global to
 *   any new project opened or created with Foundry.
 * @FOUNDRY_SETTINGS_LAYER_PROJECT: Project-level overrides which take
 *   priority over %FOUNDRY_SETTINGS_LAYER_APPLICATION.
 * @FOUNDRY_SETTINGS_LAYER_USER: User-level overrides which take priority
 *   over %FOUNDRY_SETTINGS_LAYER_APPLICATION and
 *   %FOUNDRY_SETTINGS_LAYER_PROJECT.
 */
typedef enum _FoundrySettingsLayer
{
  FOUNDRY_SETTINGS_LAYER_APPLICATION,
  FOUNDRY_SETTINGS_LAYER_PROJECT,
  FOUNDRY_SETTINGS_LAYER_USER,
} FoundrySettingsLayer;

FOUNDRY_AVAILABLE_IN_ALL
G_DECLARE_FINAL_TYPE (FoundrySettings, foundry_settings, FOUNDRY, SETTINGS, FoundryContextual)

FOUNDRY_AVAILABLE_IN_ALL
GType            foundry_settings_layer_get_type              (void) G_GNUC_CONST;
FOUNDRY_AVAILABLE_IN_ALL
FoundrySettings *foundry_settings_new                         (FoundryContext          *context,
                                                               const char              *schema_id);
FOUNDRY_AVAILABLE_IN_ALL
FoundrySettings *foundry_settings_new_with_path               (FoundryContext          *context,
                                                               const char              *schema_id,
                                                               const char              *path);
FOUNDRY_AVAILABLE_IN_ALL
GSettings       *foundry_settings_dup_layer                   (FoundrySettings         *self,
                                                               FoundrySettingsLayer     layer);
FOUNDRY_AVAILABLE_IN_ALL
const char      *foundry_settings_get_schema_id               (FoundrySettings         *self);
FOUNDRY_AVAILABLE_IN_ALL
GVariant        *foundry_settings_get_default_value           (FoundrySettings         *self,
                                                               const char              *key);
FOUNDRY_AVAILABLE_IN_ALL
GVariant        *foundry_settings_get_user_value              (FoundrySettings         *self,
                                                               const char              *key);
FOUNDRY_AVAILABLE_IN_ALL
GVariant        *foundry_settings_get_value                   (FoundrySettings         *self,
                                                               const char              *key);
FOUNDRY_AVAILABLE_IN_ALL
void             foundry_settings_set_value                   (FoundrySettings         *self,
                                                               const char              *key,
                                                               GVariant                *value);
FOUNDRY_AVAILABLE_IN_ALL
gboolean         foundry_settings_get_boolean                 (FoundrySettings         *self,
                                                               const char              *key);
FOUNDRY_AVAILABLE_IN_ALL
double           foundry_settings_get_double                  (FoundrySettings         *self,
                                                               const char              *key);
FOUNDRY_AVAILABLE_IN_ALL
int              foundry_settings_get_int                     (FoundrySettings         *self,
                                                               const char              *key);
FOUNDRY_AVAILABLE_IN_ALL
char            *foundry_settings_get_string                  (FoundrySettings         *self,
                                                               const char              *key);
FOUNDRY_AVAILABLE_IN_1_1
char           **foundry_settings_get_strv                    (FoundrySettings         *self,
                                                               const char              *key);
FOUNDRY_AVAILABLE_IN_ALL
guint            foundry_settings_get_uint                    (FoundrySettings         *self,
                                                               const char              *key);
FOUNDRY_AVAILABLE_IN_ALL
void             foundry_settings_set_boolean                 (FoundrySettings         *self,
                                                               const char              *key,
                                                               gboolean                 val);
FOUNDRY_AVAILABLE_IN_ALL
void             foundry_settings_set_double                  (FoundrySettings         *self,
                                                               const char              *key,
                                                               double                   val);
FOUNDRY_AVAILABLE_IN_ALL
void             foundry_settings_set_int                     (FoundrySettings         *self,
                                                               const char              *key,
                                                               int                      val);
FOUNDRY_AVAILABLE_IN_ALL
void             foundry_settings_set_string                  (FoundrySettings         *self,
                                                               const char              *key,
                                                               const char              *val);
FOUNDRY_AVAILABLE_IN_ALL
void             foundry_settings_set_uint                    (FoundrySettings         *self,
                                                               const char              *key,
                                                               guint                    val);
FOUNDRY_AVAILABLE_IN_ALL
void             foundry_settings_bind                        (FoundrySettings         *self,
                                                               const char              *key,
                                                               gpointer                 object,
                                                               const char              *property,
                                                               GSettingsBindFlags       flags);
FOUNDRY_AVAILABLE_IN_ALL
void             foundry_settings_bind_with_mapping           (FoundrySettings         *self,
                                                               const char              *key,
                                                               gpointer                 object,
                                                               const char              *property,
                                                               GSettingsBindFlags       flags,
                                                               GSettingsBindGetMapping  get_mapping,
                                                               GSettingsBindSetMapping  set_mapping,
                                                               gpointer                 user_data,
                                                               GDestroyNotify           destroy);
FOUNDRY_AVAILABLE_IN_ALL
void             foundry_settings_unbind                      (FoundrySettings         *self,
                                                               const char              *property);

G_END_DECLS