{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc) This structure is used to provide the type system with the information required to initialize and destruct (finalize) a parameter\'s class and instances thereof. The initialized structure is passed to the 'GI.GObject.Functions.paramTypeRegisterStatic' The type system will perform a deep copy of this structure, so its memory does not need to be persistent across invocation of 'GI.GObject.Functions.paramTypeRegisterStatic'. -} #define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \ && !defined(__HADDOCK_VERSION__)) module GI.GObject.Structs.ParamSpecTypeInfo ( -- * Exported types ParamSpecTypeInfo(..) , newZeroParamSpecTypeInfo , noParamSpecTypeInfo , -- * Properties -- ** finalize #attr:finalize# {- | /No description available in the introspection data./ -} clearParamSpecTypeInfoFinalize , getParamSpecTypeInfoFinalize , #if ENABLE_OVERLOADING paramSpecTypeInfo_finalize , #endif setParamSpecTypeInfoFinalize , -- ** instanceInit #attr:instanceInit# {- | /No description available in the introspection data./ -} clearParamSpecTypeInfoInstanceInit , getParamSpecTypeInfoInstanceInit , #if ENABLE_OVERLOADING paramSpecTypeInfo_instanceInit , #endif setParamSpecTypeInfoInstanceInit , -- ** instanceSize #attr:instanceSize# {- | Size of the instance (object) structure. -} getParamSpecTypeInfoInstanceSize , #if ENABLE_OVERLOADING paramSpecTypeInfo_instanceSize , #endif setParamSpecTypeInfoInstanceSize , -- ** nPreallocs #attr:nPreallocs# {- | Prior to GLib 2.10, it specified the number of pre-allocated (cached) instances to reserve memory for (0 indicates no caching). Since GLib 2.10, it is ignored, since instances are allocated with the [slice allocator][glib-Memory-Slices] now. -} getParamSpecTypeInfoNPreallocs , #if ENABLE_OVERLOADING paramSpecTypeInfo_nPreallocs , #endif setParamSpecTypeInfoNPreallocs , -- ** valueSetDefault #attr:valueSetDefault# {- | /No description available in the introspection data./ -} clearParamSpecTypeInfoValueSetDefault , getParamSpecTypeInfoValueSetDefault , #if ENABLE_OVERLOADING paramSpecTypeInfo_valueSetDefault , #endif setParamSpecTypeInfoValueSetDefault , -- ** valueType #attr:valueType# {- | The 'GType' of values conforming to this 'GI.GObject.Objects.ParamSpec.ParamSpec' -} getParamSpecTypeInfoValueType , #if ENABLE_OVERLOADING paramSpecTypeInfo_valueType , #endif setParamSpecTypeInfoValueType , -- ** valueValidate #attr:valueValidate# {- | /No description available in the introspection data./ -} clearParamSpecTypeInfoValueValidate , getParamSpecTypeInfoValueValidate , #if ENABLE_OVERLOADING paramSpecTypeInfo_valueValidate , #endif setParamSpecTypeInfoValueValidate , -- ** valuesCmp #attr:valuesCmp# {- | /No description available in the introspection data./ -} clearParamSpecTypeInfoValuesCmp , getParamSpecTypeInfoValuesCmp , #if ENABLE_OVERLOADING paramSpecTypeInfo_valuesCmp , #endif setParamSpecTypeInfoValuesCmp , ) 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.GObject.Callbacks as GObject.Callbacks -- | Memory-managed wrapper type. newtype ParamSpecTypeInfo = ParamSpecTypeInfo (ManagedPtr ParamSpecTypeInfo) instance WrappedPtr ParamSpecTypeInfo where wrappedPtrCalloc = callocBytes 56 wrappedPtrCopy = \p -> withManagedPtr p (copyBytes 56 >=> wrapPtr ParamSpecTypeInfo) wrappedPtrFree = Just ptr_to_g_free -- | Construct a `ParamSpecTypeInfo` struct initialized to zero. newZeroParamSpecTypeInfo :: MonadIO m => m ParamSpecTypeInfo newZeroParamSpecTypeInfo = liftIO $ wrappedPtrCalloc >>= wrapPtr ParamSpecTypeInfo instance tag ~ 'AttrSet => Constructible ParamSpecTypeInfo tag where new _ attrs = do o <- newZeroParamSpecTypeInfo GI.Attributes.set o attrs return o -- | A convenience alias for `Nothing` :: `Maybe` `ParamSpecTypeInfo`. noParamSpecTypeInfo :: Maybe ParamSpecTypeInfo noParamSpecTypeInfo = Nothing {- | Get the value of the “@instance_size@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' paramSpecTypeInfo #instanceSize @ -} getParamSpecTypeInfoInstanceSize :: MonadIO m => ParamSpecTypeInfo -> m Word16 getParamSpecTypeInfoInstanceSize s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 0) :: IO Word16 return val {- | Set the value of the “@instance_size@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' paramSpecTypeInfo [ #instanceSize 'Data.GI.Base.Attributes.:=' value ] @ -} setParamSpecTypeInfoInstanceSize :: MonadIO m => ParamSpecTypeInfo -> Word16 -> m () setParamSpecTypeInfoInstanceSize s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 0) (val :: Word16) #if ENABLE_OVERLOADING data ParamSpecTypeInfoInstanceSizeFieldInfo instance AttrInfo ParamSpecTypeInfoInstanceSizeFieldInfo where type AttrAllowedOps ParamSpecTypeInfoInstanceSizeFieldInfo = '[ 'AttrSet, 'AttrGet] type AttrSetTypeConstraint ParamSpecTypeInfoInstanceSizeFieldInfo = (~) Word16 type AttrBaseTypeConstraint ParamSpecTypeInfoInstanceSizeFieldInfo = (~) ParamSpecTypeInfo type AttrGetType ParamSpecTypeInfoInstanceSizeFieldInfo = Word16 type AttrLabel ParamSpecTypeInfoInstanceSizeFieldInfo = "instance_size" type AttrOrigin ParamSpecTypeInfoInstanceSizeFieldInfo = ParamSpecTypeInfo attrGet _ = getParamSpecTypeInfoInstanceSize attrSet _ = setParamSpecTypeInfoInstanceSize attrConstruct = undefined attrClear _ = undefined paramSpecTypeInfo_instanceSize :: AttrLabelProxy "instanceSize" paramSpecTypeInfo_instanceSize = AttrLabelProxy #endif {- | Get the value of the “@n_preallocs@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' paramSpecTypeInfo #nPreallocs @ -} getParamSpecTypeInfoNPreallocs :: MonadIO m => ParamSpecTypeInfo -> m Word16 getParamSpecTypeInfoNPreallocs s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 2) :: IO Word16 return val {- | Set the value of the “@n_preallocs@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' paramSpecTypeInfo [ #nPreallocs 'Data.GI.Base.Attributes.:=' value ] @ -} setParamSpecTypeInfoNPreallocs :: MonadIO m => ParamSpecTypeInfo -> Word16 -> m () setParamSpecTypeInfoNPreallocs s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 2) (val :: Word16) #if ENABLE_OVERLOADING data ParamSpecTypeInfoNPreallocsFieldInfo instance AttrInfo ParamSpecTypeInfoNPreallocsFieldInfo where type AttrAllowedOps ParamSpecTypeInfoNPreallocsFieldInfo = '[ 'AttrSet, 'AttrGet] type AttrSetTypeConstraint ParamSpecTypeInfoNPreallocsFieldInfo = (~) Word16 type AttrBaseTypeConstraint ParamSpecTypeInfoNPreallocsFieldInfo = (~) ParamSpecTypeInfo type AttrGetType ParamSpecTypeInfoNPreallocsFieldInfo = Word16 type AttrLabel ParamSpecTypeInfoNPreallocsFieldInfo = "n_preallocs" type AttrOrigin ParamSpecTypeInfoNPreallocsFieldInfo = ParamSpecTypeInfo attrGet _ = getParamSpecTypeInfoNPreallocs attrSet _ = setParamSpecTypeInfoNPreallocs attrConstruct = undefined attrClear _ = undefined paramSpecTypeInfo_nPreallocs :: AttrLabelProxy "nPreallocs" paramSpecTypeInfo_nPreallocs = AttrLabelProxy #endif {- | Get the value of the “@instance_init@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' paramSpecTypeInfo #instanceInit @ -} getParamSpecTypeInfoInstanceInit :: MonadIO m => ParamSpecTypeInfo -> m (Maybe GObject.Callbacks.ParamSpecTypeInfoInstanceInitFieldCallback) getParamSpecTypeInfoInstanceInit s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 8) :: IO (FunPtr GObject.Callbacks.C_ParamSpecTypeInfoInstanceInitFieldCallback) result <- SP.convertFunPtrIfNonNull val $ \val' -> do let val'' = GObject.Callbacks.dynamic_ParamSpecTypeInfoInstanceInitFieldCallback val' return val'' return result {- | Set the value of the “@instance_init@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' paramSpecTypeInfo [ #instanceInit 'Data.GI.Base.Attributes.:=' value ] @ -} setParamSpecTypeInfoInstanceInit :: MonadIO m => ParamSpecTypeInfo -> FunPtr GObject.Callbacks.C_ParamSpecTypeInfoInstanceInitFieldCallback -> m () setParamSpecTypeInfoInstanceInit s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 8) (val :: FunPtr GObject.Callbacks.C_ParamSpecTypeInfoInstanceInitFieldCallback) {- | Set the value of the “@instance_init@” field to `Nothing`. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.clear' #instanceInit @ -} clearParamSpecTypeInfoInstanceInit :: MonadIO m => ParamSpecTypeInfo -> m () clearParamSpecTypeInfoInstanceInit s = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 8) (FP.nullFunPtr :: FunPtr GObject.Callbacks.C_ParamSpecTypeInfoInstanceInitFieldCallback) #if ENABLE_OVERLOADING data ParamSpecTypeInfoInstanceInitFieldInfo instance AttrInfo ParamSpecTypeInfoInstanceInitFieldInfo where type AttrAllowedOps ParamSpecTypeInfoInstanceInitFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear] type AttrSetTypeConstraint ParamSpecTypeInfoInstanceInitFieldInfo = (~) (FunPtr GObject.Callbacks.C_ParamSpecTypeInfoInstanceInitFieldCallback) type AttrBaseTypeConstraint ParamSpecTypeInfoInstanceInitFieldInfo = (~) ParamSpecTypeInfo type AttrGetType ParamSpecTypeInfoInstanceInitFieldInfo = Maybe GObject.Callbacks.ParamSpecTypeInfoInstanceInitFieldCallback type AttrLabel ParamSpecTypeInfoInstanceInitFieldInfo = "instance_init" type AttrOrigin ParamSpecTypeInfoInstanceInitFieldInfo = ParamSpecTypeInfo attrGet _ = getParamSpecTypeInfoInstanceInit attrSet _ = setParamSpecTypeInfoInstanceInit attrConstruct = undefined attrClear _ = clearParamSpecTypeInfoInstanceInit paramSpecTypeInfo_instanceInit :: AttrLabelProxy "instanceInit" paramSpecTypeInfo_instanceInit = AttrLabelProxy #endif {- | Get the value of the “@value_type@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' paramSpecTypeInfo #valueType @ -} getParamSpecTypeInfoValueType :: MonadIO m => ParamSpecTypeInfo -> m GType getParamSpecTypeInfoValueType s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 16) :: IO CGType let val' = GType val return val' {- | Set the value of the “@value_type@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' paramSpecTypeInfo [ #valueType 'Data.GI.Base.Attributes.:=' value ] @ -} setParamSpecTypeInfoValueType :: MonadIO m => ParamSpecTypeInfo -> GType -> m () setParamSpecTypeInfoValueType s val = liftIO $ withManagedPtr s $ \ptr -> do let val' = gtypeToCGType val poke (ptr `plusPtr` 16) (val' :: CGType) #if ENABLE_OVERLOADING data ParamSpecTypeInfoValueTypeFieldInfo instance AttrInfo ParamSpecTypeInfoValueTypeFieldInfo where type AttrAllowedOps ParamSpecTypeInfoValueTypeFieldInfo = '[ 'AttrSet, 'AttrGet] type AttrSetTypeConstraint ParamSpecTypeInfoValueTypeFieldInfo = (~) GType type AttrBaseTypeConstraint ParamSpecTypeInfoValueTypeFieldInfo = (~) ParamSpecTypeInfo type AttrGetType ParamSpecTypeInfoValueTypeFieldInfo = GType type AttrLabel ParamSpecTypeInfoValueTypeFieldInfo = "value_type" type AttrOrigin ParamSpecTypeInfoValueTypeFieldInfo = ParamSpecTypeInfo attrGet _ = getParamSpecTypeInfoValueType attrSet _ = setParamSpecTypeInfoValueType attrConstruct = undefined attrClear _ = undefined paramSpecTypeInfo_valueType :: AttrLabelProxy "valueType" paramSpecTypeInfo_valueType = AttrLabelProxy #endif {- | Get the value of the “@finalize@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' paramSpecTypeInfo #finalize @ -} getParamSpecTypeInfoFinalize :: MonadIO m => ParamSpecTypeInfo -> m (Maybe GObject.Callbacks.ParamSpecTypeInfoFinalizeFieldCallback) getParamSpecTypeInfoFinalize s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 24) :: IO (FunPtr GObject.Callbacks.C_ParamSpecTypeInfoFinalizeFieldCallback) result <- SP.convertFunPtrIfNonNull val $ \val' -> do let val'' = GObject.Callbacks.dynamic_ParamSpecTypeInfoFinalizeFieldCallback val' return val'' return result {- | Set the value of the “@finalize@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' paramSpecTypeInfo [ #finalize 'Data.GI.Base.Attributes.:=' value ] @ -} setParamSpecTypeInfoFinalize :: MonadIO m => ParamSpecTypeInfo -> FunPtr GObject.Callbacks.C_ParamSpecTypeInfoFinalizeFieldCallback -> m () setParamSpecTypeInfoFinalize s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 24) (val :: FunPtr GObject.Callbacks.C_ParamSpecTypeInfoFinalizeFieldCallback) {- | Set the value of the “@finalize@” field to `Nothing`. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.clear' #finalize @ -} clearParamSpecTypeInfoFinalize :: MonadIO m => ParamSpecTypeInfo -> m () clearParamSpecTypeInfoFinalize s = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 24) (FP.nullFunPtr :: FunPtr GObject.Callbacks.C_ParamSpecTypeInfoFinalizeFieldCallback) #if ENABLE_OVERLOADING data ParamSpecTypeInfoFinalizeFieldInfo instance AttrInfo ParamSpecTypeInfoFinalizeFieldInfo where type AttrAllowedOps ParamSpecTypeInfoFinalizeFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear] type AttrSetTypeConstraint ParamSpecTypeInfoFinalizeFieldInfo = (~) (FunPtr GObject.Callbacks.C_ParamSpecTypeInfoFinalizeFieldCallback) type AttrBaseTypeConstraint ParamSpecTypeInfoFinalizeFieldInfo = (~) ParamSpecTypeInfo type AttrGetType ParamSpecTypeInfoFinalizeFieldInfo = Maybe GObject.Callbacks.ParamSpecTypeInfoFinalizeFieldCallback type AttrLabel ParamSpecTypeInfoFinalizeFieldInfo = "finalize" type AttrOrigin ParamSpecTypeInfoFinalizeFieldInfo = ParamSpecTypeInfo attrGet _ = getParamSpecTypeInfoFinalize attrSet _ = setParamSpecTypeInfoFinalize attrConstruct = undefined attrClear _ = clearParamSpecTypeInfoFinalize paramSpecTypeInfo_finalize :: AttrLabelProxy "finalize" paramSpecTypeInfo_finalize = AttrLabelProxy #endif {- | Get the value of the “@value_set_default@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' paramSpecTypeInfo #valueSetDefault @ -} getParamSpecTypeInfoValueSetDefault :: MonadIO m => ParamSpecTypeInfo -> m (Maybe GObject.Callbacks.ParamSpecTypeInfoValueSetDefaultFieldCallback) getParamSpecTypeInfoValueSetDefault s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 32) :: IO (FunPtr GObject.Callbacks.C_ParamSpecTypeInfoValueSetDefaultFieldCallback) result <- SP.convertFunPtrIfNonNull val $ \val' -> do let val'' = GObject.Callbacks.dynamic_ParamSpecTypeInfoValueSetDefaultFieldCallback val' return val'' return result {- | Set the value of the “@value_set_default@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' paramSpecTypeInfo [ #valueSetDefault 'Data.GI.Base.Attributes.:=' value ] @ -} setParamSpecTypeInfoValueSetDefault :: MonadIO m => ParamSpecTypeInfo -> FunPtr GObject.Callbacks.C_ParamSpecTypeInfoValueSetDefaultFieldCallback -> m () setParamSpecTypeInfoValueSetDefault s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 32) (val :: FunPtr GObject.Callbacks.C_ParamSpecTypeInfoValueSetDefaultFieldCallback) {- | Set the value of the “@value_set_default@” field to `Nothing`. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.clear' #valueSetDefault @ -} clearParamSpecTypeInfoValueSetDefault :: MonadIO m => ParamSpecTypeInfo -> m () clearParamSpecTypeInfoValueSetDefault s = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 32) (FP.nullFunPtr :: FunPtr GObject.Callbacks.C_ParamSpecTypeInfoValueSetDefaultFieldCallback) #if ENABLE_OVERLOADING data ParamSpecTypeInfoValueSetDefaultFieldInfo instance AttrInfo ParamSpecTypeInfoValueSetDefaultFieldInfo where type AttrAllowedOps ParamSpecTypeInfoValueSetDefaultFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear] type AttrSetTypeConstraint ParamSpecTypeInfoValueSetDefaultFieldInfo = (~) (FunPtr GObject.Callbacks.C_ParamSpecTypeInfoValueSetDefaultFieldCallback) type AttrBaseTypeConstraint ParamSpecTypeInfoValueSetDefaultFieldInfo = (~) ParamSpecTypeInfo type AttrGetType ParamSpecTypeInfoValueSetDefaultFieldInfo = Maybe GObject.Callbacks.ParamSpecTypeInfoValueSetDefaultFieldCallback type AttrLabel ParamSpecTypeInfoValueSetDefaultFieldInfo = "value_set_default" type AttrOrigin ParamSpecTypeInfoValueSetDefaultFieldInfo = ParamSpecTypeInfo attrGet _ = getParamSpecTypeInfoValueSetDefault attrSet _ = setParamSpecTypeInfoValueSetDefault attrConstruct = undefined attrClear _ = clearParamSpecTypeInfoValueSetDefault paramSpecTypeInfo_valueSetDefault :: AttrLabelProxy "valueSetDefault" paramSpecTypeInfo_valueSetDefault = AttrLabelProxy #endif {- | Get the value of the “@value_validate@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' paramSpecTypeInfo #valueValidate @ -} getParamSpecTypeInfoValueValidate :: MonadIO m => ParamSpecTypeInfo -> m (Maybe GObject.Callbacks.ParamSpecTypeInfoValueValidateFieldCallback) getParamSpecTypeInfoValueValidate s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 40) :: IO (FunPtr GObject.Callbacks.C_ParamSpecTypeInfoValueValidateFieldCallback) result <- SP.convertFunPtrIfNonNull val $ \val' -> do let val'' = GObject.Callbacks.dynamic_ParamSpecTypeInfoValueValidateFieldCallback val' return val'' return result {- | Set the value of the “@value_validate@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' paramSpecTypeInfo [ #valueValidate 'Data.GI.Base.Attributes.:=' value ] @ -} setParamSpecTypeInfoValueValidate :: MonadIO m => ParamSpecTypeInfo -> FunPtr GObject.Callbacks.C_ParamSpecTypeInfoValueValidateFieldCallback -> m () setParamSpecTypeInfoValueValidate s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 40) (val :: FunPtr GObject.Callbacks.C_ParamSpecTypeInfoValueValidateFieldCallback) {- | Set the value of the “@value_validate@” field to `Nothing`. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.clear' #valueValidate @ -} clearParamSpecTypeInfoValueValidate :: MonadIO m => ParamSpecTypeInfo -> m () clearParamSpecTypeInfoValueValidate s = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 40) (FP.nullFunPtr :: FunPtr GObject.Callbacks.C_ParamSpecTypeInfoValueValidateFieldCallback) #if ENABLE_OVERLOADING data ParamSpecTypeInfoValueValidateFieldInfo instance AttrInfo ParamSpecTypeInfoValueValidateFieldInfo where type AttrAllowedOps ParamSpecTypeInfoValueValidateFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear] type AttrSetTypeConstraint ParamSpecTypeInfoValueValidateFieldInfo = (~) (FunPtr GObject.Callbacks.C_ParamSpecTypeInfoValueValidateFieldCallback) type AttrBaseTypeConstraint ParamSpecTypeInfoValueValidateFieldInfo = (~) ParamSpecTypeInfo type AttrGetType ParamSpecTypeInfoValueValidateFieldInfo = Maybe GObject.Callbacks.ParamSpecTypeInfoValueValidateFieldCallback type AttrLabel ParamSpecTypeInfoValueValidateFieldInfo = "value_validate" type AttrOrigin ParamSpecTypeInfoValueValidateFieldInfo = ParamSpecTypeInfo attrGet _ = getParamSpecTypeInfoValueValidate attrSet _ = setParamSpecTypeInfoValueValidate attrConstruct = undefined attrClear _ = clearParamSpecTypeInfoValueValidate paramSpecTypeInfo_valueValidate :: AttrLabelProxy "valueValidate" paramSpecTypeInfo_valueValidate = AttrLabelProxy #endif {- | Get the value of the “@values_cmp@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' paramSpecTypeInfo #valuesCmp @ -} getParamSpecTypeInfoValuesCmp :: MonadIO m => ParamSpecTypeInfo -> m (Maybe GObject.Callbacks.ParamSpecTypeInfoValuesCmpFieldCallback) getParamSpecTypeInfoValuesCmp s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 48) :: IO (FunPtr GObject.Callbacks.C_ParamSpecTypeInfoValuesCmpFieldCallback) result <- SP.convertFunPtrIfNonNull val $ \val' -> do let val'' = GObject.Callbacks.dynamic_ParamSpecTypeInfoValuesCmpFieldCallback val' return val'' return result {- | Set the value of the “@values_cmp@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' paramSpecTypeInfo [ #valuesCmp 'Data.GI.Base.Attributes.:=' value ] @ -} setParamSpecTypeInfoValuesCmp :: MonadIO m => ParamSpecTypeInfo -> FunPtr GObject.Callbacks.C_ParamSpecTypeInfoValuesCmpFieldCallback -> m () setParamSpecTypeInfoValuesCmp s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 48) (val :: FunPtr GObject.Callbacks.C_ParamSpecTypeInfoValuesCmpFieldCallback) {- | Set the value of the “@values_cmp@” field to `Nothing`. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.clear' #valuesCmp @ -} clearParamSpecTypeInfoValuesCmp :: MonadIO m => ParamSpecTypeInfo -> m () clearParamSpecTypeInfoValuesCmp s = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 48) (FP.nullFunPtr :: FunPtr GObject.Callbacks.C_ParamSpecTypeInfoValuesCmpFieldCallback) #if ENABLE_OVERLOADING data ParamSpecTypeInfoValuesCmpFieldInfo instance AttrInfo ParamSpecTypeInfoValuesCmpFieldInfo where type AttrAllowedOps ParamSpecTypeInfoValuesCmpFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear] type AttrSetTypeConstraint ParamSpecTypeInfoValuesCmpFieldInfo = (~) (FunPtr GObject.Callbacks.C_ParamSpecTypeInfoValuesCmpFieldCallback) type AttrBaseTypeConstraint ParamSpecTypeInfoValuesCmpFieldInfo = (~) ParamSpecTypeInfo type AttrGetType ParamSpecTypeInfoValuesCmpFieldInfo = Maybe GObject.Callbacks.ParamSpecTypeInfoValuesCmpFieldCallback type AttrLabel ParamSpecTypeInfoValuesCmpFieldInfo = "values_cmp" type AttrOrigin ParamSpecTypeInfoValuesCmpFieldInfo = ParamSpecTypeInfo attrGet _ = getParamSpecTypeInfoValuesCmp attrSet _ = setParamSpecTypeInfoValuesCmp attrConstruct = undefined attrClear _ = clearParamSpecTypeInfoValuesCmp paramSpecTypeInfo_valuesCmp :: AttrLabelProxy "valuesCmp" paramSpecTypeInfo_valuesCmp = AttrLabelProxy #endif #if ENABLE_OVERLOADING instance O.HasAttributeList ParamSpecTypeInfo type instance O.AttributeList ParamSpecTypeInfo = ParamSpecTypeInfoAttributeList type ParamSpecTypeInfoAttributeList = ('[ '("instanceSize", ParamSpecTypeInfoInstanceSizeFieldInfo), '("nPreallocs", ParamSpecTypeInfoNPreallocsFieldInfo), '("instanceInit", ParamSpecTypeInfoInstanceInitFieldInfo), '("valueType", ParamSpecTypeInfoValueTypeFieldInfo), '("finalize", ParamSpecTypeInfoFinalizeFieldInfo), '("valueSetDefault", ParamSpecTypeInfoValueSetDefaultFieldInfo), '("valueValidate", ParamSpecTypeInfoValueValidateFieldInfo), '("valuesCmp", ParamSpecTypeInfoValuesCmpFieldInfo)] :: [(Symbol, *)]) #endif #if ENABLE_OVERLOADING type family ResolveParamSpecTypeInfoMethod (t :: Symbol) (o :: *) :: * where ResolveParamSpecTypeInfoMethod l o = O.MethodResolutionFailed l o instance (info ~ ResolveParamSpecTypeInfoMethod t ParamSpecTypeInfo, O.MethodInfo info ParamSpecTypeInfo p) => OL.IsLabel t (ParamSpecTypeInfo -> 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