{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc) Stores an argument of varying type -} #define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \ && !defined(__HADDOCK_VERSION__)) module GI.GIRepository.Unions.Argument ( -- * Exported types Argument(..) , newZeroArgument , noArgument , -- * Properties -- ** vBoolean #attr:vBoolean# {- | TODO -} #if ENABLE_OVERLOADING argument_vBoolean , #endif getArgumentVBoolean , setArgumentVBoolean , -- ** vDouble #attr:vDouble# {- | TODO -} #if ENABLE_OVERLOADING argument_vDouble , #endif getArgumentVDouble , setArgumentVDouble , -- ** vFloat #attr:vFloat# {- | TODO -} #if ENABLE_OVERLOADING argument_vFloat , #endif getArgumentVFloat , setArgumentVFloat , -- ** vInt #attr:vInt# {- | TODO -} #if ENABLE_OVERLOADING argument_vInt , #endif getArgumentVInt , setArgumentVInt , -- ** vInt16 #attr:vInt16# {- | TODO -} #if ENABLE_OVERLOADING argument_vInt16 , #endif getArgumentVInt16 , setArgumentVInt16 , -- ** vInt32 #attr:vInt32# {- | TODO -} #if ENABLE_OVERLOADING argument_vInt32 , #endif getArgumentVInt32 , setArgumentVInt32 , -- ** vInt64 #attr:vInt64# {- | TODO -} #if ENABLE_OVERLOADING argument_vInt64 , #endif getArgumentVInt64 , setArgumentVInt64 , -- ** vInt8 #attr:vInt8# {- | TODO -} #if ENABLE_OVERLOADING argument_vInt8 , #endif getArgumentVInt8 , setArgumentVInt8 , -- ** vLong #attr:vLong# {- | TODO -} #if ENABLE_OVERLOADING argument_vLong , #endif getArgumentVLong , setArgumentVLong , -- ** vPointer #attr:vPointer# {- | TODO -} #if ENABLE_OVERLOADING argument_vPointer , #endif clearArgumentVPointer , getArgumentVPointer , setArgumentVPointer , -- ** vShort #attr:vShort# {- | TODO -} #if ENABLE_OVERLOADING argument_vShort , #endif getArgumentVShort , setArgumentVShort , -- ** vSize #attr:vSize# {- | TODO -} #if ENABLE_OVERLOADING argument_vSize , #endif getArgumentVSize , setArgumentVSize , -- ** vSsize #attr:vSsize# {- | TODO -} #if ENABLE_OVERLOADING argument_vSsize , #endif getArgumentVSsize , setArgumentVSsize , -- ** vString #attr:vString# {- | TODO -} #if ENABLE_OVERLOADING argument_vString , #endif clearArgumentVString , getArgumentVString , setArgumentVString , -- ** vUint #attr:vUint# {- | TODO -} #if ENABLE_OVERLOADING argument_vUint , #endif getArgumentVUint , setArgumentVUint , -- ** vUint16 #attr:vUint16# {- | TODO -} #if ENABLE_OVERLOADING argument_vUint16 , #endif getArgumentVUint16 , setArgumentVUint16 , -- ** vUint32 #attr:vUint32# {- | TODO -} #if ENABLE_OVERLOADING argument_vUint32 , #endif getArgumentVUint32 , setArgumentVUint32 , -- ** vUint64 #attr:vUint64# {- | TODO -} #if ENABLE_OVERLOADING argument_vUint64 , #endif getArgumentVUint64 , setArgumentVUint64 , -- ** vUint8 #attr:vUint8# {- | TODO -} #if ENABLE_OVERLOADING argument_vUint8 , #endif getArgumentVUint8 , setArgumentVUint8 , -- ** vUlong #attr:vUlong# {- | TODO -} #if ENABLE_OVERLOADING argument_vUlong , #endif getArgumentVUlong , setArgumentVUlong , -- ** vUshort #attr:vUshort# {- | TODO -} #if ENABLE_OVERLOADING argument_vUshort , #endif getArgumentVUshort , setArgumentVUshort , ) 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 -- | Memory-managed wrapper type. newtype Argument = Argument (ManagedPtr Argument) instance WrappedPtr Argument where wrappedPtrCalloc = callocBytes 8 wrappedPtrCopy = \p -> withManagedPtr p (copyBytes 8 >=> wrapPtr Argument) wrappedPtrFree = Just ptr_to_g_free -- | Construct a `Argument` struct initialized to zero. newZeroArgument :: MonadIO m => m Argument newZeroArgument = liftIO $ wrappedPtrCalloc >>= wrapPtr Argument instance tag ~ 'AttrSet => Constructible Argument tag where new _ attrs = do o <- newZeroArgument GI.Attributes.set o attrs return o -- | A convenience alias for `Nothing` :: `Maybe` `Argument`. noArgument :: Maybe Argument noArgument = Nothing {- | Get the value of the “@v_boolean@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' argument #vBoolean @ -} getArgumentVBoolean :: MonadIO m => Argument -> m Bool getArgumentVBoolean s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 0) :: IO CInt let val' = (/= 0) val return val' {- | Set the value of the “@v_boolean@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' argument [ #vBoolean 'Data.GI.Base.Attributes.:=' value ] @ -} setArgumentVBoolean :: MonadIO m => Argument -> Bool -> m () setArgumentVBoolean s val = liftIO $ withManagedPtr s $ \ptr -> do let val' = (fromIntegral . fromEnum) val poke (ptr `plusPtr` 0) (val' :: CInt) #if ENABLE_OVERLOADING data ArgumentVBooleanFieldInfo instance AttrInfo ArgumentVBooleanFieldInfo where type AttrAllowedOps ArgumentVBooleanFieldInfo = '[ 'AttrSet, 'AttrGet] type AttrSetTypeConstraint ArgumentVBooleanFieldInfo = (~) Bool type AttrBaseTypeConstraint ArgumentVBooleanFieldInfo = (~) Argument type AttrGetType ArgumentVBooleanFieldInfo = Bool type AttrLabel ArgumentVBooleanFieldInfo = "v_boolean" type AttrOrigin ArgumentVBooleanFieldInfo = Argument attrGet _ = getArgumentVBoolean attrSet _ = setArgumentVBoolean attrConstruct = undefined attrClear _ = undefined argument_vBoolean :: AttrLabelProxy "vBoolean" argument_vBoolean = AttrLabelProxy #endif {- | Get the value of the “@v_int8@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' argument #vInt8 @ -} getArgumentVInt8 :: MonadIO m => Argument -> m Int8 getArgumentVInt8 s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 0) :: IO Int8 return val {- | Set the value of the “@v_int8@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' argument [ #vInt8 'Data.GI.Base.Attributes.:=' value ] @ -} setArgumentVInt8 :: MonadIO m => Argument -> Int8 -> m () setArgumentVInt8 s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 0) (val :: Int8) #if ENABLE_OVERLOADING data ArgumentVInt8FieldInfo instance AttrInfo ArgumentVInt8FieldInfo where type AttrAllowedOps ArgumentVInt8FieldInfo = '[ 'AttrSet, 'AttrGet] type AttrSetTypeConstraint ArgumentVInt8FieldInfo = (~) Int8 type AttrBaseTypeConstraint ArgumentVInt8FieldInfo = (~) Argument type AttrGetType ArgumentVInt8FieldInfo = Int8 type AttrLabel ArgumentVInt8FieldInfo = "v_int8" type AttrOrigin ArgumentVInt8FieldInfo = Argument attrGet _ = getArgumentVInt8 attrSet _ = setArgumentVInt8 attrConstruct = undefined attrClear _ = undefined argument_vInt8 :: AttrLabelProxy "vInt8" argument_vInt8 = AttrLabelProxy #endif {- | Get the value of the “@v_uint8@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' argument #vUint8 @ -} getArgumentVUint8 :: MonadIO m => Argument -> m Word8 getArgumentVUint8 s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 0) :: IO Word8 return val {- | Set the value of the “@v_uint8@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' argument [ #vUint8 'Data.GI.Base.Attributes.:=' value ] @ -} setArgumentVUint8 :: MonadIO m => Argument -> Word8 -> m () setArgumentVUint8 s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 0) (val :: Word8) #if ENABLE_OVERLOADING data ArgumentVUint8FieldInfo instance AttrInfo ArgumentVUint8FieldInfo where type AttrAllowedOps ArgumentVUint8FieldInfo = '[ 'AttrSet, 'AttrGet] type AttrSetTypeConstraint ArgumentVUint8FieldInfo = (~) Word8 type AttrBaseTypeConstraint ArgumentVUint8FieldInfo = (~) Argument type AttrGetType ArgumentVUint8FieldInfo = Word8 type AttrLabel ArgumentVUint8FieldInfo = "v_uint8" type AttrOrigin ArgumentVUint8FieldInfo = Argument attrGet _ = getArgumentVUint8 attrSet _ = setArgumentVUint8 attrConstruct = undefined attrClear _ = undefined argument_vUint8 :: AttrLabelProxy "vUint8" argument_vUint8 = AttrLabelProxy #endif {- | Get the value of the “@v_int16@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' argument #vInt16 @ -} getArgumentVInt16 :: MonadIO m => Argument -> m Int16 getArgumentVInt16 s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 0) :: IO Int16 return val {- | Set the value of the “@v_int16@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' argument [ #vInt16 'Data.GI.Base.Attributes.:=' value ] @ -} setArgumentVInt16 :: MonadIO m => Argument -> Int16 -> m () setArgumentVInt16 s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 0) (val :: Int16) #if ENABLE_OVERLOADING data ArgumentVInt16FieldInfo instance AttrInfo ArgumentVInt16FieldInfo where type AttrAllowedOps ArgumentVInt16FieldInfo = '[ 'AttrSet, 'AttrGet] type AttrSetTypeConstraint ArgumentVInt16FieldInfo = (~) Int16 type AttrBaseTypeConstraint ArgumentVInt16FieldInfo = (~) Argument type AttrGetType ArgumentVInt16FieldInfo = Int16 type AttrLabel ArgumentVInt16FieldInfo = "v_int16" type AttrOrigin ArgumentVInt16FieldInfo = Argument attrGet _ = getArgumentVInt16 attrSet _ = setArgumentVInt16 attrConstruct = undefined attrClear _ = undefined argument_vInt16 :: AttrLabelProxy "vInt16" argument_vInt16 = AttrLabelProxy #endif {- | Get the value of the “@v_uint16@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' argument #vUint16 @ -} getArgumentVUint16 :: MonadIO m => Argument -> m Word16 getArgumentVUint16 s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 0) :: IO Word16 return val {- | Set the value of the “@v_uint16@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' argument [ #vUint16 'Data.GI.Base.Attributes.:=' value ] @ -} setArgumentVUint16 :: MonadIO m => Argument -> Word16 -> m () setArgumentVUint16 s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 0) (val :: Word16) #if ENABLE_OVERLOADING data ArgumentVUint16FieldInfo instance AttrInfo ArgumentVUint16FieldInfo where type AttrAllowedOps ArgumentVUint16FieldInfo = '[ 'AttrSet, 'AttrGet] type AttrSetTypeConstraint ArgumentVUint16FieldInfo = (~) Word16 type AttrBaseTypeConstraint ArgumentVUint16FieldInfo = (~) Argument type AttrGetType ArgumentVUint16FieldInfo = Word16 type AttrLabel ArgumentVUint16FieldInfo = "v_uint16" type AttrOrigin ArgumentVUint16FieldInfo = Argument attrGet _ = getArgumentVUint16 attrSet _ = setArgumentVUint16 attrConstruct = undefined attrClear _ = undefined argument_vUint16 :: AttrLabelProxy "vUint16" argument_vUint16 = AttrLabelProxy #endif {- | Get the value of the “@v_int32@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' argument #vInt32 @ -} getArgumentVInt32 :: MonadIO m => Argument -> m Int32 getArgumentVInt32 s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 0) :: IO Int32 return val {- | Set the value of the “@v_int32@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' argument [ #vInt32 'Data.GI.Base.Attributes.:=' value ] @ -} setArgumentVInt32 :: MonadIO m => Argument -> Int32 -> m () setArgumentVInt32 s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 0) (val :: Int32) #if ENABLE_OVERLOADING data ArgumentVInt32FieldInfo instance AttrInfo ArgumentVInt32FieldInfo where type AttrAllowedOps ArgumentVInt32FieldInfo = '[ 'AttrSet, 'AttrGet] type AttrSetTypeConstraint ArgumentVInt32FieldInfo = (~) Int32 type AttrBaseTypeConstraint ArgumentVInt32FieldInfo = (~) Argument type AttrGetType ArgumentVInt32FieldInfo = Int32 type AttrLabel ArgumentVInt32FieldInfo = "v_int32" type AttrOrigin ArgumentVInt32FieldInfo = Argument attrGet _ = getArgumentVInt32 attrSet _ = setArgumentVInt32 attrConstruct = undefined attrClear _ = undefined argument_vInt32 :: AttrLabelProxy "vInt32" argument_vInt32 = AttrLabelProxy #endif {- | Get the value of the “@v_uint32@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' argument #vUint32 @ -} getArgumentVUint32 :: MonadIO m => Argument -> m Word32 getArgumentVUint32 s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 0) :: IO Word32 return val {- | Set the value of the “@v_uint32@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' argument [ #vUint32 'Data.GI.Base.Attributes.:=' value ] @ -} setArgumentVUint32 :: MonadIO m => Argument -> Word32 -> m () setArgumentVUint32 s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 0) (val :: Word32) #if ENABLE_OVERLOADING data ArgumentVUint32FieldInfo instance AttrInfo ArgumentVUint32FieldInfo where type AttrAllowedOps ArgumentVUint32FieldInfo = '[ 'AttrSet, 'AttrGet] type AttrSetTypeConstraint ArgumentVUint32FieldInfo = (~) Word32 type AttrBaseTypeConstraint ArgumentVUint32FieldInfo = (~) Argument type AttrGetType ArgumentVUint32FieldInfo = Word32 type AttrLabel ArgumentVUint32FieldInfo = "v_uint32" type AttrOrigin ArgumentVUint32FieldInfo = Argument attrGet _ = getArgumentVUint32 attrSet _ = setArgumentVUint32 attrConstruct = undefined attrClear _ = undefined argument_vUint32 :: AttrLabelProxy "vUint32" argument_vUint32 = AttrLabelProxy #endif {- | Get the value of the “@v_int64@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' argument #vInt64 @ -} getArgumentVInt64 :: MonadIO m => Argument -> m Int64 getArgumentVInt64 s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 0) :: IO Int64 return val {- | Set the value of the “@v_int64@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' argument [ #vInt64 'Data.GI.Base.Attributes.:=' value ] @ -} setArgumentVInt64 :: MonadIO m => Argument -> Int64 -> m () setArgumentVInt64 s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 0) (val :: Int64) #if ENABLE_OVERLOADING data ArgumentVInt64FieldInfo instance AttrInfo ArgumentVInt64FieldInfo where type AttrAllowedOps ArgumentVInt64FieldInfo = '[ 'AttrSet, 'AttrGet] type AttrSetTypeConstraint ArgumentVInt64FieldInfo = (~) Int64 type AttrBaseTypeConstraint ArgumentVInt64FieldInfo = (~) Argument type AttrGetType ArgumentVInt64FieldInfo = Int64 type AttrLabel ArgumentVInt64FieldInfo = "v_int64" type AttrOrigin ArgumentVInt64FieldInfo = Argument attrGet _ = getArgumentVInt64 attrSet _ = setArgumentVInt64 attrConstruct = undefined attrClear _ = undefined argument_vInt64 :: AttrLabelProxy "vInt64" argument_vInt64 = AttrLabelProxy #endif {- | Get the value of the “@v_uint64@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' argument #vUint64 @ -} getArgumentVUint64 :: MonadIO m => Argument -> m Word64 getArgumentVUint64 s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 0) :: IO Word64 return val {- | Set the value of the “@v_uint64@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' argument [ #vUint64 'Data.GI.Base.Attributes.:=' value ] @ -} setArgumentVUint64 :: MonadIO m => Argument -> Word64 -> m () setArgumentVUint64 s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 0) (val :: Word64) #if ENABLE_OVERLOADING data ArgumentVUint64FieldInfo instance AttrInfo ArgumentVUint64FieldInfo where type AttrAllowedOps ArgumentVUint64FieldInfo = '[ 'AttrSet, 'AttrGet] type AttrSetTypeConstraint ArgumentVUint64FieldInfo = (~) Word64 type AttrBaseTypeConstraint ArgumentVUint64FieldInfo = (~) Argument type AttrGetType ArgumentVUint64FieldInfo = Word64 type AttrLabel ArgumentVUint64FieldInfo = "v_uint64" type AttrOrigin ArgumentVUint64FieldInfo = Argument attrGet _ = getArgumentVUint64 attrSet _ = setArgumentVUint64 attrConstruct = undefined attrClear _ = undefined argument_vUint64 :: AttrLabelProxy "vUint64" argument_vUint64 = AttrLabelProxy #endif {- | Get the value of the “@v_float@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' argument #vFloat @ -} getArgumentVFloat :: MonadIO m => Argument -> m Float getArgumentVFloat s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 0) :: IO CFloat let val' = realToFrac val return val' {- | Set the value of the “@v_float@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' argument [ #vFloat 'Data.GI.Base.Attributes.:=' value ] @ -} setArgumentVFloat :: MonadIO m => Argument -> Float -> m () setArgumentVFloat s val = liftIO $ withManagedPtr s $ \ptr -> do let val' = realToFrac val poke (ptr `plusPtr` 0) (val' :: CFloat) #if ENABLE_OVERLOADING data ArgumentVFloatFieldInfo instance AttrInfo ArgumentVFloatFieldInfo where type AttrAllowedOps ArgumentVFloatFieldInfo = '[ 'AttrSet, 'AttrGet] type AttrSetTypeConstraint ArgumentVFloatFieldInfo = (~) Float type AttrBaseTypeConstraint ArgumentVFloatFieldInfo = (~) Argument type AttrGetType ArgumentVFloatFieldInfo = Float type AttrLabel ArgumentVFloatFieldInfo = "v_float" type AttrOrigin ArgumentVFloatFieldInfo = Argument attrGet _ = getArgumentVFloat attrSet _ = setArgumentVFloat attrConstruct = undefined attrClear _ = undefined argument_vFloat :: AttrLabelProxy "vFloat" argument_vFloat = AttrLabelProxy #endif {- | Get the value of the “@v_double@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' argument #vDouble @ -} getArgumentVDouble :: MonadIO m => Argument -> m Double getArgumentVDouble s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 0) :: IO CDouble let val' = realToFrac val return val' {- | Set the value of the “@v_double@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' argument [ #vDouble 'Data.GI.Base.Attributes.:=' value ] @ -} setArgumentVDouble :: MonadIO m => Argument -> Double -> m () setArgumentVDouble s val = liftIO $ withManagedPtr s $ \ptr -> do let val' = realToFrac val poke (ptr `plusPtr` 0) (val' :: CDouble) #if ENABLE_OVERLOADING data ArgumentVDoubleFieldInfo instance AttrInfo ArgumentVDoubleFieldInfo where type AttrAllowedOps ArgumentVDoubleFieldInfo = '[ 'AttrSet, 'AttrGet] type AttrSetTypeConstraint ArgumentVDoubleFieldInfo = (~) Double type AttrBaseTypeConstraint ArgumentVDoubleFieldInfo = (~) Argument type AttrGetType ArgumentVDoubleFieldInfo = Double type AttrLabel ArgumentVDoubleFieldInfo = "v_double" type AttrOrigin ArgumentVDoubleFieldInfo = Argument attrGet _ = getArgumentVDouble attrSet _ = setArgumentVDouble attrConstruct = undefined attrClear _ = undefined argument_vDouble :: AttrLabelProxy "vDouble" argument_vDouble = AttrLabelProxy #endif {- | Get the value of the “@v_short@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' argument #vShort @ -} getArgumentVShort :: MonadIO m => Argument -> m Int16 getArgumentVShort s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 0) :: IO Int16 return val {- | Set the value of the “@v_short@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' argument [ #vShort 'Data.GI.Base.Attributes.:=' value ] @ -} setArgumentVShort :: MonadIO m => Argument -> Int16 -> m () setArgumentVShort s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 0) (val :: Int16) #if ENABLE_OVERLOADING data ArgumentVShortFieldInfo instance AttrInfo ArgumentVShortFieldInfo where type AttrAllowedOps ArgumentVShortFieldInfo = '[ 'AttrSet, 'AttrGet] type AttrSetTypeConstraint ArgumentVShortFieldInfo = (~) Int16 type AttrBaseTypeConstraint ArgumentVShortFieldInfo = (~) Argument type AttrGetType ArgumentVShortFieldInfo = Int16 type AttrLabel ArgumentVShortFieldInfo = "v_short" type AttrOrigin ArgumentVShortFieldInfo = Argument attrGet _ = getArgumentVShort attrSet _ = setArgumentVShort attrConstruct = undefined attrClear _ = undefined argument_vShort :: AttrLabelProxy "vShort" argument_vShort = AttrLabelProxy #endif {- | Get the value of the “@v_ushort@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' argument #vUshort @ -} getArgumentVUshort :: MonadIO m => Argument -> m Word16 getArgumentVUshort s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 0) :: IO Word16 return val {- | Set the value of the “@v_ushort@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' argument [ #vUshort 'Data.GI.Base.Attributes.:=' value ] @ -} setArgumentVUshort :: MonadIO m => Argument -> Word16 -> m () setArgumentVUshort s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 0) (val :: Word16) #if ENABLE_OVERLOADING data ArgumentVUshortFieldInfo instance AttrInfo ArgumentVUshortFieldInfo where type AttrAllowedOps ArgumentVUshortFieldInfo = '[ 'AttrSet, 'AttrGet] type AttrSetTypeConstraint ArgumentVUshortFieldInfo = (~) Word16 type AttrBaseTypeConstraint ArgumentVUshortFieldInfo = (~) Argument type AttrGetType ArgumentVUshortFieldInfo = Word16 type AttrLabel ArgumentVUshortFieldInfo = "v_ushort" type AttrOrigin ArgumentVUshortFieldInfo = Argument attrGet _ = getArgumentVUshort attrSet _ = setArgumentVUshort attrConstruct = undefined attrClear _ = undefined argument_vUshort :: AttrLabelProxy "vUshort" argument_vUshort = AttrLabelProxy #endif {- | Get the value of the “@v_int@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' argument #vInt @ -} getArgumentVInt :: MonadIO m => Argument -> m Int32 getArgumentVInt s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 0) :: IO Int32 return val {- | Set the value of the “@v_int@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' argument [ #vInt 'Data.GI.Base.Attributes.:=' value ] @ -} setArgumentVInt :: MonadIO m => Argument -> Int32 -> m () setArgumentVInt s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 0) (val :: Int32) #if ENABLE_OVERLOADING data ArgumentVIntFieldInfo instance AttrInfo ArgumentVIntFieldInfo where type AttrAllowedOps ArgumentVIntFieldInfo = '[ 'AttrSet, 'AttrGet] type AttrSetTypeConstraint ArgumentVIntFieldInfo = (~) Int32 type AttrBaseTypeConstraint ArgumentVIntFieldInfo = (~) Argument type AttrGetType ArgumentVIntFieldInfo = Int32 type AttrLabel ArgumentVIntFieldInfo = "v_int" type AttrOrigin ArgumentVIntFieldInfo = Argument attrGet _ = getArgumentVInt attrSet _ = setArgumentVInt attrConstruct = undefined attrClear _ = undefined argument_vInt :: AttrLabelProxy "vInt" argument_vInt = AttrLabelProxy #endif {- | Get the value of the “@v_uint@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' argument #vUint @ -} getArgumentVUint :: MonadIO m => Argument -> m Word32 getArgumentVUint s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 0) :: IO Word32 return val {- | Set the value of the “@v_uint@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' argument [ #vUint 'Data.GI.Base.Attributes.:=' value ] @ -} setArgumentVUint :: MonadIO m => Argument -> Word32 -> m () setArgumentVUint s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 0) (val :: Word32) #if ENABLE_OVERLOADING data ArgumentVUintFieldInfo instance AttrInfo ArgumentVUintFieldInfo where type AttrAllowedOps ArgumentVUintFieldInfo = '[ 'AttrSet, 'AttrGet] type AttrSetTypeConstraint ArgumentVUintFieldInfo = (~) Word32 type AttrBaseTypeConstraint ArgumentVUintFieldInfo = (~) Argument type AttrGetType ArgumentVUintFieldInfo = Word32 type AttrLabel ArgumentVUintFieldInfo = "v_uint" type AttrOrigin ArgumentVUintFieldInfo = Argument attrGet _ = getArgumentVUint attrSet _ = setArgumentVUint attrConstruct = undefined attrClear _ = undefined argument_vUint :: AttrLabelProxy "vUint" argument_vUint = AttrLabelProxy #endif {- | Get the value of the “@v_long@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' argument #vLong @ -} getArgumentVLong :: MonadIO m => Argument -> m CLong getArgumentVLong s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 0) :: IO CLong return val {- | Set the value of the “@v_long@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' argument [ #vLong 'Data.GI.Base.Attributes.:=' value ] @ -} setArgumentVLong :: MonadIO m => Argument -> CLong -> m () setArgumentVLong s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 0) (val :: CLong) #if ENABLE_OVERLOADING data ArgumentVLongFieldInfo instance AttrInfo ArgumentVLongFieldInfo where type AttrAllowedOps ArgumentVLongFieldInfo = '[ 'AttrSet, 'AttrGet] type AttrSetTypeConstraint ArgumentVLongFieldInfo = (~) CLong type AttrBaseTypeConstraint ArgumentVLongFieldInfo = (~) Argument type AttrGetType ArgumentVLongFieldInfo = CLong type AttrLabel ArgumentVLongFieldInfo = "v_long" type AttrOrigin ArgumentVLongFieldInfo = Argument attrGet _ = getArgumentVLong attrSet _ = setArgumentVLong attrConstruct = undefined attrClear _ = undefined argument_vLong :: AttrLabelProxy "vLong" argument_vLong = AttrLabelProxy #endif {- | Get the value of the “@v_ulong@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' argument #vUlong @ -} getArgumentVUlong :: MonadIO m => Argument -> m CULong getArgumentVUlong s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 0) :: IO CULong return val {- | Set the value of the “@v_ulong@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' argument [ #vUlong 'Data.GI.Base.Attributes.:=' value ] @ -} setArgumentVUlong :: MonadIO m => Argument -> CULong -> m () setArgumentVUlong s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 0) (val :: CULong) #if ENABLE_OVERLOADING data ArgumentVUlongFieldInfo instance AttrInfo ArgumentVUlongFieldInfo where type AttrAllowedOps ArgumentVUlongFieldInfo = '[ 'AttrSet, 'AttrGet] type AttrSetTypeConstraint ArgumentVUlongFieldInfo = (~) CULong type AttrBaseTypeConstraint ArgumentVUlongFieldInfo = (~) Argument type AttrGetType ArgumentVUlongFieldInfo = CULong type AttrLabel ArgumentVUlongFieldInfo = "v_ulong" type AttrOrigin ArgumentVUlongFieldInfo = Argument attrGet _ = getArgumentVUlong attrSet _ = setArgumentVUlong attrConstruct = undefined attrClear _ = undefined argument_vUlong :: AttrLabelProxy "vUlong" argument_vUlong = AttrLabelProxy #endif {- | Get the value of the “@v_ssize@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' argument #vSsize @ -} getArgumentVSsize :: MonadIO m => Argument -> m Int64 getArgumentVSsize s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 0) :: IO Int64 return val {- | Set the value of the “@v_ssize@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' argument [ #vSsize 'Data.GI.Base.Attributes.:=' value ] @ -} setArgumentVSsize :: MonadIO m => Argument -> Int64 -> m () setArgumentVSsize s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 0) (val :: Int64) #if ENABLE_OVERLOADING data ArgumentVSsizeFieldInfo instance AttrInfo ArgumentVSsizeFieldInfo where type AttrAllowedOps ArgumentVSsizeFieldInfo = '[ 'AttrSet, 'AttrGet] type AttrSetTypeConstraint ArgumentVSsizeFieldInfo = (~) Int64 type AttrBaseTypeConstraint ArgumentVSsizeFieldInfo = (~) Argument type AttrGetType ArgumentVSsizeFieldInfo = Int64 type AttrLabel ArgumentVSsizeFieldInfo = "v_ssize" type AttrOrigin ArgumentVSsizeFieldInfo = Argument attrGet _ = getArgumentVSsize attrSet _ = setArgumentVSsize attrConstruct = undefined attrClear _ = undefined argument_vSsize :: AttrLabelProxy "vSsize" argument_vSsize = AttrLabelProxy #endif {- | Get the value of the “@v_size@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' argument #vSize @ -} getArgumentVSize :: MonadIO m => Argument -> m Word64 getArgumentVSize s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 0) :: IO Word64 return val {- | Set the value of the “@v_size@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' argument [ #vSize 'Data.GI.Base.Attributes.:=' value ] @ -} setArgumentVSize :: MonadIO m => Argument -> Word64 -> m () setArgumentVSize s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 0) (val :: Word64) #if ENABLE_OVERLOADING data ArgumentVSizeFieldInfo instance AttrInfo ArgumentVSizeFieldInfo where type AttrAllowedOps ArgumentVSizeFieldInfo = '[ 'AttrSet, 'AttrGet] type AttrSetTypeConstraint ArgumentVSizeFieldInfo = (~) Word64 type AttrBaseTypeConstraint ArgumentVSizeFieldInfo = (~) Argument type AttrGetType ArgumentVSizeFieldInfo = Word64 type AttrLabel ArgumentVSizeFieldInfo = "v_size" type AttrOrigin ArgumentVSizeFieldInfo = Argument attrGet _ = getArgumentVSize attrSet _ = setArgumentVSize attrConstruct = undefined attrClear _ = undefined argument_vSize :: AttrLabelProxy "vSize" argument_vSize = AttrLabelProxy #endif {- | Get the value of the “@v_string@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' argument #vString @ -} getArgumentVString :: MonadIO m => Argument -> m (Maybe T.Text) getArgumentVString s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 0) :: IO CString result <- SP.convertIfNonNull val $ \val' -> do val'' <- cstringToText val' return val'' return result {- | Set the value of the “@v_string@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' argument [ #vString 'Data.GI.Base.Attributes.:=' value ] @ -} setArgumentVString :: MonadIO m => Argument -> CString -> m () setArgumentVString s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 0) (val :: CString) {- | Set the value of the “@v_string@” field to `Nothing`. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.clear' #vString @ -} clearArgumentVString :: MonadIO m => Argument -> m () clearArgumentVString s = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 0) (FP.nullPtr :: CString) #if ENABLE_OVERLOADING data ArgumentVStringFieldInfo instance AttrInfo ArgumentVStringFieldInfo where type AttrAllowedOps ArgumentVStringFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear] type AttrSetTypeConstraint ArgumentVStringFieldInfo = (~) CString type AttrBaseTypeConstraint ArgumentVStringFieldInfo = (~) Argument type AttrGetType ArgumentVStringFieldInfo = Maybe T.Text type AttrLabel ArgumentVStringFieldInfo = "v_string" type AttrOrigin ArgumentVStringFieldInfo = Argument attrGet _ = getArgumentVString attrSet _ = setArgumentVString attrConstruct = undefined attrClear _ = clearArgumentVString argument_vString :: AttrLabelProxy "vString" argument_vString = AttrLabelProxy #endif {- | Get the value of the “@v_pointer@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' argument #vPointer @ -} getArgumentVPointer :: MonadIO m => Argument -> m (Ptr ()) getArgumentVPointer s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 0) :: IO (Ptr ()) return val {- | Set the value of the “@v_pointer@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' argument [ #vPointer 'Data.GI.Base.Attributes.:=' value ] @ -} setArgumentVPointer :: MonadIO m => Argument -> Ptr () -> m () setArgumentVPointer s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 0) (val :: Ptr ()) {- | Set the value of the “@v_pointer@” field to `Nothing`. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.clear' #vPointer @ -} clearArgumentVPointer :: MonadIO m => Argument -> m () clearArgumentVPointer s = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 0) (FP.nullPtr :: Ptr ()) #if ENABLE_OVERLOADING data ArgumentVPointerFieldInfo instance AttrInfo ArgumentVPointerFieldInfo where type AttrAllowedOps ArgumentVPointerFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear] type AttrSetTypeConstraint ArgumentVPointerFieldInfo = (~) (Ptr ()) type AttrBaseTypeConstraint ArgumentVPointerFieldInfo = (~) Argument type AttrGetType ArgumentVPointerFieldInfo = Ptr () type AttrLabel ArgumentVPointerFieldInfo = "v_pointer" type AttrOrigin ArgumentVPointerFieldInfo = Argument attrGet _ = getArgumentVPointer attrSet _ = setArgumentVPointer attrConstruct = undefined attrClear _ = clearArgumentVPointer argument_vPointer :: AttrLabelProxy "vPointer" argument_vPointer = AttrLabelProxy #endif #if ENABLE_OVERLOADING instance O.HasAttributeList Argument type instance O.AttributeList Argument = ArgumentAttributeList type ArgumentAttributeList = ('[ '("vBoolean", ArgumentVBooleanFieldInfo), '("vInt8", ArgumentVInt8FieldInfo), '("vUint8", ArgumentVUint8FieldInfo), '("vInt16", ArgumentVInt16FieldInfo), '("vUint16", ArgumentVUint16FieldInfo), '("vInt32", ArgumentVInt32FieldInfo), '("vUint32", ArgumentVUint32FieldInfo), '("vInt64", ArgumentVInt64FieldInfo), '("vUint64", ArgumentVUint64FieldInfo), '("vFloat", ArgumentVFloatFieldInfo), '("vDouble", ArgumentVDoubleFieldInfo), '("vShort", ArgumentVShortFieldInfo), '("vUshort", ArgumentVUshortFieldInfo), '("vInt", ArgumentVIntFieldInfo), '("vUint", ArgumentVUintFieldInfo), '("vLong", ArgumentVLongFieldInfo), '("vUlong", ArgumentVUlongFieldInfo), '("vSsize", ArgumentVSsizeFieldInfo), '("vSize", ArgumentVSizeFieldInfo), '("vString", ArgumentVStringFieldInfo), '("vPointer", ArgumentVPointerFieldInfo)] :: [(Symbol, *)]) #endif #if ENABLE_OVERLOADING type family ResolveArgumentMethod (t :: Symbol) (o :: *) :: * where ResolveArgumentMethod l o = O.MethodResolutionFailed l o instance (info ~ ResolveArgumentMethod t Argument, O.MethodInfo info Argument p) => OL.IsLabel t (Argument -> 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