# Gio::SettingsBackend Class Reference

TODO. More...

`#include <giomm/settingsbackend.h>`

Inheritance diagram for Gio::SettingsBackend:
[legend]

List of all members.

## Public Member Functions

virtual | ~SettingsBackend ()
GSettingsBackend* | gobj ()
| Provides access to the underlying C GObject.
const GSettingsBackend* | gobj () const
| Provides access to the underlying C GObject.
void | backend_changed (const Glib::ustring& key, gpointer origin_tag)
| Signals that a single key has possibly changed.
void | path_changed (const Glib::ustring& path, gpointer origin_tag)
| Signals that all keys below a given path may have possibly changed.
void | path_writable_changed (const Glib::ustring& path)
| Signals that the writability of all keys below a given path may have changed.
void | writable_changed (const Glib::ustring& key)
| Signals that the writability of a single key has possibly changed.
void | changed_tree (GTree* tree, gpointer origin_tag)
| This call is a convenience wrapper.

## Static Public Member Functions

static void | add_interface (GType gtype_implementer)

## Related Functions

(Note that these are not member functions.)
Glib::RefPtr < Gio::SettingsBackend > | wrap (GSettingsBackend* object, bool take_copy=false)
| A Glib::wrap() method for this object.

## Detailed Description

TODO.

## Constructor & Destructor Documentation

virtual Gio::SettingsBackend::~SettingsBackend | ( |  | ) | `[virtual]`

## Member Function Documentation

static void Gio::SettingsBackend::add_interface | ( | GType | gtype_implementer | ) | `[static]`

void Gio::SettingsBackend::backend_changed | ( | const Glib::ustring& | key,
|  | gpointer | origin_tag |
| ) |  |  |

Signals that a single key has possibly changed.

Backend implementations should call this if a key has possibly changed its value.

key must be a valid key (ie: starting with a slash, not containing '//', and not ending with a slash).

The implementation must call this function during any call to Glib::settings_backend_write(), before the call returns (except in the case that no keys are actually changed and it cares to detect this fact). It may not rely on the existence of a mainloop for dispatching the signal later.

The implementation may call this function at any other time it likes in response to other events (such as changes occuring outside of the program). These calls may originate from a mainloop or may originate in response to any other action (including from calls to Glib::settings_backend_write()).

In the case that this call is in response to a call to Glib::settings_backend_write() then origin_tag must be set to the same value that was passed to that call.

Since glibmm 2.26:

Parameters:

  | key | The name of the key.
  | origin_tag | The origin tag.

void Gio::SettingsBackend::changed_tree | ( | GTree * | tree,
|  | gpointer | origin_tag |
| ) |  |  |

This call is a convenience wrapper.

It gets the list of changes from tree, computes the longest common prefix and calls g_settings_backend_changed().

Since glibmm 2.26:

Parameters:

  | tree | A Tree containing the changes.
  | origin_tag | The origin tag.

GSettingsBackend* Gio::SettingsBackend::gobj | ( |  | ) | `[inline]`

Provides access to the underlying C GObject.

Reimplemented from Glib::Interface.

const GSettingsBackend* Gio::SettingsBackend::gobj | ( |  | ) | const`[inline]`

Provides access to the underlying C GObject.

Reimplemented from Glib::Interface.

void Gio::SettingsBackend::path_changed | ( | const Glib::ustring& | path,
|  | gpointer | origin_tag |
| ) |  |  |

Signals that all keys below a given path may have possibly changed.

Backend implementations should call this if an entire path of keys have possibly changed their values.

path must be a valid path (ie: starting and ending with a slash and not containing '//').

The meaning of this signal is that any of the key which has a name starting with path may have changed.

The same rules for when notifications must occur apply as per g_settings_backend_changed(). This call might be an appropriate reasponse to a 'reset' call but implementations are also free to explicitly list the keys that were affected by that call if they can easily do so.

For efficiency reasons, the implementation should strive for path to be as long as possible (ie: the longest common prefix of all of the keys that were changed) but this is not strictly required. As an example, if this function is called with the path of "/" then every single key in the application will be notified of a possible change.

Since glibmm 2.26:

Parameters:

  | path | The path containing the changes.
  | origin_tag | The origin tag.

void Gio::SettingsBackend::path_writable_changed | ( | const Glib::ustring& | path | ) |

Signals that the writability of all keys below a given path may have changed.

Since GSettings performs no locking operations for itself, this call will always be made in response to external events.

Since glibmm 2.26:

Parameters:

  | path | The name of the path.

void Gio::SettingsBackend::writable_changed | ( | const Glib::ustring& | key | ) |

Signals that the writability of a single key has possibly changed.

Since GSettings performs no locking operations for itself, this call will always be made in response to external events.

Since glibmm 2.26:

Parameters:

  | key | The name of the key.

## Friends And Related Function Documentation

Glib::RefPtr< Gio::SettingsBackend > wrap | ( | GSettingsBackend * | object,
|  | bool | take_copy = `false` |
| ) |  |  | `[related]`

A Glib::wrap() method for this object.

Parameters:

  | object | The C instance.
  | take_copy | False if the result should take ownership of the C instance. True if it should take a new copy or ref.

Returns:
  A C++ instance that wraps this C instance.