### Constructor

# Gio Settings new_full

since: 2.32

#### Declaration [src]

    GSettings*
    g_settings_new_full (
      GSettingsSchema* schema,
      GSettingsBackend* backend,
      const gchar* path
    )

#### Description [src]

Creates a new `GSettings` object with a given schema, backend and path.

It should be extremely rare that you ever want to use this function. It is made available for advanced use-cases (such as plugin systems that want to provide access to schemas loaded from custom locations, etc).

At the most basic level, a `GSettings` object is a pure composition of four things: a `GSettingsSchema`, a `GSettingsBackend`, a path within that backend, and a `GMainContext` to which signals are dispatched.

This constructor therefore gives you full control over constructing `GSettings` instances. The first 3 parameters are given directly as `schema`, `backend` and `path`, and the main context is taken from the thread-default (as per `g_settings_new()`).

If `backend` is `NULL` then the default backend is used.

If `path` is `NULL` then the path from the schema is used. It is an error if `path` is `NULL` and the schema has no path of its own or if `path` is non-`NULL` and not equal to the path that the schema does have.

Available since: 2.32

#### Parameters

`schema`

  Type: `GSettingsSchema`

  The schema describing the settings.

  The data is owned by the caller of the function.

`backend`

  Type: `GSettingsBackend`

  The settings backend to use.

  The argument can be `NULL`.
  The data is owned by the caller of the function.

`path`

  Type: `const gchar*`

  The path to use.

  The argument can be `NULL`.
  The data is owned by the caller of the function.
  The value is a NUL terminated UTF-8 string.

#### Return value

Type: `GSettings`

A new `GSettings` object.

The caller of the function takes ownership of the data, and is responsible for freeing it.