Blame docs/reference/gio/html/gio-GSettingsSchema-GSettingsSchemaSource.html

Packit ae235b
Packit ae235b
<html>
Packit ae235b
<head>
Packit ae235b
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
Packit ae235b
<title>GSettingsSchema, GSettingsSchemaSource: GIO Reference Manual</title>
Packit ae235b
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
Packit ae235b
<link rel="home" href="index.html" title="GIO Reference Manual">
Packit ae235b
<link rel="up" href="settings.html" title="Settings">
Packit ae235b
<link rel="prev" href="GSettingsBackend.html" title="GSettingsBackend">
Packit ae235b
<link rel="next" href="resources.html" title="Resources">
Packit ae235b
<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
Packit ae235b
<link rel="stylesheet" href="style.css" type="text/css">
Packit ae235b
</head>
Packit ae235b
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
Packit ae235b
Packit ae235b
Packit ae235b
Top  | 
Packit ae235b
                  Description  | 
Packit ae235b
                  Object Hierarchy
Packit ae235b
Packit ae235b
Home
Packit ae235b
Up
Packit ae235b
Prev
Packit ae235b
Next
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

GSettingsSchema, GSettingsSchemaSource

Packit ae235b

GSettingsSchema, GSettingsSchemaSource — Introspecting and controlling the loading

Packit ae235b
    of GSettings schemas

Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Functions

Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
GSettingsSchemaSource *
Packit ae235b
Packit ae235b
Packit ae235b
g_settings_schema_source_get_default ()
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
GSettingsSchemaSource *
Packit ae235b
Packit ae235b
Packit ae235b
g_settings_schema_source_ref ()
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
void
Packit ae235b
Packit ae235b
Packit ae235b
g_settings_schema_source_unref ()
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
GSettingsSchemaSource *
Packit ae235b
Packit ae235b
Packit ae235b
g_settings_schema_source_new_from_directory ()
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
void
Packit ae235b
Packit ae235b
Packit ae235b
g_settings_schema_source_list_schemas ()
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
GSettingsSchema *
Packit ae235b
Packit ae235b
Packit ae235b
g_settings_schema_source_lookup ()
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
GSettingsSchema *
Packit ae235b
Packit ae235b
Packit ae235b
g_settings_schema_ref ()
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
void
Packit ae235b
Packit ae235b
Packit ae235b
g_settings_schema_unref ()
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
const gchar *
Packit ae235b
Packit ae235b
Packit ae235b
g_settings_schema_get_id ()
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
const gchar *
Packit ae235b
Packit ae235b
Packit ae235b
g_settings_schema_get_path ()
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
gboolean
Packit ae235b
Packit ae235b
Packit ae235b
g_settings_schema_has_key ()
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
GSettingsSchemaKey *
Packit ae235b
Packit ae235b
Packit ae235b
g_settings_schema_get_key ()
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
GSettingsSchemaKey *
Packit ae235b
Packit ae235b
Packit ae235b
g_settings_schema_key_ref ()
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
void
Packit ae235b
Packit ae235b
Packit ae235b
g_settings_schema_key_unref ()
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
gchar **
Packit ae235b
Packit ae235b
Packit ae235b
g_settings_schema_list_children ()
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
gchar **
Packit ae235b
Packit ae235b
Packit ae235b
g_settings_schema_list_keys ()
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
const GVariantType *
Packit ae235b
Packit ae235b
Packit ae235b
g_settings_schema_key_get_value_type ()
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
GVariant *
Packit ae235b
Packit ae235b
Packit ae235b
g_settings_schema_key_get_default_value ()
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
GVariant *
Packit ae235b
Packit ae235b
Packit ae235b
g_settings_schema_key_get_range ()
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
gboolean
Packit ae235b
Packit ae235b
Packit ae235b
g_settings_schema_key_range_check ()
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
const gchar *
Packit ae235b
Packit ae235b
Packit ae235b
g_settings_schema_key_get_name ()
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
const gchar *
Packit ae235b
Packit ae235b
Packit ae235b
g_settings_schema_key_get_summary ()
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
const gchar *
Packit ae235b
Packit ae235b
Packit ae235b
g_settings_schema_key_get_description ()
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Types and Values

Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
 
