// Generated by gmmproc 2.66.3 -- DO NOT MODIFY! #ifndef _GIOMM_SETTINGSSCHEMAKEY_H #define _GIOMM_SETTINGSSCHEMAKEY_H #include #include #include /* Copyright (C) 2015 The giomm Development Team * * 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 Lesser General Public * License along with this library. If not, see . */ #include #include #ifndef DOXYGEN_SHOULD_SKIP_THIS typedef struct _GSettingsSchemaKey GSettingsSchemaKey; #endif namespace Gio { //TODO: Add some class documentation, though there is none in the C docs. /** See SettingsSchema. * * @newin{2,32} */ class GIOMM_API SettingsSchemaKey final { public: #ifndef DOXYGEN_SHOULD_SKIP_THIS using CppObjectType = SettingsSchemaKey; using BaseObjectType = GSettingsSchemaKey; #endif /* DOXYGEN_SHOULD_SKIP_THIS */ /** Increment the reference count for this object. * You should never need to do this manually - use the object via a RefPtr instead. */ void reference() const; /** Decrement the reference count for this object. * You should never need to do this manually - use the object via a RefPtr instead. */ void unreference() const; ///Provides access to the underlying C instance. GSettingsSchemaKey* gobj(); ///Provides access to the underlying C instance. const GSettingsSchemaKey* gobj() const; ///Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. GSettingsSchemaKey* gobj_copy() const; SettingsSchemaKey() = delete; // noncopyable SettingsSchemaKey(const SettingsSchemaKey&) = delete; SettingsSchemaKey& operator=(const SettingsSchemaKey&) = delete; protected: // Do not derive this. Gio::SettingsSchemaKey can neither be constructed nor deleted. void operator delete(void*, std::size_t); private: protected: //Ignore internal GSettingsSchemaKey functions. public: /** Gets the name of @a key. * * @newin{2,44} * * @return The name of @a key. */ Glib::ustring get_name() const; /** Gets the summary for @a key. * * If no summary has been provided in the schema for @a key, returns * nullptr. * * The summary is a short description of the purpose of the key; usually * one short sentence. Summaries can be translated and the value * returned from this function is is the current locale. * * This function is slow. The summary and description information for * the schemas is not stored in the compiled schema database so this * function has to parse all of the source XML files in the schema * directory. * * @newin{2,34} * * @return The summary for @a key, or nullptr. */ Glib::ustring get_summary() const; /** Gets the description for @a key. * * If no description has been provided in the schema for @a key, returns * nullptr. * * The description can be one sentence to several paragraphs in length. * Paragraphs are delimited with a double newline. Descriptions can be * translated and the value returned from this function is is the * current locale. * * This function is slow. The summary and description information for * the schemas is not stored in the compiled schema database so this * function has to parse all of the source XML files in the schema * directory. * * @newin{2,34} * * @return The description for @a key, or nullptr. */ Glib::ustring get_description() const; /** Gets the VariantType of @a key. * * @newin{2,40} * * @return The type of @a key. */ Glib::VariantType get_value_type() const; /** Gets the default value for @a key. * * Note that this is the default value according to the schema. System * administrator defaults and lockdown are not visible via this API. * * @newin{2,40} * * @return The default value for the key. */ Glib::VariantBase get_default_value() const; /** Queries the range of a key. * * This function will return a Variant that fully describes the range * of values that are valid for @a key. * * The type of Variant returned is `(sv)`. The string describes * the type of range restriction in effect. The type and meaning of * the value contained in the variant depends on the string. * * If the string is `'type'` then the variant contains an empty array. * The element type of that empty array is the expected type of value * and all values of that type are valid. * * If the string is `'enum'` then the variant contains an array * enumerating the possible values. Each item in the array is * a possible valid value and no other values are valid. * * If the string is `'flags'` then the variant contains an array. Each * item in the array is a value that may appear zero or one times in an * array to be used as the value for this key. For example, if the * variant contained the array `['x', 'y']` then the valid values for * the key would be `[]`, `['x']`, `['y']`, `['x', 'y']` and * `['y', 'x']`. * * Finally, if the string is `'range'` then the variant contains a pair * of like-typed values -- the minimum and maximum permissible values * for this key. * * This information should not be used by normal programs. It is * considered to be a hint for introspection purposes. Normal programs * should already know what is permitted by their own schema. The * format may change in any way in the future -- but particularly, new * forms may be added to the possibilities described above. * * You should free the returned value with Glib::variant_unref() when it is * no longer needed. * * @newin{2,40} * * @return A Variant describing the range. */ Glib::VariantBase get_range() const; /** Checks if the given @a value is of the correct type and within the * permitted range for @a key. * * It is a programmer error if @a value is not of the correct type -- you * must check for this first. * * @newin{2,40} * * @param value The value to check. * @return true if @a value is valid for @a key. */ bool range_check(const Glib::VariantBase& value) const; }; } // namespace Gio namespace Glib { /** A Glib::wrap() method for this object. * * @param object The C instance. * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref. * @result A C++ instance that wraps this C instance. * * @relates Gio::SettingsSchemaKey */ GIOMM_API Glib::RefPtr wrap(GSettingsSchemaKey* object, bool take_copy = false); } // namespace Glib #endif /* _GIOMM_SETTINGSSCHEMAKEY_H */