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
// This file was generated by gir (https://github.com/gtk-rs/gir) // from gir-files (https://github.com/gtk-rs/gir-files) // DO NOT EDIT use gio_sys; use glib::object::IsA; use glib::translate::*; use std::fmt; glib_wrapper! { /// The `SettingsBackend` interface defines a generic interface for /// non-strictly-typed data that is stored in a hierarchy. To implement /// an alternative storage backend for `Settings`, you need to implement /// the `SettingsBackend` interface and then make it implement the /// extension point `G_SETTINGS_BACKEND_EXTENSION_POINT_NAME`. /// /// The interface defines methods for reading and writing values, a /// method for determining if writing of certain values will fail /// (lockdown) and a change notification mechanism. /// /// The semantics of the interface are very precisely defined and /// implementations must carefully adhere to the expectations of /// callers that are documented on each of the interface methods. /// /// Some of the `SettingsBackend` functions accept or return a `glib::Tree`. /// These trees always have strings as keys and `glib::Variant` as values. /// `g_settings_backend_create_tree` is a convenience function to create /// suitable trees. /// /// The `SettingsBackend` API is exported to allow third-party /// implementations, but does not carry the same stability guarantees /// as the public GIO API. For this reason, you have to define the /// C preprocessor symbol `G_SETTINGS_ENABLE_BACKEND` before including /// `gio/gsettingsbackend.h`. /// /// # Implements /// /// [`SettingsBackendExt`](trait.SettingsBackendExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html) pub struct SettingsBackend(Object<gio_sys::GSettingsBackend, gio_sys::GSettingsBackendClass, SettingsBackendClass>); match fn { get_type => || gio_sys::g_settings_backend_get_type(), } } impl SettingsBackend { //pub fn flatten_tree(tree: /*Ignored*/&glib::Tree) -> (GString, Vec<GString>, Vec<glib::Variant>) { // unsafe { TODO: call gio_sys:g_settings_backend_flatten_tree() } //} /// Returns the default `SettingsBackend`. It is possible to override /// the default by setting the `GSETTINGS_BACKEND` environment variable /// to the name of a settings backend. /// /// The user gets a reference to the backend. /// /// # Returns /// /// the default `SettingsBackend` pub fn get_default() -> Option<SettingsBackend> { unsafe { from_glib_full(gio_sys::g_settings_backend_get_default()) } } } pub const NONE_SETTINGS_BACKEND: Option<&SettingsBackend> = None; /// Trait containing all `SettingsBackend` methods. /// /// # Implementors /// /// [`SettingsBackend`](struct.SettingsBackend.html) pub trait SettingsBackendExt: 'static { //fn changed(&self, key: &str, origin_tag: /*Unimplemented*/Option<Fundamental: Pointer>); //fn changed_tree(&self, tree: /*Ignored*/&glib::Tree, origin_tag: /*Unimplemented*/Option<Fundamental: Pointer>); //fn keys_changed(&self, path: &str, items: &[&str], origin_tag: /*Unimplemented*/Option<Fundamental: Pointer>); //fn path_changed(&self, path: &str, origin_tag: /*Unimplemented*/Option<Fundamental: Pointer>); /// 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. /// ## `path` /// the name of the path fn path_writable_changed(&self, path: &str); /// 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. /// ## `key` /// the name of the key fn writable_changed(&self, key: &str); } impl<O: IsA<SettingsBackend>> SettingsBackendExt for O { //fn changed(&self, key: &str, origin_tag: /*Unimplemented*/Option<Fundamental: Pointer>) { // unsafe { TODO: call gio_sys:g_settings_backend_changed() } //} //fn changed_tree(&self, tree: /*Ignored*/&glib::Tree, origin_tag: /*Unimplemented*/Option<Fundamental: Pointer>) { // unsafe { TODO: call gio_sys:g_settings_backend_changed_tree() } //} //fn keys_changed(&self, path: &str, items: &[&str], origin_tag: /*Unimplemented*/Option<Fundamental: Pointer>) { // unsafe { TODO: call gio_sys:g_settings_backend_keys_changed() } //} //fn path_changed(&self, path: &str, origin_tag: /*Unimplemented*/Option<Fundamental: Pointer>) { // unsafe { TODO: call gio_sys:g_settings_backend_path_changed() } //} fn path_writable_changed(&self, path: &str) { unsafe { gio_sys::g_settings_backend_path_writable_changed( self.as_ref().to_glib_none().0, path.to_glib_none().0, ); } } fn writable_changed(&self, key: &str) { unsafe { gio_sys::g_settings_backend_writable_changed( self.as_ref().to_glib_none().0, key.to_glib_none().0, ); } } } impl fmt::Display for SettingsBackend { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { write!(f, "SettingsBackend") } }