Packit ae235b
GSettingsSchemaSource
Packit ae235b
Packit ae235b
Packit ae235b
 
Packit ae235b
GSettingsSchema
Packit ae235b
Packit ae235b
Packit ae235b
 
Packit ae235b
GSettingsSchemaKey
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Object Hierarchy

Packit ae235b
    GBoxed
Packit ae235b
    ├── GSettingsSchema
Packit ae235b
    ├── GSettingsSchemaKey
Packit ae235b
    ╰── GSettingsSchemaSource
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Includes

Packit ae235b
#include <gio/gio.h>
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Description

Packit ae235b

The GSettingsSchemaSource and GSettingsSchema APIs provide a

Packit ae235b
mechanism for advanced control over the loading of schemas and a
Packit ae235b
mechanism for introspecting their content.

Packit ae235b

Plugin loading systems that wish to provide plugins a way to access

Packit ae235b
settings face the problem of how to make the schemas for these
Packit ae235b
settings visible to GSettings.  Typically, a plugin will want to ship
Packit ae235b
the schema along with itself and it won't be installed into the
Packit ae235b
standard system directories for schemas.

Packit ae235b

GSettingsSchemaSource provides a mechanism for dealing with this by

Packit ae235b
allowing the creation of a new 'schema source' from which schemas can
Packit ae235b
be acquired.  This schema source can then become part of the metadata
Packit ae235b
associated with the plugin and queried whenever the plugin requires
Packit ae235b
access to some settings.

Packit ae235b

Consider the following example:

Packit ae235b
Packit ae235b
  
Packit ae235b
    
Packit ae235b
      
Packit ae235b
        
1
Packit ae235b
2
Packit ae235b
3
Packit ae235b
4
Packit ae235b
5
Packit ae235b
6
Packit ae235b
7
Packit ae235b
8
Packit ae235b
9
Packit ae235b
10
Packit ae235b
11
Packit ae235b
12
Packit ae235b
13
Packit ae235b
14
Packit ae235b
15
Packit ae235b
16
Packit ae235b
17
Packit ae235b
18
Packit ae235b
19
Packit ae235b
20
Packit ae235b
21
Packit ae235b
22
Packit ae235b
23
Packit ae235b
24
Packit ae235b
25
Packit ae235b
26
Packit ae235b
27
Packit ae235b
28
Packit ae235b
29
Packit ae235b
30
Packit ae235b
31
Packit ae235b
32
Packit ae235b
33
Packit ae235b
34
Packit ae235b
35
Packit ae235b
36
Packit ae235b
37
Packit ae235b
38
Packit ae235b
39
Packit ae235b
40
Packit ae235b
41
Packit ae235b
42
Packit ae235b
43
Packit ae235b
44
Packit ae235b
        
typedef struct
Packit ae235b
{
Packit ae235b
   ...
Packit ae235b
   GSettingsSchemaSource *schema_source;
Packit ae235b
   ...
Packit ae235b
} Plugin;
Packit ae235b
Packit ae235b
Plugin *
Packit ae235b
initialise_plugin (const gchar *dir)
Packit ae235b
{
Packit ae235b
  Plugin *plugin;
Packit ae235b
Packit ae235b
  ...
Packit ae235b
Packit ae235b
  plugin->schema_source =
Packit ae235b
    g_settings_schema_source_new_from_directory (dir,
Packit ae235b
      g_settings_schema_source_get_default (), FALSE, NULL);
Packit ae235b
Packit ae235b
  ...
Packit ae235b
Packit ae235b
  return plugin;
Packit ae235b
}
Packit ae235b
Packit ae235b
...
Packit ae235b
Packit ae235b
GSettings *
Packit ae235b
plugin_get_settings (Plugin      *plugin,
Packit ae235b
                     const gchar *schema_id)
