{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc) 'GI.Gio.Structs.SettingsSchemaKey.SettingsSchemaKey' is an opaque data structure and can only be accessed using the following functions. -} #define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \ && !defined(__HADDOCK_VERSION__)) module GI.Gio.Structs.SettingsSchemaKey ( -- * Exported types SettingsSchemaKey(..) , noSettingsSchemaKey , -- * Methods -- ** getDefaultValue #method:getDefaultValue# #if ENABLE_OVERLOADING SettingsSchemaKeyGetDefaultValueMethodInfo, #endif settingsSchemaKeyGetDefaultValue , -- ** getDescription #method:getDescription# #if ENABLE_OVERLOADING SettingsSchemaKeyGetDescriptionMethodInfo, #endif settingsSchemaKeyGetDescription , -- ** getName #method:getName# #if ENABLE_OVERLOADING SettingsSchemaKeyGetNameMethodInfo , #endif settingsSchemaKeyGetName , -- ** getRange #method:getRange# #if ENABLE_OVERLOADING SettingsSchemaKeyGetRangeMethodInfo , #endif settingsSchemaKeyGetRange , -- ** getSummary #method:getSummary# #if ENABLE_OVERLOADING SettingsSchemaKeyGetSummaryMethodInfo , #endif settingsSchemaKeyGetSummary , -- ** getValueType #method:getValueType# #if ENABLE_OVERLOADING SettingsSchemaKeyGetValueTypeMethodInfo , #endif settingsSchemaKeyGetValueType , -- ** rangeCheck #method:rangeCheck# #if ENABLE_OVERLOADING SettingsSchemaKeyRangeCheckMethodInfo , #endif settingsSchemaKeyRangeCheck , -- ** ref #method:ref# #if ENABLE_OVERLOADING SettingsSchemaKeyRefMethodInfo , #endif settingsSchemaKeyRef , -- ** unref #method:unref# #if ENABLE_OVERLOADING SettingsSchemaKeyUnrefMethodInfo , #endif settingsSchemaKeyUnref , ) where import Data.GI.Base.ShortPrelude import qualified Data.GI.Base.ShortPrelude as SP import qualified Data.GI.Base.Overloading as O import qualified Prelude as P import qualified Data.GI.Base.Attributes as GI.Attributes import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr import qualified Data.GI.Base.GClosure as B.GClosure import qualified Data.GI.Base.GError as B.GError import qualified Data.GI.Base.GVariant as B.GVariant import qualified Data.GI.Base.GValue as B.GValue import qualified Data.GI.Base.GParamSpec as B.GParamSpec import qualified Data.GI.Base.CallStack as B.CallStack import qualified Data.GI.Base.Properties as B.Properties import qualified Data.Text as T import qualified Data.ByteString.Char8 as B import qualified Data.Map as Map import qualified Foreign.Ptr as FP import qualified GHC.OverloadedLabels as OL import qualified GI.GLib.Structs.VariantType as GLib.VariantType -- | Memory-managed wrapper type. newtype SettingsSchemaKey = SettingsSchemaKey (ManagedPtr SettingsSchemaKey) foreign import ccall "g_settings_schema_key_get_type" c_g_settings_schema_key_get_type :: IO GType instance BoxedObject SettingsSchemaKey where boxedType _ = c_g_settings_schema_key_get_type -- | A convenience alias for `Nothing` :: `Maybe` `SettingsSchemaKey`. noSettingsSchemaKey :: Maybe SettingsSchemaKey noSettingsSchemaKey = Nothing #if ENABLE_OVERLOADING instance O.HasAttributeList SettingsSchemaKey type instance O.AttributeList SettingsSchemaKey = SettingsSchemaKeyAttributeList type SettingsSchemaKeyAttributeList = ('[ ] :: [(Symbol, *)]) #endif -- method SettingsSchemaKey::get_default_value -- method type : OrdinaryMethod -- Args : [Arg {argCName = "key", argType = TInterface (Name {namespace = "Gio", name = "SettingsSchemaKey"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSettingsSchemaKey", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just TVariant -- throws : False -- Skip return : False foreign import ccall "g_settings_schema_key_get_default_value" g_settings_schema_key_get_default_value :: Ptr SettingsSchemaKey -> -- key : TInterface (Name {namespace = "Gio", name = "SettingsSchemaKey"}) IO (Ptr GVariant) {- | Gets the default value for /@key@/. Note that this is the default value according to the schema. System administrator defaults and lockdown are not visible via this API. /Since: 2.40/ -} settingsSchemaKeyGetDefaultValue :: (B.CallStack.HasCallStack, MonadIO m) => SettingsSchemaKey {- ^ /@key@/: a 'GI.Gio.Structs.SettingsSchemaKey.SettingsSchemaKey' -} -> m GVariant {- ^ __Returns:__ the default value for the key -} settingsSchemaKeyGetDefaultValue key = liftIO $ do key' <- unsafeManagedPtrGetPtr key result <- g_settings_schema_key_get_default_value key' checkUnexpectedReturnNULL "settingsSchemaKeyGetDefaultValue" result result' <- B.GVariant.wrapGVariantPtr result touchManagedPtr key return result' #if ENABLE_OVERLOADING data SettingsSchemaKeyGetDefaultValueMethodInfo instance (signature ~ (m GVariant), MonadIO m) => O.MethodInfo SettingsSchemaKeyGetDefaultValueMethodInfo SettingsSchemaKey signature where overloadedMethod _ = settingsSchemaKeyGetDefaultValue #endif -- method SettingsSchemaKey::get_description -- method type : OrdinaryMethod -- Args : [Arg {argCName = "key", argType = TInterface (Name {namespace = "Gio", name = "SettingsSchemaKey"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSettingsSchemaKey", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TUTF8) -- throws : False -- Skip return : False foreign import ccall "g_settings_schema_key_get_description" g_settings_schema_key_get_description :: Ptr SettingsSchemaKey -> -- key : TInterface (Name {namespace = "Gio", name = "SettingsSchemaKey"}) IO CString {- | Gets the description for /@key@/. If no description has been provided in the schema for /@key@/, returns 'Nothing'. 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. /Since: 2.34/ -} settingsSchemaKeyGetDescription :: (B.CallStack.HasCallStack, MonadIO m) => SettingsSchemaKey {- ^ /@key@/: a 'GI.Gio.Structs.SettingsSchemaKey.SettingsSchemaKey' -} -> m T.Text {- ^ __Returns:__ the description for /@key@/, or 'Nothing' -} settingsSchemaKeyGetDescription key = liftIO $ do key' <- unsafeManagedPtrGetPtr key result <- g_settings_schema_key_get_description key' checkUnexpectedReturnNULL "settingsSchemaKeyGetDescription" result result' <- cstringToText result touchManagedPtr key return result' #if ENABLE_OVERLOADING data SettingsSchemaKeyGetDescriptionMethodInfo instance (signature ~ (m T.Text), MonadIO m) => O.MethodInfo SettingsSchemaKeyGetDescriptionMethodInfo SettingsSchemaKey signature where overloadedMethod _ = settingsSchemaKeyGetDescription #endif -- method SettingsSchemaKey::get_name -- method type : OrdinaryMethod -- Args : [Arg {argCName = "key", argType = TInterface (Name {namespace = "Gio", name = "SettingsSchemaKey"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSettingsSchemaKey", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TUTF8) -- throws : False -- Skip return : False foreign import ccall "g_settings_schema_key_get_name" g_settings_schema_key_get_name :: Ptr SettingsSchemaKey -> -- key : TInterface (Name {namespace = "Gio", name = "SettingsSchemaKey"}) IO CString {- | Gets the name of /@key@/. /Since: 2.44/ -} settingsSchemaKeyGetName :: (B.CallStack.HasCallStack, MonadIO m) => SettingsSchemaKey {- ^ /@key@/: a 'GI.Gio.Structs.SettingsSchemaKey.SettingsSchemaKey' -} -> m T.Text {- ^ __Returns:__ the name of /@key@/. -} settingsSchemaKeyGetName key = liftIO $ do key' <- unsafeManagedPtrGetPtr key result <- g_settings_schema_key_get_name key' checkUnexpectedReturnNULL "settingsSchemaKeyGetName" result result' <- cstringToText result touchManagedPtr key return result' #if ENABLE_OVERLOADING data SettingsSchemaKeyGetNameMethodInfo instance (signature ~ (m T.Text), MonadIO m) => O.MethodInfo SettingsSchemaKeyGetNameMethodInfo SettingsSchemaKey signature where overloadedMethod _ = settingsSchemaKeyGetName #endif -- method SettingsSchemaKey::get_range -- method type : OrdinaryMethod -- Args : [Arg {argCName = "key", argType = TInterface (Name {namespace = "Gio", name = "SettingsSchemaKey"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSettingsSchemaKey", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just TVariant -- throws : False -- Skip return : False foreign import ccall "g_settings_schema_key_get_range" g_settings_schema_key_get_range :: Ptr SettingsSchemaKey -> -- key : TInterface (Name {namespace = "Gio", name = "SettingsSchemaKey"}) IO (Ptr GVariant) {- | Queries the range of a key. This function will return a 'GVariant' that fully describes the range of values that are valid for /@key@/. The type of 'GVariant' 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 'GI.GLib.Structs.Variant.variantUnref' when it is no longer needed. /Since: 2.40/ -} settingsSchemaKeyGetRange :: (B.CallStack.HasCallStack, MonadIO m) => SettingsSchemaKey {- ^ /@key@/: a 'GI.Gio.Structs.SettingsSchemaKey.SettingsSchemaKey' -} -> m GVariant {- ^ __Returns:__ a 'GVariant' describing the range -} settingsSchemaKeyGetRange key = liftIO $ do key' <- unsafeManagedPtrGetPtr key result <- g_settings_schema_key_get_range key' checkUnexpectedReturnNULL "settingsSchemaKeyGetRange" result result' <- B.GVariant.wrapGVariantPtr result touchManagedPtr key return result' #if ENABLE_OVERLOADING data SettingsSchemaKeyGetRangeMethodInfo instance (signature ~ (m GVariant), MonadIO m) => O.MethodInfo SettingsSchemaKeyGetRangeMethodInfo SettingsSchemaKey signature where overloadedMethod _ = settingsSchemaKeyGetRange #endif -- method SettingsSchemaKey::get_summary -- method type : OrdinaryMethod -- Args : [Arg {argCName = "key", argType = TInterface (Name {namespace = "Gio", name = "SettingsSchemaKey"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSettingsSchemaKey", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TUTF8) -- throws : False -- Skip return : False foreign import ccall "g_settings_schema_key_get_summary" g_settings_schema_key_get_summary :: Ptr SettingsSchemaKey -> -- key : TInterface (Name {namespace = "Gio", name = "SettingsSchemaKey"}) IO CString {- | Gets the summary for /@key@/. If no summary has been provided in the schema for /@key@/, returns 'Nothing'. 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. /Since: 2.34/ -} settingsSchemaKeyGetSummary :: (B.CallStack.HasCallStack, MonadIO m) => SettingsSchemaKey {- ^ /@key@/: a 'GI.Gio.Structs.SettingsSchemaKey.SettingsSchemaKey' -} -> m T.Text {- ^ __Returns:__ the summary for /@key@/, or 'Nothing' -} settingsSchemaKeyGetSummary key = liftIO $ do key' <- unsafeManagedPtrGetPtr key result <- g_settings_schema_key_get_summary key' checkUnexpectedReturnNULL "settingsSchemaKeyGetSummary" result result' <- cstringToText result touchManagedPtr key return result' #if ENABLE_OVERLOADING data SettingsSchemaKeyGetSummaryMethodInfo instance (signature ~ (m T.Text), MonadIO m) => O.MethodInfo SettingsSchemaKeyGetSummaryMethodInfo SettingsSchemaKey signature where overloadedMethod _ = settingsSchemaKeyGetSummary #endif -- method SettingsSchemaKey::get_value_type -- method type : OrdinaryMethod -- Args : [Arg {argCName = "key", argType = TInterface (Name {namespace = "Gio", name = "SettingsSchemaKey"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSettingsSchemaKey", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "GLib", name = "VariantType"})) -- throws : False -- Skip return : False foreign import ccall "g_settings_schema_key_get_value_type" g_settings_schema_key_get_value_type :: Ptr SettingsSchemaKey -> -- key : TInterface (Name {namespace = "Gio", name = "SettingsSchemaKey"}) IO (Ptr GLib.VariantType.VariantType) {- | Gets the 'GI.GLib.Structs.VariantType.VariantType' of /@key@/. /Since: 2.40/ -} settingsSchemaKeyGetValueType :: (B.CallStack.HasCallStack, MonadIO m) => SettingsSchemaKey {- ^ /@key@/: a 'GI.Gio.Structs.SettingsSchemaKey.SettingsSchemaKey' -} -> m GLib.VariantType.VariantType {- ^ __Returns:__ the type of /@key@/ -} settingsSchemaKeyGetValueType key = liftIO $ do key' <- unsafeManagedPtrGetPtr key result <- g_settings_schema_key_get_value_type key' checkUnexpectedReturnNULL "settingsSchemaKeyGetValueType" result result' <- (newBoxed GLib.VariantType.VariantType) result touchManagedPtr key return result' #if ENABLE_OVERLOADING data SettingsSchemaKeyGetValueTypeMethodInfo instance (signature ~ (m GLib.VariantType.VariantType), MonadIO m) => O.MethodInfo SettingsSchemaKeyGetValueTypeMethodInfo SettingsSchemaKey signature where overloadedMethod _ = settingsSchemaKeyGetValueType #endif -- method SettingsSchemaKey::range_check -- method type : OrdinaryMethod -- Args : [Arg {argCName = "key", argType = TInterface (Name {namespace = "Gio", name = "SettingsSchemaKey"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSettingsSchemaKey", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TVariant, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the value to check", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "g_settings_schema_key_range_check" g_settings_schema_key_range_check :: Ptr SettingsSchemaKey -> -- key : TInterface (Name {namespace = "Gio", name = "SettingsSchemaKey"}) Ptr GVariant -> -- value : TVariant IO CInt {- | Checks if the given /@value@/ is of the correct type and within the permitted range for /@key@/. It is a programmer error if /@value@/ is not of the correct type -- you must check for this first. /Since: 2.40/ -} settingsSchemaKeyRangeCheck :: (B.CallStack.HasCallStack, MonadIO m) => SettingsSchemaKey {- ^ /@key@/: a 'GI.Gio.Structs.SettingsSchemaKey.SettingsSchemaKey' -} -> GVariant {- ^ /@value@/: the value to check -} -> m Bool {- ^ __Returns:__ 'True' if /@value@/ is valid for /@key@/ -} settingsSchemaKeyRangeCheck key value = liftIO $ do key' <- unsafeManagedPtrGetPtr key value' <- unsafeManagedPtrGetPtr value result <- g_settings_schema_key_range_check key' value' let result' = (/= 0) result touchManagedPtr key touchManagedPtr value return result' #if ENABLE_OVERLOADING data SettingsSchemaKeyRangeCheckMethodInfo instance (signature ~ (GVariant -> m Bool), MonadIO m) => O.MethodInfo SettingsSchemaKeyRangeCheckMethodInfo SettingsSchemaKey signature where overloadedMethod _ = settingsSchemaKeyRangeCheck #endif -- method SettingsSchemaKey::ref -- method type : OrdinaryMethod -- Args : [Arg {argCName = "key", argType = TInterface (Name {namespace = "Gio", name = "SettingsSchemaKey"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSettingsSchemaKey", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Gio", name = "SettingsSchemaKey"})) -- throws : False -- Skip return : False foreign import ccall "g_settings_schema_key_ref" g_settings_schema_key_ref :: Ptr SettingsSchemaKey -> -- key : TInterface (Name {namespace = "Gio", name = "SettingsSchemaKey"}) IO (Ptr SettingsSchemaKey) {- | Increase the reference count of /@key@/, returning a new reference. /Since: 2.40/ -} settingsSchemaKeyRef :: (B.CallStack.HasCallStack, MonadIO m) => SettingsSchemaKey {- ^ /@key@/: a 'GI.Gio.Structs.SettingsSchemaKey.SettingsSchemaKey' -} -> m SettingsSchemaKey {- ^ __Returns:__ a new reference to /@key@/ -} settingsSchemaKeyRef key = liftIO $ do key' <- unsafeManagedPtrGetPtr key result <- g_settings_schema_key_ref key' checkUnexpectedReturnNULL "settingsSchemaKeyRef" result result' <- (wrapBoxed SettingsSchemaKey) result touchManagedPtr key return result' #if ENABLE_OVERLOADING data SettingsSchemaKeyRefMethodInfo instance (signature ~ (m SettingsSchemaKey), MonadIO m) => O.MethodInfo SettingsSchemaKeyRefMethodInfo SettingsSchemaKey signature where overloadedMethod _ = settingsSchemaKeyRef #endif -- method SettingsSchemaKey::unref -- method type : OrdinaryMethod -- Args : [Arg {argCName = "key", argType = TInterface (Name {namespace = "Gio", name = "SettingsSchemaKey"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSettingsSchemaKey", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "g_settings_schema_key_unref" g_settings_schema_key_unref :: Ptr SettingsSchemaKey -> -- key : TInterface (Name {namespace = "Gio", name = "SettingsSchemaKey"}) IO () {- | Decrease the reference count of /@key@/, possibly freeing it. /Since: 2.40/ -} settingsSchemaKeyUnref :: (B.CallStack.HasCallStack, MonadIO m) => SettingsSchemaKey {- ^ /@key@/: a 'GI.Gio.Structs.SettingsSchemaKey.SettingsSchemaKey' -} -> m () settingsSchemaKeyUnref key = liftIO $ do key' <- unsafeManagedPtrGetPtr key g_settings_schema_key_unref key' touchManagedPtr key return () #if ENABLE_OVERLOADING data SettingsSchemaKeyUnrefMethodInfo instance (signature ~ (m ()), MonadIO m) => O.MethodInfo SettingsSchemaKeyUnrefMethodInfo SettingsSchemaKey signature where overloadedMethod _ = settingsSchemaKeyUnref #endif #if ENABLE_OVERLOADING type family ResolveSettingsSchemaKeyMethod (t :: Symbol) (o :: *) :: * where ResolveSettingsSchemaKeyMethod "rangeCheck" o = SettingsSchemaKeyRangeCheckMethodInfo ResolveSettingsSchemaKeyMethod "ref" o = SettingsSchemaKeyRefMethodInfo ResolveSettingsSchemaKeyMethod "unref" o = SettingsSchemaKeyUnrefMethodInfo ResolveSettingsSchemaKeyMethod "getDefaultValue" o = SettingsSchemaKeyGetDefaultValueMethodInfo ResolveSettingsSchemaKeyMethod "getDescription" o = SettingsSchemaKeyGetDescriptionMethodInfo ResolveSettingsSchemaKeyMethod "getName" o = SettingsSchemaKeyGetNameMethodInfo ResolveSettingsSchemaKeyMethod "getRange" o = SettingsSchemaKeyGetRangeMethodInfo ResolveSettingsSchemaKeyMethod "getSummary" o = SettingsSchemaKeyGetSummaryMethodInfo ResolveSettingsSchemaKeyMethod "getValueType" o = SettingsSchemaKeyGetValueTypeMethodInfo ResolveSettingsSchemaKeyMethod l o = O.MethodResolutionFailed l o instance (info ~ ResolveSettingsSchemaKeyMethod t SettingsSchemaKey, O.MethodInfo info SettingsSchemaKey p) => OL.IsLabel t (SettingsSchemaKey -> p) where #if MIN_VERSION_base(4,10,0) fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info) #else fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info) #endif #endif