Packit ae235b
{
Packit ae235b
  GSettingsSchema *schema;
Packit ae235b
Packit ae235b
  if (schema_id == NULL)
Packit ae235b
    schema_id = plugin->identifier;
Packit ae235b
Packit ae235b
  schema = g_settings_schema_source_lookup (plugin->schema_source,
Packit ae235b
                                            schema_id, FALSE);
Packit ae235b
Packit ae235b
  if (schema == NULL)
Packit ae235b
    {
Packit ae235b
      ... disable the plugin or abort, etc ...
Packit ae235b
    }
Packit ae235b
Packit ae235b
  return g_settings_new_full (schema, NULL, NULL);
Packit ae235b
}
Packit ae235b
      
Packit ae235b
    
Packit ae235b
  
Packit ae235b
Packit ae235b
Packit ae235b

Packit ae235b

The code above shows how hooks should be added to the code that

Packit ae235b
initialises (or enables) the plugin to create the schema source and
Packit ae235b
how an API can be added to the plugin system to provide a convenient
Packit ae235b
way for the plugin to access its settings, using the schemas that it
Packit ae235b
ships.

Packit ae235b

From the standpoint of the plugin, it would need to ensure that it

Packit ae235b
ships a gschemas.compiled file as part of itself, and then simply do
Packit ae235b
the following:

Packit ae235b
Packit ae235b
  
Packit ae235b
    
Packit ae235b
      
Packit ae235b
        
1
Packit ae235b
2
Packit ae235b
3
Packit ae235b
4
Packit ae235b
5
Packit ae235b
6
Packit ae235b
7
Packit ae235b
8
Packit ae235b
        
{
Packit ae235b
  GSettings *settings;
Packit ae235b
  gint some_value;
Packit ae235b
Packit ae235b
  settings = plugin_get_settings (self, NULL);
Packit ae235b
  some_value = g_settings_get_int (settings, "some-value");
Packit ae235b
  ...
Packit ae235b
}
Packit ae235b
      
Packit ae235b
    
Packit ae235b
  
Packit ae235b
Packit ae235b
Packit ae235b

Packit ae235b

It's also possible that the plugin system expects the schema source

Packit ae235b
files (ie: .gschema.xml files) instead of a gschemas.compiled file.
Packit ae235b
In that case, the plugin loading system must compile the schemas for
Packit ae235b
itself before attempting to create the settings source.

Packit ae235b
Packit ae235b
Packit ae235b

Functions

Packit ae235b
Packit ae235b

g_settings_schema_source_get_default ()

Packit ae235b
GSettingsSchemaSource *
Packit ae235b
g_settings_schema_source_get_default (void);
Packit ae235b

Gets the default system schema source.

Packit ae235b

This function is not required for normal uses of GSettings but it

Packit ae235b
may be useful to authors of plugin management systems or to those who
Packit ae235b
want to introspect the content of schemas.

Packit ae235b

If no schemas are installed, NULL will be returned.

Packit ae235b

The returned source may actually consist of multiple schema sources

Packit ae235b
from different directories, depending on which directories were given
Packit ae235b
in XDG_DATA_DIRS and GSETTINGS_SCHEMA_DIR. For this reason, all
Packit ae235b
lookups performed against the default source should probably be done
Packit ae235b
recursively.

Packit ae235b
Packit ae235b

Returns

Packit ae235b

the default schema source.

Packit ae235b

[transfer none][nullable]

Packit ae235b
Packit ae235b

Since: 2.32

Packit ae235b
Packit ae235b

Packit ae235b
Packit ae235b

g_settings_schema_source_ref ()

Packit ae235b
GSettingsSchemaSource *
Packit ae235b
g_settings_schema_source_ref (GSettingsSchemaSource *source);
Packit ae235b

Increase the reference count of source

Packit ae235b
, returning a new reference.

Packit ae235b
Packit ae235b

Parameters

Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

source

Packit ae235b

a GSettingsSchemaSource

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Returns

Packit ae235b

a new reference to source

Packit ae235b

Packit ae235b
Packit ae235b

Since: 2.32

Packit ae235b
Packit ae235b

Packit ae235b
Packit ae235b

g_settings_schema_source_unref ()

Packit ae235b
void
Packit ae235b
g_settings_schema_source_unref (GSettingsSchemaSource *source);
Packit ae235b

Decrease the reference count of source

Packit ae235b
, possibly freeing it.

Packit ae235b
Packit ae235b

Parameters

Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

source

Packit ae235b

a GSettingsSchemaSource

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Since: 2.32

Packit ae235b
Packit ae235b

Packit ae235b
Packit ae235b

g_settings_schema_source_new_from_directory ()

Packit ae235b
GSettingsSchemaSource *
Packit ae235b
g_settings_schema_source_new_from_directory
Packit ae235b
                               (const gchar *directory,
Packit ae235b
                                GSettingsSchemaSource *parent,
Packit ae235b
                                gboolean trusted,
Packit ae235b
                                GError **error);
Packit ae235b

Attempts to create a new schema source corresponding to the contents

Packit ae235b
of the given directory.

Packit ae235b

This function is not required for normal uses of GSettings but it

Packit ae235b
may be useful to authors of plugin management systems.

Packit ae235b

The directory should contain a file called gschemas.compiled as

Packit ae235b
produced by the glib-compile-schemas tool.

Packit ae235b

If trusted

Packit ae235b
 is TRUE then gschemas.compiled is trusted not to be
Packit ae235b
corrupted. This assumption has a performance advantage, but can result
Packit ae235b
in crashes or inconsistent behaviour in the case of a corrupted file.
Packit ae235b
Generally, you should set trusted
Packit ae235b
 to TRUE for files installed by the
Packit ae235b
system and to FALSE for files in the home directory.

Packit ae235b

If parent

Packit ae235b
 is non-NULL then there are two effects.

Packit ae235b

First, if g_settings_schema_source_lookup() is called with the

Packit ae235b
recursive
Packit ae235b
 flag set to TRUE and the schema can not be found in the
Packit ae235b
source, the lookup will recurse to the parent.

Packit ae235b

Second, any references to other schemas specified within this

Packit ae235b
source (ie: child or extends) references may be resolved
Packit ae235b
from the parent
Packit ae235b
.

Packit ae235b

For this second reason, except in very unusual situations, the

Packit ae235b
parent
Packit ae235b
 should probably be given as the default schema source, as
Packit ae235b
returned by g_settings_schema_source_get_default().

Packit ae235b
Packit ae235b

Parameters

Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

directory

Packit ae235b

the filename of a directory.

Packit ae235b
[type filename]
Packit ae235b
Packit ae235b
Packit ae235b

parent

Packit ae235b

a GSettingsSchemaSource, or NULL.

Packit ae235b
[nullable]
Packit ae235b
Packit ae235b
Packit ae235b

trusted

Packit ae235b

TRUE, if the directory is trusted

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b

error

Packit ae235b

a pointer to a GError pointer set to NULL, or NULL

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Since: 2.32

Packit ae235b
Packit ae235b

Packit ae235b
Packit ae235b

g_settings_schema_source_list_schemas ()

Packit ae235b
void
Packit ae235b
g_settings_schema_source_list_schemas (GSettingsSchemaSource *source,
Packit ae235b
                                       gboolean recursive,
Packit ae235b
                                       gchar ***non_relocatable,
Packit ae235b
                                       gchar ***relocatable);
Packit ae235b

Lists the schemas in a given source.

Packit ae235b

If recursive

Packit ae235b
 is TRUE then include parent sources.  If FALSE then
Packit ae235b
only include the schemas from one source (ie: one directory).  You
Packit ae235b
probably want TRUE.

Packit ae235b

Non-relocatable schemas are those for which you can call

Packit ae235b
g_settings_new().  Relocatable schemas are those for which you must
Packit ae235b
use g_settings_new_with_path().

Packit ae235b

Do not call this function from normal programs. This is designed for

Packit ae235b
use by database editors, commandline tools, etc.

Packit ae235b
Packit ae235b

Parameters

Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

source

Packit ae235b

a GSettingsSchemaSource

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b

recursive

Packit ae235b

if we should recurse

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b

non_relocatable

Packit ae235b

the

Packit ae235b
list of non-relocatable schemas. 

Packit ae235b
[out][transfer full][array zero-terminated=1]
Packit ae235b
Packit ae235b
Packit ae235b

relocatable

Packit ae235b

the list

Packit ae235b
of relocatable schemas. 

Packit ae235b
[out][transfer full][array zero-terminated=1]
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Since: 2.40

Packit ae235b
Packit ae235b

Packit ae235b
Packit ae235b

g_settings_schema_source_lookup ()

Packit ae235b
GSettingsSchema *
Packit ae235b
g_settings_schema_source_lookup (GSettingsSchemaSource *source,
Packit ae235b
                                 const gchar *schema_id,
Packit ae235b
                                 gboolean recursive);
Packit ae235b

Looks up a schema with the identifier schema_id

Packit ae235b
 in source
Packit ae235b
.

Packit ae235b

This function is not required for normal uses of GSettings but it

Packit ae235b
may be useful to authors of plugin management systems or to those who
Packit ae235b
want to introspect the content of schemas.

Packit ae235b

If the schema isn't found directly in source

Packit ae235b
 and recursive
Packit ae235b
 is TRUE
Packit ae235b
then the parent sources will also be checked.

Packit ae235b

If the schema isn't found, NULL is returned.

Packit ae235b
Packit ae235b

Parameters

Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

source

Packit ae235b

a GSettingsSchemaSource

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b

schema_id

Packit ae235b

a schema ID

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b

recursive

Packit ae235b

TRUE if the lookup should be recursive

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Returns

Packit ae235b

a new GSettingsSchema.

Packit ae235b

[nullable][transfer full]

Packit ae235b
Packit ae235b

Since: 2.32

Packit ae235b
Packit ae235b

Packit ae235b
Packit ae235b

g_settings_schema_ref ()

Packit ae235b
GSettingsSchema *
Packit ae235b
g_settings_schema_ref (GSettingsSchema *schema);
Packit ae235b

Increase the reference count of schema

Packit ae235b
, returning a new reference.

Packit ae235b
Packit ae235b

Parameters

Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

schema

Packit ae235b

a GSettingsSchema

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Returns

Packit ae235b

a new reference to schema

Packit ae235b

Packit ae235b
Packit ae235b

Since: 2.32

Packit ae235b
Packit ae235b

Packit ae235b
Packit ae235b

g_settings_schema_unref ()

Packit ae235b
void
Packit ae235b
g_settings_schema_unref (GSettingsSchema *schema);
Packit ae235b

Decrease the reference count of schema

Packit ae235b
, possibly freeing it.

Packit ae235b
Packit ae235b

Parameters

Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

schema

Packit ae235b

a GSettingsSchema

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Since: 2.32

Packit ae235b
Packit ae235b

Packit ae235b
Packit ae235b

g_settings_schema_get_id ()

Packit ae235b
const gchar *
Packit ae235b
g_settings_schema_get_id (GSettingsSchema *schema);
Packit ae235b

Get the ID of schema

Packit ae235b
.

Packit ae235b
Packit ae235b

Parameters

Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

schema

Packit ae235b

a GSettingsSchema

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Returns

Packit ae235b

the ID.

Packit ae235b

[transfer none]

Packit ae235b
Packit ae235b
Packit ae235b

Packit ae235b
Packit ae235b

g_settings_schema_get_path ()

Packit ae235b
const gchar *
Packit ae235b
g_settings_schema_get_path (GSettingsSchema *schema);
Packit ae235b

Gets the path associated with schema

Packit ae235b
, or NULL.

Packit ae235b

Schemas may be single-instance or relocatable. Single-instance

Packit ae235b
schemas correspond to exactly one set of keys in the backend
Packit ae235b
database: those located at the path returned by this function.

Packit ae235b

Relocatable schemas can be referenced by other schemas and can

Packit ae235b
threfore describe multiple sets of keys at different locations.  For
Packit ae235b
relocatable schemas, this function will return NULL.

Packit ae235b
Packit ae235b

Parameters

Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

schema

Packit ae235b

a GSettingsSchema

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Returns

Packit ae235b

the path of the schema, or NULL.

Packit ae235b

[transfer none]

Packit ae235b
Packit ae235b

Since: 2.32

Packit ae235b
Packit ae235b

Packit ae235b
Packit ae235b

g_settings_schema_has_key ()

Packit ae235b
gboolean
Packit ae235b
g_settings_schema_has_key (GSettingsSchema *schema,
Packit ae235b
                           const gchar *name);
Packit ae235b

Checks if schema

Packit ae235b
 has a key named name
Packit ae235b
.

Packit ae235b
Packit ae235b

Parameters

Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

schema

Packit ae235b

a GSettingsSchema

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b

name

Packit ae235b

the name of a key

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Returns

Packit ae235b

TRUE if such a key exists

Packit ae235b
Packit ae235b

Since: 2.40

Packit ae235b
Packit ae235b

Packit ae235b
Packit ae235b

g_settings_schema_get_key ()

Packit ae235b
GSettingsSchemaKey *
Packit ae235b
g_settings_schema_get_key (GSettingsSchema *schema,
Packit ae235b
                           const gchar *name);
Packit ae235b

Gets the key named name

Packit ae235b
 from schema
Packit ae235b
.

Packit ae235b

It is a programmer error to request a key that does not exist. See

Packit ae235b
g_settings_schema_list_keys().

Packit ae235b
Packit ae235b

Parameters

Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

schema

Packit ae235b

a GSettingsSchema

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b

name

Packit ae235b

the name of a key

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Returns

Packit ae235b

the GSettingsSchemaKey for name

Packit ae235b
. 

Packit ae235b

[transfer full]

Packit ae235b
Packit ae235b

Since: 2.40

Packit ae235b
Packit ae235b

Packit ae235b
Packit ae235b

g_settings_schema_key_ref ()

Packit ae235b
GSettingsSchemaKey *
Packit ae235b
g_settings_schema_key_ref (GSettingsSchemaKey *key);
Packit ae235b

Increase the reference count of key

Packit ae235b
, returning a new reference.

Packit ae235b
Packit ae235b

Parameters

Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

key

Packit ae235b

a GSettingsSchemaKey

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Returns

Packit ae235b

a new reference to key

Packit ae235b

Packit ae235b
Packit ae235b

Since: 2.40

Packit ae235b
Packit ae235b

Packit ae235b
Packit ae235b

g_settings_schema_key_unref ()

Packit ae235b
void
Packit ae235b
g_settings_schema_key_unref (GSettingsSchemaKey *key);
Packit ae235b

Decrease the reference count of key

Packit ae235b
, possibly freeing it.

Packit ae235b
Packit ae235b

Parameters

Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

key

Packit ae235b

a GSettingsSchemaKey

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Since: 2.40

Packit ae235b
Packit ae235b

Packit ae235b
Packit ae235b

g_settings_schema_list_children ()

Packit ae235b
gchar **
Packit ae235b
g_settings_schema_list_children (GSettingsSchema *schema);
Packit ae235b

Gets the list of children in schema

Packit ae235b
.

Packit ae235b

You should free the return value with g_strfreev() when you are done

Packit ae235b
with it.

Packit ae235b
Packit ae235b

Parameters

Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

schema

Packit ae235b

a GSettingsSchema

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Returns

Packit ae235b

a list of the children on settings

Packit ae235b
. 

Packit ae235b

[transfer full][element-type utf8]

Packit ae235b
Packit ae235b

Since: 2.44

Packit ae235b
Packit ae235b

Packit ae235b
Packit ae235b

g_settings_schema_list_keys ()

Packit ae235b
gchar **
Packit ae235b
g_settings_schema_list_keys (GSettingsSchema *schema);
Packit ae235b

Introspects the list of keys on schema

Packit ae235b
.

Packit ae235b

You should probably not be calling this function from "normal" code

Packit ae235b
(since you should already know what keys are in your schema).  This
Packit ae235b
function is intended for introspection reasons.

Packit ae235b
Packit ae235b

Parameters

Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

schema

Packit ae235b

a GSettingsSchema

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Returns

Packit ae235b

a list of the keys on

Packit ae235b
schema
Packit ae235b
. 

Packit ae235b

[transfer full][element-type utf8]

Packit ae235b
Packit ae235b

Since: 2.46

Packit ae235b
Packit ae235b

Packit ae235b
Packit ae235b

g_settings_schema_key_get_value_type ()

Packit ae235b
const GVariantType *
Packit ae235b
g_settings_schema_key_get_value_type (GSettingsSchemaKey *key);
Packit ae235b

Gets the GVariantType of key

Packit ae235b
.

Packit ae235b
Packit ae235b

Parameters

Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

key

Packit ae235b

a GSettingsSchemaKey

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Returns

Packit ae235b

the type of key

Packit ae235b
. 

Packit ae235b

[transfer none]

Packit ae235b
Packit ae235b

Since: 2.40

Packit ae235b
Packit ae235b

Packit ae235b
Packit ae235b

g_settings_schema_key_get_default_value ()

Packit ae235b
GVariant *
Packit ae235b
g_settings_schema_key_get_default_value
Packit ae235b
                               (GSettingsSchemaKey *key);
Packit ae235b

Gets the default value for key

Packit ae235b
.

Packit ae235b

Note that this is the default value according to the schema. System

Packit ae235b
administrator defaults and lockdown are not visible via this API.

Packit ae235b
Packit ae235b

Parameters

Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

key

Packit ae235b

a GSettingsSchemaKey

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Returns

Packit ae235b

the default value for the key.

Packit ae235b

[transfer full]

Packit ae235b
Packit ae235b

Since: 2.40

Packit ae235b
Packit ae235b

Packit ae235b
Packit ae235b

g_settings_schema_key_get_range ()

Packit ae235b
GVariant *
Packit ae235b
g_settings_schema_key_get_range (GSettingsSchemaKey *key);
Packit ae235b

Queries the range of a key.

Packit ae235b

This function will return a GVariant that fully describes the range

Packit ae235b
of values that are valid for key
Packit ae235b
.

Packit ae235b

The type of GVariant returned is (sv). The string describes

Packit ae235b
the type of range restriction in effect. The type and meaning of
Packit ae235b
the value contained in the variant depends on the string.

Packit ae235b

If the string is 'type' then the variant contains an empty array.

Packit ae235b
The element type of that empty array is the expected type of value
Packit ae235b
and all values of that type are valid.

Packit ae235b

If the string is 'enum' then the variant contains an array

Packit ae235b
enumerating the possible values. Each item in the array is
Packit ae235b
a possible valid value and no other values are valid.

Packit ae235b

If the string is 'flags' then the variant contains an array. Each

Packit ae235b
item in the array is a value that may appear zero or one times in an
Packit ae235b
array to be used as the value for this key. For example, if the
Packit ae235b
variant contained the array ['x', 'y'] then the valid values for
Packit ae235b
the key would be [], ['x'], ['y'], ['x', 'y'] and
Packit ae235b
['y', 'x'].

Packit ae235b

Finally, if the string is 'range' then the variant contains a pair

Packit ae235b
of like-typed values -- the minimum and maximum permissible values
Packit ae235b
for this key.

Packit ae235b

This information should not be used by normal programs. It is

Packit ae235b
considered to be a hint for introspection purposes.  Normal programs
Packit ae235b
should already know what is permitted by their own schema.  The
Packit ae235b
format may change in any way in the future -- but particularly, new
Packit ae235b
forms may be added to the possibilities described above.

Packit ae235b

You should free the returned value with g_variant_unref() when it is

Packit ae235b
no longer needed.

Packit ae235b
Packit ae235b

Parameters

Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

key

Packit ae235b

a GSettingsSchemaKey

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Returns

Packit ae235b

a GVariant describing the range.

Packit ae235b

[transfer full]

Packit ae235b
Packit ae235b

Since: 2.40

Packit ae235b
Packit ae235b

Packit ae235b
Packit ae235b

g_settings_schema_key_range_check ()

Packit ae235b
gboolean
Packit ae235b
g_settings_schema_key_range_check (GSettingsSchemaKey *key,
Packit ae235b
                                   GVariant *value);
Packit ae235b

Checks if the given value

Packit ae235b
 is of the correct type and within the
Packit ae235b
permitted range for key
Packit ae235b
.

Packit ae235b

It is a programmer error if value

Packit ae235b
 is not of the correct type -- you
Packit ae235b
must check for this first.

Packit ae235b
Packit ae235b

Parameters

Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

key

Packit ae235b

a GSettingsSchemaKey

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b

value

Packit ae235b

the value to check

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Returns

Packit ae235b

TRUE if value

Packit ae235b
is valid for key
Packit ae235b

Packit ae235b
Packit ae235b

Since: 2.40

Packit ae235b
Packit ae235b

Packit ae235b
Packit ae235b

g_settings_schema_key_get_name ()

Packit ae235b
const gchar *
Packit ae235b
g_settings_schema_key_get_name (GSettingsSchemaKey *key);
Packit ae235b

Gets the name of key

Packit ae235b
.

Packit ae235b
Packit ae235b

Parameters

Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

key

Packit ae235b

a GSettingsSchemaKey

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Returns

Packit ae235b

the name of key

Packit ae235b
.

Packit ae235b
Packit ae235b

Since: 2.44

Packit ae235b
Packit ae235b

Packit ae235b
Packit ae235b

g_settings_schema_key_get_summary ()

Packit ae235b
const gchar *
Packit ae235b
g_settings_schema_key_get_summary (GSettingsSchemaKey *key);
Packit ae235b

Gets the summary for key

Packit ae235b
.

Packit ae235b

If no summary has been provided in the schema for key

Packit ae235b
, returns
Packit ae235b
NULL.

Packit ae235b

The summary is a short description of the purpose of the key; usually

Packit ae235b
one short sentence.  Summaries can be translated and the value
Packit ae235b
returned from this function is is the current locale.

Packit ae235b

This function is slow. The summary and description information for

Packit ae235b
the schemas is not stored in the compiled schema database so this
Packit ae235b
function has to parse all of the source XML files in the schema
Packit ae235b
directory.

Packit ae235b
Packit ae235b

Parameters

Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

key

Packit ae235b

a GSettingsSchemaKey

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Returns

Packit ae235b

the summary for key

Packit ae235b
, or NULL

Packit ae235b
Packit ae235b

Since: 2.34

Packit ae235b
Packit ae235b

Packit ae235b
Packit ae235b

g_settings_schema_key_get_description ()

Packit ae235b
const gchar *
Packit ae235b
g_settings_schema_key_get_description (GSettingsSchemaKey *key);
Packit ae235b

Gets the description for key

Packit ae235b
.

Packit ae235b

If no description has been provided in the schema for key

Packit ae235b
, returns
Packit ae235b
NULL.

Packit ae235b

The description can be one sentence to several paragraphs in length.

Packit ae235b
Paragraphs are delimited with a double newline.  Descriptions can be
Packit ae235b
translated and the value returned from this function is is the
Packit ae235b
current locale.

Packit ae235b

This function is slow. The summary and description information for

Packit ae235b
the schemas is not stored in the compiled schema database so this
Packit ae235b
function has to parse all of the source XML files in the schema
Packit ae235b
directory.

Packit ae235b
Packit ae235b

Parameters

Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

key

Packit ae235b

a GSettingsSchemaKey

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Returns

Packit ae235b

the description for key

Packit ae235b
, or NULL

Packit ae235b
Packit ae235b

Since: 2.34

Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Types and Values

Packit ae235b
Packit ae235b

GSettingsSchemaSource

Packit ae235b
typedef struct _GSettingsSchemaSource GSettingsSchemaSource;
Packit ae235b

This is an opaque structure type. You may not access it directly.

Packit ae235b

Since: 2.32

Packit ae235b
Packit ae235b

Packit ae235b
Packit ae235b

GSettingsSchema

Packit ae235b
typedef struct _GSettingsSchema GSettingsSchema;
Packit ae235b

This is an opaque structure type. You may not access it directly.

Packit ae235b

Since: 2.32

Packit ae235b
Packit ae235b

Packit ae235b
Packit ae235b

GSettingsSchemaKey

Packit ae235b
typedef struct _GSettingsSchemaKey GSettingsSchemaKey;
Packit ae235b

GSettingsSchemaKey is an opaque data structure and can only be accessed

Packit ae235b
using the following functions.

Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Generated by GTK-Doc V1.27
Packit ae235b
</body>
Packit ae235b
</html>