{-# LANGUAGE TypeApplications #-}


-- | Copyright  : Will Thompson and Iñaki García Etxebarria
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- Used for touchpad pinch gesture events. The current state of the
-- gesture will be determined by the /@phase@/ field.
-- 
-- Each event with phase 'GI.Clutter.Enums.TouchpadGesturePhaseBegin'
-- will report a /@scale@/ of 1.0, all later phases in the gesture
-- report the current scale relative to the initial 1.0 value
-- (eg. 0.5 being half the size, 2.0 twice as big).
-- 
-- /Since: 1.24/

#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif

module GI.Clutter.Structs.TouchpadPinchEvent
    ( 

-- * Exported types
    TouchpadPinchEvent(..)                  ,
    newZeroTouchpadPinchEvent               ,


 -- * Methods

#if defined(ENABLE_OVERLOADING)
    ResolveTouchpadPinchEventMethod         ,
#endif



 -- * Properties


-- ** angleDelta #attr:angleDelta#
-- | angle delta in degrees, clockwise rotations are
--   represented by positive deltas

    getTouchpadPinchEventAngleDelta         ,
    setTouchpadPinchEventAngleDelta         ,
#if defined(ENABLE_OVERLOADING)
    touchpadPinchEvent_angleDelta           ,
#endif


-- ** dx #attr:dx#
-- | movement delta of the pinch focal point in the X axis

    getTouchpadPinchEventDx                 ,
    setTouchpadPinchEventDx                 ,
#if defined(ENABLE_OVERLOADING)
    touchpadPinchEvent_dx                   ,
#endif


-- ** dy #attr:dy#
-- | movement delta of the pinch focal point in the Y axis

    getTouchpadPinchEventDy                 ,
    setTouchpadPinchEventDy                 ,
#if defined(ENABLE_OVERLOADING)
    touchpadPinchEvent_dy                   ,
#endif


-- ** flags #attr:flags#
-- | event flags

    getTouchpadPinchEventFlags              ,
    setTouchpadPinchEventFlags              ,
#if defined(ENABLE_OVERLOADING)
    touchpadPinchEvent_flags                ,
#endif


-- ** phase #attr:phase#
-- | the current phase of the gesture

    getTouchpadPinchEventPhase              ,
    setTouchpadPinchEventPhase              ,
#if defined(ENABLE_OVERLOADING)
    touchpadPinchEvent_phase                ,
#endif


-- ** scale #attr:scale#
-- | the current scale

    getTouchpadPinchEventScale              ,
    setTouchpadPinchEventScale              ,
#if defined(ENABLE_OVERLOADING)
    touchpadPinchEvent_scale                ,
#endif


-- ** source #attr:source#
-- | event source actor (unused)

    clearTouchpadPinchEventSource           ,
    getTouchpadPinchEventSource             ,
    setTouchpadPinchEventSource             ,
#if defined(ENABLE_OVERLOADING)
    touchpadPinchEvent_source               ,
#endif


-- ** stage #attr:stage#
-- | event source stage

    clearTouchpadPinchEventStage            ,
    getTouchpadPinchEventStage              ,
    setTouchpadPinchEventStage              ,
#if defined(ENABLE_OVERLOADING)
    touchpadPinchEvent_stage                ,
#endif


-- ** time #attr:time#
-- | event time

    getTouchpadPinchEventTime               ,
    setTouchpadPinchEventTime               ,
#if defined(ENABLE_OVERLOADING)
    touchpadPinchEvent_time                 ,
#endif


-- ** type #attr:type#
-- | event type

    getTouchpadPinchEventType               ,
    setTouchpadPinchEventType               ,
#if defined(ENABLE_OVERLOADING)
    touchpadPinchEvent_type                 ,
#endif


-- ** x #attr:x#
-- | the X coordinate of the pointer, relative to the stage

    getTouchpadPinchEventX                  ,
    setTouchpadPinchEventX                  ,
#if defined(ENABLE_OVERLOADING)
    touchpadPinchEvent_x                    ,
#endif


-- ** y #attr:y#
-- | the Y coordinate of the pointer, relative to the stage

    getTouchpadPinchEventY                  ,
    setTouchpadPinchEventY                  ,
#if defined(ENABLE_OVERLOADING)
    touchpadPinchEvent_y                    ,
#endif




    ) 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.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
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.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
import qualified Data.Coerce as Coerce
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 GHC.Records as R

import {-# SOURCE #-} qualified GI.Clutter.Enums as Clutter.Enums
import {-# SOURCE #-} qualified GI.Clutter.Flags as Clutter.Flags
import {-# SOURCE #-} qualified GI.Clutter.Objects.Actor as Clutter.Actor
import {-# SOURCE #-} qualified GI.Clutter.Objects.Stage as Clutter.Stage

-- | Memory-managed wrapper type.
newtype TouchpadPinchEvent = TouchpadPinchEvent (SP.ManagedPtr TouchpadPinchEvent)
    deriving (TouchpadPinchEvent -> TouchpadPinchEvent -> Bool
(TouchpadPinchEvent -> TouchpadPinchEvent -> Bool)
-> (TouchpadPinchEvent -> TouchpadPinchEvent -> Bool)
-> Eq TouchpadPinchEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TouchpadPinchEvent -> TouchpadPinchEvent -> Bool
$c/= :: TouchpadPinchEvent -> TouchpadPinchEvent -> Bool
== :: TouchpadPinchEvent -> TouchpadPinchEvent -> Bool
$c== :: TouchpadPinchEvent -> TouchpadPinchEvent -> Bool
Eq)

instance SP.ManagedPtrNewtype TouchpadPinchEvent where
    toManagedPtr :: TouchpadPinchEvent -> ManagedPtr TouchpadPinchEvent
toManagedPtr (TouchpadPinchEvent ManagedPtr TouchpadPinchEvent
p) = ManagedPtr TouchpadPinchEvent
p

instance BoxedPtr TouchpadPinchEvent where
    boxedPtrCopy :: TouchpadPinchEvent -> IO TouchpadPinchEvent
boxedPtrCopy = \TouchpadPinchEvent
p -> TouchpadPinchEvent
-> (Ptr TouchpadPinchEvent -> IO TouchpadPinchEvent)
-> IO TouchpadPinchEvent
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr TouchpadPinchEvent
p (Int -> Ptr TouchpadPinchEvent -> IO (Ptr TouchpadPinchEvent)
forall a. (HasCallStack, CallocPtr a) => Int -> Ptr a -> IO (Ptr a)
copyBytes Int
64 (Ptr TouchpadPinchEvent -> IO (Ptr TouchpadPinchEvent))
-> (Ptr TouchpadPinchEvent -> IO TouchpadPinchEvent)
-> Ptr TouchpadPinchEvent
-> IO TouchpadPinchEvent
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> (ManagedPtr TouchpadPinchEvent -> TouchpadPinchEvent)
-> Ptr TouchpadPinchEvent -> IO TouchpadPinchEvent
forall a.
(HasCallStack, BoxedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
B.ManagedPtr.wrapPtr ManagedPtr TouchpadPinchEvent -> TouchpadPinchEvent
TouchpadPinchEvent)
    boxedPtrFree :: TouchpadPinchEvent -> IO ()
boxedPtrFree = \TouchpadPinchEvent
x -> TouchpadPinchEvent -> (Ptr TouchpadPinchEvent -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
SP.withManagedPtr TouchpadPinchEvent
x Ptr TouchpadPinchEvent -> IO ()
forall a. Ptr a -> IO ()
SP.freeMem
instance CallocPtr TouchpadPinchEvent where
    boxedPtrCalloc :: IO (Ptr TouchpadPinchEvent)
boxedPtrCalloc = Int -> IO (Ptr TouchpadPinchEvent)
forall a. Int -> IO (Ptr a)
callocBytes Int
64


-- | Construct a `TouchpadPinchEvent` struct initialized to zero.
newZeroTouchpadPinchEvent :: MonadIO m => m TouchpadPinchEvent
newZeroTouchpadPinchEvent :: forall (m :: * -> *). MonadIO m => m TouchpadPinchEvent
newZeroTouchpadPinchEvent = IO TouchpadPinchEvent -> m TouchpadPinchEvent
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO TouchpadPinchEvent -> m TouchpadPinchEvent)
-> IO TouchpadPinchEvent -> m TouchpadPinchEvent
forall a b. (a -> b) -> a -> b
$ IO (Ptr TouchpadPinchEvent)
forall a. CallocPtr a => IO (Ptr a)
boxedPtrCalloc IO (Ptr TouchpadPinchEvent)
-> (Ptr TouchpadPinchEvent -> IO TouchpadPinchEvent)
-> IO TouchpadPinchEvent
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= (ManagedPtr TouchpadPinchEvent -> TouchpadPinchEvent)
-> Ptr TouchpadPinchEvent -> IO TouchpadPinchEvent
forall a.
(HasCallStack, BoxedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapPtr ManagedPtr TouchpadPinchEvent -> TouchpadPinchEvent
TouchpadPinchEvent

instance tag ~ 'AttrSet => Constructible TouchpadPinchEvent tag where
    new :: forall (m :: * -> *).
MonadIO m =>
(ManagedPtr TouchpadPinchEvent -> TouchpadPinchEvent)
-> [AttrOp TouchpadPinchEvent tag] -> m TouchpadPinchEvent
new ManagedPtr TouchpadPinchEvent -> TouchpadPinchEvent
_ [AttrOp TouchpadPinchEvent tag]
attrs = do
        TouchpadPinchEvent
o <- m TouchpadPinchEvent
forall (m :: * -> *). MonadIO m => m TouchpadPinchEvent
newZeroTouchpadPinchEvent
        TouchpadPinchEvent -> [AttrOp TouchpadPinchEvent 'AttrSet] -> m ()
forall o (m :: * -> *).
MonadIO m =>
o -> [AttrOp o 'AttrSet] -> m ()
GI.Attributes.set TouchpadPinchEvent
o [AttrOp TouchpadPinchEvent tag]
[AttrOp TouchpadPinchEvent 'AttrSet]
attrs
        TouchpadPinchEvent -> m TouchpadPinchEvent
forall (m :: * -> *) a. Monad m => a -> m a
return TouchpadPinchEvent
o


-- | Get the value of the “@type@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' touchpadPinchEvent #type
-- @
getTouchpadPinchEventType :: MonadIO m => TouchpadPinchEvent -> m Clutter.Enums.EventType
getTouchpadPinchEventType :: forall (m :: * -> *).
MonadIO m =>
TouchpadPinchEvent -> m EventType
getTouchpadPinchEventType TouchpadPinchEvent
s = IO EventType -> m EventType
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO EventType -> m EventType) -> IO EventType -> m EventType
forall a b. (a -> b) -> a -> b
$ TouchpadPinchEvent
-> (Ptr TouchpadPinchEvent -> IO EventType) -> IO EventType
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TouchpadPinchEvent
s ((Ptr TouchpadPinchEvent -> IO EventType) -> IO EventType)
-> (Ptr TouchpadPinchEvent -> IO EventType) -> IO EventType
forall a b. (a -> b) -> a -> b
$ \Ptr TouchpadPinchEvent
ptr -> do
    CUInt
val <- Ptr CUInt -> IO CUInt
forall a. Storable a => Ptr a -> IO a
peek (Ptr TouchpadPinchEvent
ptr Ptr TouchpadPinchEvent -> Int -> Ptr CUInt
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0) :: IO CUInt
    let val' :: EventType
val' = (Int -> EventType
forall a. Enum a => Int -> a
toEnum (Int -> EventType) -> (CUInt -> Int) -> CUInt -> EventType
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
val
    EventType -> IO EventType
forall (m :: * -> *) a. Monad m => a -> m a
return EventType
val'

-- | Set the value of the “@type@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' touchpadPinchEvent [ #type 'Data.GI.Base.Attributes.:=' value ]
-- @
setTouchpadPinchEventType :: MonadIO m => TouchpadPinchEvent -> Clutter.Enums.EventType -> m ()
setTouchpadPinchEventType :: forall (m :: * -> *).
MonadIO m =>
TouchpadPinchEvent -> EventType -> m ()
setTouchpadPinchEventType TouchpadPinchEvent
s EventType
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ TouchpadPinchEvent -> (Ptr TouchpadPinchEvent -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TouchpadPinchEvent
s ((Ptr TouchpadPinchEvent -> IO ()) -> IO ())
-> (Ptr TouchpadPinchEvent -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TouchpadPinchEvent
ptr -> do
    let val' :: CUInt
val' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt) -> (EventType -> Int) -> EventType -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. EventType -> Int
forall a. Enum a => a -> Int
fromEnum) EventType
val
    Ptr CUInt -> CUInt -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr TouchpadPinchEvent
ptr Ptr TouchpadPinchEvent -> Int -> Ptr CUInt
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0) (CUInt
val' :: CUInt)

#if defined(ENABLE_OVERLOADING)
data TouchpadPinchEventTypeFieldInfo
instance AttrInfo TouchpadPinchEventTypeFieldInfo where
    type AttrBaseTypeConstraint TouchpadPinchEventTypeFieldInfo = (~) TouchpadPinchEvent
    type AttrAllowedOps TouchpadPinchEventTypeFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint TouchpadPinchEventTypeFieldInfo = (~) Clutter.Enums.EventType
    type AttrTransferTypeConstraint TouchpadPinchEventTypeFieldInfo = (~)Clutter.Enums.EventType
    type AttrTransferType TouchpadPinchEventTypeFieldInfo = Clutter.Enums.EventType
    type AttrGetType TouchpadPinchEventTypeFieldInfo = Clutter.Enums.EventType
    type AttrLabel TouchpadPinchEventTypeFieldInfo = "type"
    type AttrOrigin TouchpadPinchEventTypeFieldInfo = TouchpadPinchEvent
    attrGet = getTouchpadPinchEventType
    attrSet = setTouchpadPinchEventType
    attrConstruct = undefined
    attrClear = undefined
    attrTransfer _ v = do
        return v
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Clutter.Structs.TouchpadPinchEvent.type"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-clutter-1.0.2/docs/GI-Clutter-Structs-TouchpadPinchEvent.html#g:attr:type"
        })

touchpadPinchEvent_type :: AttrLabelProxy "type"
touchpadPinchEvent_type = AttrLabelProxy

#endif


-- | Get the value of the “@time@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' touchpadPinchEvent #time
-- @
getTouchpadPinchEventTime :: MonadIO m => TouchpadPinchEvent -> m Word32
getTouchpadPinchEventTime :: forall (m :: * -> *). MonadIO m => TouchpadPinchEvent -> m Word32
getTouchpadPinchEventTime TouchpadPinchEvent
s = IO Word32 -> m Word32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ TouchpadPinchEvent
-> (Ptr TouchpadPinchEvent -> IO Word32) -> IO Word32
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TouchpadPinchEvent
s ((Ptr TouchpadPinchEvent -> IO Word32) -> IO Word32)
-> (Ptr TouchpadPinchEvent -> IO Word32) -> IO Word32
forall a b. (a -> b) -> a -> b
$ \Ptr TouchpadPinchEvent
ptr -> do
    Word32
val <- Ptr Word32 -> IO Word32
forall a. Storable a => Ptr a -> IO a
peek (Ptr TouchpadPinchEvent
ptr Ptr TouchpadPinchEvent -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4) :: IO Word32
    Word32 -> IO Word32
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
val

-- | Set the value of the “@time@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' touchpadPinchEvent [ #time 'Data.GI.Base.Attributes.:=' value ]
-- @
setTouchpadPinchEventTime :: MonadIO m => TouchpadPinchEvent -> Word32 -> m ()
setTouchpadPinchEventTime :: forall (m :: * -> *).
MonadIO m =>
TouchpadPinchEvent -> Word32 -> m ()
setTouchpadPinchEventTime TouchpadPinchEvent
s Word32
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ TouchpadPinchEvent -> (Ptr TouchpadPinchEvent -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TouchpadPinchEvent
s ((Ptr TouchpadPinchEvent -> IO ()) -> IO ())
-> (Ptr TouchpadPinchEvent -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TouchpadPinchEvent
ptr -> do
    Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr TouchpadPinchEvent
ptr Ptr TouchpadPinchEvent -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4) (Word32
val :: Word32)

#if defined(ENABLE_OVERLOADING)
data TouchpadPinchEventTimeFieldInfo
instance AttrInfo TouchpadPinchEventTimeFieldInfo where
    type AttrBaseTypeConstraint TouchpadPinchEventTimeFieldInfo = (~) TouchpadPinchEvent
    type AttrAllowedOps TouchpadPinchEventTimeFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint TouchpadPinchEventTimeFieldInfo = (~) Word32
    type AttrTransferTypeConstraint TouchpadPinchEventTimeFieldInfo = (~)Word32
    type AttrTransferType TouchpadPinchEventTimeFieldInfo = Word32
    type AttrGetType TouchpadPinchEventTimeFieldInfo = Word32
    type AttrLabel TouchpadPinchEventTimeFieldInfo = "time"
    type AttrOrigin TouchpadPinchEventTimeFieldInfo = TouchpadPinchEvent
    attrGet = getTouchpadPinchEventTime
    attrSet = setTouchpadPinchEventTime
    attrConstruct = undefined
    attrClear = undefined
    attrTransfer _ v = do
        return v
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Clutter.Structs.TouchpadPinchEvent.time"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-clutter-1.0.2/docs/GI-Clutter-Structs-TouchpadPinchEvent.html#g:attr:time"
        })

touchpadPinchEvent_time :: AttrLabelProxy "time"
touchpadPinchEvent_time = AttrLabelProxy

#endif


-- | Get the value of the “@flags@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' touchpadPinchEvent #flags
-- @
getTouchpadPinchEventFlags :: MonadIO m => TouchpadPinchEvent -> m [Clutter.Flags.EventFlags]
getTouchpadPinchEventFlags :: forall (m :: * -> *).
MonadIO m =>
TouchpadPinchEvent -> m [EventFlags]
getTouchpadPinchEventFlags TouchpadPinchEvent
s = IO [EventFlags] -> m [EventFlags]
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO [EventFlags] -> m [EventFlags])
-> IO [EventFlags] -> m [EventFlags]
forall a b. (a -> b) -> a -> b
$ TouchpadPinchEvent
-> (Ptr TouchpadPinchEvent -> IO [EventFlags]) -> IO [EventFlags]
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TouchpadPinchEvent
s ((Ptr TouchpadPinchEvent -> IO [EventFlags]) -> IO [EventFlags])
-> (Ptr TouchpadPinchEvent -> IO [EventFlags]) -> IO [EventFlags]
forall a b. (a -> b) -> a -> b
$ \Ptr TouchpadPinchEvent
ptr -> do
    CUInt
val <- Ptr CUInt -> IO CUInt
forall a. Storable a => Ptr a -> IO a
peek (Ptr TouchpadPinchEvent
ptr Ptr TouchpadPinchEvent -> Int -> Ptr CUInt
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8) :: IO CUInt
    let val' :: [EventFlags]
val' = CUInt -> [EventFlags]
forall a b. (Storable a, Integral a, Bits a, IsGFlag b) => a -> [b]
wordToGFlags CUInt
val
    [EventFlags] -> IO [EventFlags]
forall (m :: * -> *) a. Monad m => a -> m a
return [EventFlags]
val'

-- | Set the value of the “@flags@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' touchpadPinchEvent [ #flags 'Data.GI.Base.Attributes.:=' value ]
-- @
setTouchpadPinchEventFlags :: MonadIO m => TouchpadPinchEvent -> [Clutter.Flags.EventFlags] -> m ()
setTouchpadPinchEventFlags :: forall (m :: * -> *).
MonadIO m =>
TouchpadPinchEvent -> [EventFlags] -> m ()
setTouchpadPinchEventFlags TouchpadPinchEvent
s [EventFlags]
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ TouchpadPinchEvent -> (Ptr TouchpadPinchEvent -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TouchpadPinchEvent
s ((Ptr TouchpadPinchEvent -> IO ()) -> IO ())
-> (Ptr TouchpadPinchEvent -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TouchpadPinchEvent
ptr -> do
    let val' :: CUInt
val' = [EventFlags] -> CUInt
forall b a. (Num b, IsGFlag a) => [a] -> b
gflagsToWord [EventFlags]
val
    Ptr CUInt -> CUInt -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr TouchpadPinchEvent
ptr Ptr TouchpadPinchEvent -> Int -> Ptr CUInt
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8) (CUInt
val' :: CUInt)

#if defined(ENABLE_OVERLOADING)
data TouchpadPinchEventFlagsFieldInfo
instance AttrInfo TouchpadPinchEventFlagsFieldInfo where
    type AttrBaseTypeConstraint TouchpadPinchEventFlagsFieldInfo = (~) TouchpadPinchEvent
    type AttrAllowedOps TouchpadPinchEventFlagsFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint TouchpadPinchEventFlagsFieldInfo = (~) [Clutter.Flags.EventFlags]
    type AttrTransferTypeConstraint TouchpadPinchEventFlagsFieldInfo = (~)[Clutter.Flags.EventFlags]
    type AttrTransferType TouchpadPinchEventFlagsFieldInfo = [Clutter.Flags.EventFlags]
    type AttrGetType TouchpadPinchEventFlagsFieldInfo = [Clutter.Flags.EventFlags]
    type AttrLabel TouchpadPinchEventFlagsFieldInfo = "flags"
    type AttrOrigin TouchpadPinchEventFlagsFieldInfo = TouchpadPinchEvent
    attrGet = getTouchpadPinchEventFlags
    attrSet = setTouchpadPinchEventFlags
    attrConstruct = undefined
    attrClear = undefined
    attrTransfer _ v = do
        return v
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Clutter.Structs.TouchpadPinchEvent.flags"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-clutter-1.0.2/docs/GI-Clutter-Structs-TouchpadPinchEvent.html#g:attr:flags"
        })

touchpadPinchEvent_flags :: AttrLabelProxy "flags"
touchpadPinchEvent_flags = AttrLabelProxy

#endif


-- | Get the value of the “@stage@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' touchpadPinchEvent #stage
-- @
getTouchpadPinchEventStage :: MonadIO m => TouchpadPinchEvent -> m (Maybe Clutter.Stage.Stage)
getTouchpadPinchEventStage :: forall (m :: * -> *).
MonadIO m =>
TouchpadPinchEvent -> m (Maybe Stage)
getTouchpadPinchEventStage TouchpadPinchEvent
s = IO (Maybe Stage) -> m (Maybe Stage)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Stage) -> m (Maybe Stage))
-> IO (Maybe Stage) -> m (Maybe Stage)
forall a b. (a -> b) -> a -> b
$ TouchpadPinchEvent
-> (Ptr TouchpadPinchEvent -> IO (Maybe Stage)) -> IO (Maybe Stage)
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TouchpadPinchEvent
s ((Ptr TouchpadPinchEvent -> IO (Maybe Stage)) -> IO (Maybe Stage))
-> (Ptr TouchpadPinchEvent -> IO (Maybe Stage)) -> IO (Maybe Stage)
forall a b. (a -> b) -> a -> b
$ \Ptr TouchpadPinchEvent
ptr -> do
    Ptr Stage
val <- Ptr (Ptr Stage) -> IO (Ptr Stage)
forall a. Storable a => Ptr a -> IO a
peek (Ptr TouchpadPinchEvent
ptr Ptr TouchpadPinchEvent -> Int -> Ptr (Ptr Stage)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16) :: IO (Ptr Clutter.Stage.Stage)
    Maybe Stage
result <- Ptr Stage -> (Ptr Stage -> IO Stage) -> IO (Maybe Stage)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
SP.convertIfNonNull Ptr Stage
val ((Ptr Stage -> IO Stage) -> IO (Maybe Stage))
-> (Ptr Stage -> IO Stage) -> IO (Maybe Stage)
forall a b. (a -> b) -> a -> b
$ \Ptr Stage
val' -> do
        Stage
val'' <- ((ManagedPtr Stage -> Stage) -> Ptr Stage -> IO Stage
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Stage -> Stage
Clutter.Stage.Stage) Ptr Stage
val'
        Stage -> IO Stage
forall (m :: * -> *) a. Monad m => a -> m a
return Stage
val''
    Maybe Stage -> IO (Maybe Stage)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Stage
result

-- | Set the value of the “@stage@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' touchpadPinchEvent [ #stage 'Data.GI.Base.Attributes.:=' value ]
-- @
setTouchpadPinchEventStage :: MonadIO m => TouchpadPinchEvent -> Ptr Clutter.Stage.Stage -> m ()
setTouchpadPinchEventStage :: forall (m :: * -> *).
MonadIO m =>
TouchpadPinchEvent -> Ptr Stage -> m ()
setTouchpadPinchEventStage TouchpadPinchEvent
s Ptr Stage
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ TouchpadPinchEvent -> (Ptr TouchpadPinchEvent -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TouchpadPinchEvent
s ((Ptr TouchpadPinchEvent -> IO ()) -> IO ())
-> (Ptr TouchpadPinchEvent -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TouchpadPinchEvent
ptr -> do
    Ptr (Ptr Stage) -> Ptr Stage -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr TouchpadPinchEvent
ptr Ptr TouchpadPinchEvent -> Int -> Ptr (Ptr Stage)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16) (Ptr Stage
val :: Ptr Clutter.Stage.Stage)

-- | Set the value of the “@stage@” field to `Nothing`.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.clear' #stage
-- @
clearTouchpadPinchEventStage :: MonadIO m => TouchpadPinchEvent -> m ()
clearTouchpadPinchEventStage :: forall (m :: * -> *). MonadIO m => TouchpadPinchEvent -> m ()
clearTouchpadPinchEventStage TouchpadPinchEvent
s = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ TouchpadPinchEvent -> (Ptr TouchpadPinchEvent -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TouchpadPinchEvent
s ((Ptr TouchpadPinchEvent -> IO ()) -> IO ())
-> (Ptr TouchpadPinchEvent -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TouchpadPinchEvent
ptr -> do
    Ptr (Ptr Stage) -> Ptr Stage -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr TouchpadPinchEvent
ptr Ptr TouchpadPinchEvent -> Int -> Ptr (Ptr Stage)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16) (Ptr Stage
forall a. Ptr a
FP.nullPtr :: Ptr Clutter.Stage.Stage)

#if defined(ENABLE_OVERLOADING)
data TouchpadPinchEventStageFieldInfo
instance AttrInfo TouchpadPinchEventStageFieldInfo where
    type AttrBaseTypeConstraint TouchpadPinchEventStageFieldInfo = (~) TouchpadPinchEvent
    type AttrAllowedOps TouchpadPinchEventStageFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint TouchpadPinchEventStageFieldInfo = (~) (Ptr Clutter.Stage.Stage)
    type AttrTransferTypeConstraint TouchpadPinchEventStageFieldInfo = (~)(Ptr Clutter.Stage.Stage)
    type AttrTransferType TouchpadPinchEventStageFieldInfo = (Ptr Clutter.Stage.Stage)
    type AttrGetType TouchpadPinchEventStageFieldInfo = Maybe Clutter.Stage.Stage
    type AttrLabel TouchpadPinchEventStageFieldInfo = "stage"
    type AttrOrigin TouchpadPinchEventStageFieldInfo = TouchpadPinchEvent
    attrGet = getTouchpadPinchEventStage
    attrSet = setTouchpadPinchEventStage
    attrConstruct = undefined
    attrClear = clearTouchpadPinchEventStage
    attrTransfer _ v = do
        return v
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Clutter.Structs.TouchpadPinchEvent.stage"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-clutter-1.0.2/docs/GI-Clutter-Structs-TouchpadPinchEvent.html#g:attr:stage"
        })

touchpadPinchEvent_stage :: AttrLabelProxy "stage"
touchpadPinchEvent_stage = AttrLabelProxy

#endif


-- | Get the value of the “@source@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' touchpadPinchEvent #source
-- @
getTouchpadPinchEventSource :: MonadIO m => TouchpadPinchEvent -> m (Maybe Clutter.Actor.Actor)
getTouchpadPinchEventSource :: forall (m :: * -> *).
MonadIO m =>
TouchpadPinchEvent -> m (Maybe Actor)
getTouchpadPinchEventSource TouchpadPinchEvent
s = IO (Maybe Actor) -> m (Maybe Actor)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Actor) -> m (Maybe Actor))
-> IO (Maybe Actor) -> m (Maybe Actor)
forall a b. (a -> b) -> a -> b
$ TouchpadPinchEvent
-> (Ptr TouchpadPinchEvent -> IO (Maybe Actor)) -> IO (Maybe Actor)
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TouchpadPinchEvent
s ((Ptr TouchpadPinchEvent -> IO (Maybe Actor)) -> IO (Maybe Actor))
-> (Ptr TouchpadPinchEvent -> IO (Maybe Actor)) -> IO (Maybe Actor)
forall a b. (a -> b) -> a -> b
$ \Ptr TouchpadPinchEvent
ptr -> do
    Ptr Actor
val <- Ptr (Ptr Actor) -> IO (Ptr Actor)
forall a. Storable a => Ptr a -> IO a
peek (Ptr TouchpadPinchEvent
ptr Ptr TouchpadPinchEvent -> Int -> Ptr (Ptr Actor)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24) :: IO (Ptr Clutter.Actor.Actor)
    Maybe Actor
result <- Ptr Actor -> (Ptr Actor -> IO Actor) -> IO (Maybe Actor)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
SP.convertIfNonNull Ptr Actor
val ((Ptr Actor -> IO Actor) -> IO (Maybe Actor))
-> (Ptr Actor -> IO Actor) -> IO (Maybe Actor)
forall a b. (a -> b) -> a -> b
$ \Ptr Actor
val' -> do
        Actor
val'' <- ((ManagedPtr Actor -> Actor) -> Ptr Actor -> IO Actor
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Actor -> Actor
Clutter.Actor.Actor) Ptr Actor
val'
        Actor -> IO Actor
forall (m :: * -> *) a. Monad m => a -> m a
return Actor
val''
    Maybe Actor -> IO (Maybe Actor)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Actor
result

-- | Set the value of the “@source@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' touchpadPinchEvent [ #source 'Data.GI.Base.Attributes.:=' value ]
-- @
setTouchpadPinchEventSource :: MonadIO m => TouchpadPinchEvent -> Ptr Clutter.Actor.Actor -> m ()
setTouchpadPinchEventSource :: forall (m :: * -> *).
MonadIO m =>
TouchpadPinchEvent -> Ptr Actor -> m ()
setTouchpadPinchEventSource TouchpadPinchEvent
s Ptr Actor
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ TouchpadPinchEvent -> (Ptr TouchpadPinchEvent -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TouchpadPinchEvent
s ((Ptr TouchpadPinchEvent -> IO ()) -> IO ())
-> (Ptr TouchpadPinchEvent -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TouchpadPinchEvent
ptr -> do
    Ptr (Ptr Actor) -> Ptr Actor -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr TouchpadPinchEvent
ptr Ptr TouchpadPinchEvent -> Int -> Ptr (Ptr Actor)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24) (Ptr Actor
val :: Ptr Clutter.Actor.Actor)

-- | Set the value of the “@source@” field to `Nothing`.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.clear' #source
-- @
clearTouchpadPinchEventSource :: MonadIO m => TouchpadPinchEvent -> m ()
clearTouchpadPinchEventSource :: forall (m :: * -> *). MonadIO m => TouchpadPinchEvent -> m ()
clearTouchpadPinchEventSource TouchpadPinchEvent
s = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ TouchpadPinchEvent -> (Ptr TouchpadPinchEvent -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TouchpadPinchEvent
s ((Ptr TouchpadPinchEvent -> IO ()) -> IO ())
-> (Ptr TouchpadPinchEvent -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TouchpadPinchEvent
ptr -> do
    Ptr (Ptr Actor) -> Ptr Actor -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr TouchpadPinchEvent
ptr Ptr TouchpadPinchEvent -> Int -> Ptr (Ptr Actor)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24) (Ptr Actor
forall a. Ptr a
FP.nullPtr :: Ptr Clutter.Actor.Actor)

#if defined(ENABLE_OVERLOADING)
data TouchpadPinchEventSourceFieldInfo
instance AttrInfo TouchpadPinchEventSourceFieldInfo where
    type AttrBaseTypeConstraint TouchpadPinchEventSourceFieldInfo = (~) TouchpadPinchEvent
    type AttrAllowedOps TouchpadPinchEventSourceFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint TouchpadPinchEventSourceFieldInfo = (~) (Ptr Clutter.Actor.Actor)
    type AttrTransferTypeConstraint TouchpadPinchEventSourceFieldInfo = (~)(Ptr Clutter.Actor.Actor)
    type AttrTransferType TouchpadPinchEventSourceFieldInfo = (Ptr Clutter.Actor.Actor)
    type AttrGetType TouchpadPinchEventSourceFieldInfo = Maybe Clutter.Actor.Actor
    type AttrLabel TouchpadPinchEventSourceFieldInfo = "source"
    type AttrOrigin TouchpadPinchEventSourceFieldInfo = TouchpadPinchEvent
    attrGet = getTouchpadPinchEventSource
    attrSet = setTouchpadPinchEventSource
    attrConstruct = undefined
    attrClear = clearTouchpadPinchEventSource
    attrTransfer _ v = do
        return v
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Clutter.Structs.TouchpadPinchEvent.source"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-clutter-1.0.2/docs/GI-Clutter-Structs-TouchpadPinchEvent.html#g:attr:source"
        })

touchpadPinchEvent_source :: AttrLabelProxy "source"
touchpadPinchEvent_source = AttrLabelProxy

#endif


-- | Get the value of the “@phase@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' touchpadPinchEvent #phase
-- @
getTouchpadPinchEventPhase :: MonadIO m => TouchpadPinchEvent -> m Clutter.Enums.TouchpadGesturePhase
getTouchpadPinchEventPhase :: forall (m :: * -> *).
MonadIO m =>
TouchpadPinchEvent -> m TouchpadGesturePhase
getTouchpadPinchEventPhase TouchpadPinchEvent
s = IO TouchpadGesturePhase -> m TouchpadGesturePhase
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO TouchpadGesturePhase -> m TouchpadGesturePhase)
-> IO TouchpadGesturePhase -> m TouchpadGesturePhase
forall a b. (a -> b) -> a -> b
$ TouchpadPinchEvent
-> (Ptr TouchpadPinchEvent -> IO TouchpadGesturePhase)
-> IO TouchpadGesturePhase
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TouchpadPinchEvent
s ((Ptr TouchpadPinchEvent -> IO TouchpadGesturePhase)
 -> IO TouchpadGesturePhase)
-> (Ptr TouchpadPinchEvent -> IO TouchpadGesturePhase)
-> IO TouchpadGesturePhase
forall a b. (a -> b) -> a -> b
$ \Ptr TouchpadPinchEvent
ptr -> do
    CUInt
val <- Ptr CUInt -> IO CUInt
forall a. Storable a => Ptr a -> IO a
peek (Ptr TouchpadPinchEvent
ptr Ptr TouchpadPinchEvent -> Int -> Ptr CUInt
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32) :: IO CUInt
    let val' :: TouchpadGesturePhase
val' = (Int -> TouchpadGesturePhase
forall a. Enum a => Int -> a
toEnum (Int -> TouchpadGesturePhase)
-> (CUInt -> Int) -> CUInt -> TouchpadGesturePhase
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
val
    TouchpadGesturePhase -> IO TouchpadGesturePhase
forall (m :: * -> *) a. Monad m => a -> m a
return TouchpadGesturePhase
val'

-- | Set the value of the “@phase@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' touchpadPinchEvent [ #phase 'Data.GI.Base.Attributes.:=' value ]
-- @
setTouchpadPinchEventPhase :: MonadIO m => TouchpadPinchEvent -> Clutter.Enums.TouchpadGesturePhase -> m ()
setTouchpadPinchEventPhase :: forall (m :: * -> *).
MonadIO m =>
TouchpadPinchEvent -> TouchpadGesturePhase -> m ()
setTouchpadPinchEventPhase TouchpadPinchEvent
s TouchpadGesturePhase
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ TouchpadPinchEvent -> (Ptr TouchpadPinchEvent -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TouchpadPinchEvent
s ((Ptr TouchpadPinchEvent -> IO ()) -> IO ())
-> (Ptr TouchpadPinchEvent -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TouchpadPinchEvent
ptr -> do
    let val' :: CUInt
val' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt)
-> (TouchpadGesturePhase -> Int) -> TouchpadGesturePhase -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. TouchpadGesturePhase -> Int
forall a. Enum a => a -> Int
fromEnum) TouchpadGesturePhase
val
    Ptr CUInt -> CUInt -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr TouchpadPinchEvent
ptr Ptr TouchpadPinchEvent -> Int -> Ptr CUInt
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32) (CUInt
val' :: CUInt)

#if defined(ENABLE_OVERLOADING)
data TouchpadPinchEventPhaseFieldInfo
instance AttrInfo TouchpadPinchEventPhaseFieldInfo where
    type AttrBaseTypeConstraint TouchpadPinchEventPhaseFieldInfo = (~) TouchpadPinchEvent
    type AttrAllowedOps TouchpadPinchEventPhaseFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint TouchpadPinchEventPhaseFieldInfo = (~) Clutter.Enums.TouchpadGesturePhase
    type AttrTransferTypeConstraint TouchpadPinchEventPhaseFieldInfo = (~)Clutter.Enums.TouchpadGesturePhase
    type AttrTransferType TouchpadPinchEventPhaseFieldInfo = Clutter.Enums.TouchpadGesturePhase
    type AttrGetType TouchpadPinchEventPhaseFieldInfo = Clutter.Enums.TouchpadGesturePhase
    type AttrLabel TouchpadPinchEventPhaseFieldInfo = "phase"
    type AttrOrigin TouchpadPinchEventPhaseFieldInfo = TouchpadPinchEvent
    attrGet = getTouchpadPinchEventPhase
    attrSet = setTouchpadPinchEventPhase
    attrConstruct = undefined
    attrClear = undefined
    attrTransfer _ v = do
        return v
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Clutter.Structs.TouchpadPinchEvent.phase"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-clutter-1.0.2/docs/GI-Clutter-Structs-TouchpadPinchEvent.html#g:attr:phase"
        })

touchpadPinchEvent_phase :: AttrLabelProxy "phase"
touchpadPinchEvent_phase = AttrLabelProxy

#endif


-- | Get the value of the “@x@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' touchpadPinchEvent #x
-- @
getTouchpadPinchEventX :: MonadIO m => TouchpadPinchEvent -> m Float
getTouchpadPinchEventX :: forall (m :: * -> *). MonadIO m => TouchpadPinchEvent -> m Float
getTouchpadPinchEventX TouchpadPinchEvent
s = IO Float -> m Float
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Float -> m Float) -> IO Float -> m Float
forall a b. (a -> b) -> a -> b
$ TouchpadPinchEvent
-> (Ptr TouchpadPinchEvent -> IO Float) -> IO Float
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TouchpadPinchEvent
s ((Ptr TouchpadPinchEvent -> IO Float) -> IO Float)
-> (Ptr TouchpadPinchEvent -> IO Float) -> IO Float
forall a b. (a -> b) -> a -> b
$ \Ptr TouchpadPinchEvent
ptr -> do
    CFloat
val <- Ptr CFloat -> IO CFloat
forall a. Storable a => Ptr a -> IO a
peek (Ptr TouchpadPinchEvent
ptr Ptr TouchpadPinchEvent -> Int -> Ptr CFloat
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
36) :: IO CFloat
    let val' :: Float
val' = CFloat -> Float
forall a b. (Real a, Fractional b) => a -> b
realToFrac CFloat
val
    Float -> IO Float
forall (m :: * -> *) a. Monad m => a -> m a
return Float
val'

-- | Set the value of the “@x@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' touchpadPinchEvent [ #x 'Data.GI.Base.Attributes.:=' value ]
-- @
setTouchpadPinchEventX :: MonadIO m => TouchpadPinchEvent -> Float -> m ()
setTouchpadPinchEventX :: forall (m :: * -> *).
MonadIO m =>
TouchpadPinchEvent -> Float -> m ()
setTouchpadPinchEventX TouchpadPinchEvent
s Float
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ TouchpadPinchEvent -> (Ptr TouchpadPinchEvent -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TouchpadPinchEvent
s ((Ptr TouchpadPinchEvent -> IO ()) -> IO ())
-> (Ptr TouchpadPinchEvent -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TouchpadPinchEvent
ptr -> do
    let val' :: CFloat
val' = Float -> CFloat
forall a b. (Real a, Fractional b) => a -> b
realToFrac Float
val
    Ptr CFloat -> CFloat -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr TouchpadPinchEvent
ptr Ptr TouchpadPinchEvent -> Int -> Ptr CFloat
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
36) (CFloat
val' :: CFloat)

#if defined(ENABLE_OVERLOADING)
data TouchpadPinchEventXFieldInfo
instance AttrInfo TouchpadPinchEventXFieldInfo where
    type AttrBaseTypeConstraint TouchpadPinchEventXFieldInfo = (~) TouchpadPinchEvent
    type AttrAllowedOps TouchpadPinchEventXFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint TouchpadPinchEventXFieldInfo = (~) Float
    type AttrTransferTypeConstraint TouchpadPinchEventXFieldInfo = (~)Float
    type AttrTransferType TouchpadPinchEventXFieldInfo = Float
    type AttrGetType TouchpadPinchEventXFieldInfo = Float
    type AttrLabel TouchpadPinchEventXFieldInfo = "x"
    type AttrOrigin TouchpadPinchEventXFieldInfo = TouchpadPinchEvent
    attrGet = getTouchpadPinchEventX
    attrSet = setTouchpadPinchEventX
    attrConstruct = undefined
    attrClear = undefined
    attrTransfer _ v = do
        return v
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Clutter.Structs.TouchpadPinchEvent.x"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-clutter-1.0.2/docs/GI-Clutter-Structs-TouchpadPinchEvent.html#g:attr:x"
        })

touchpadPinchEvent_x :: AttrLabelProxy "x"
touchpadPinchEvent_x = AttrLabelProxy

#endif


-- | Get the value of the “@y@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' touchpadPinchEvent #y
-- @
getTouchpadPinchEventY :: MonadIO m => TouchpadPinchEvent -> m Float
getTouchpadPinchEventY :: forall (m :: * -> *). MonadIO m => TouchpadPinchEvent -> m Float
getTouchpadPinchEventY TouchpadPinchEvent
s = IO Float -> m Float
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Float -> m Float) -> IO Float -> m Float
forall a b. (a -> b) -> a -> b
$ TouchpadPinchEvent
-> (Ptr TouchpadPinchEvent -> IO Float) -> IO Float
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TouchpadPinchEvent
s ((Ptr TouchpadPinchEvent -> IO Float) -> IO Float)
-> (Ptr TouchpadPinchEvent -> IO Float) -> IO Float
forall a b. (a -> b) -> a -> b
$ \Ptr TouchpadPinchEvent
ptr -> do
    CFloat
val <- Ptr CFloat -> IO CFloat
forall a. Storable a => Ptr a -> IO a
peek (Ptr TouchpadPinchEvent
ptr Ptr TouchpadPinchEvent -> Int -> Ptr CFloat
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40) :: IO CFloat
    let val' :: Float
val' = CFloat -> Float
forall a b. (Real a, Fractional b) => a -> b
realToFrac CFloat
val
    Float -> IO Float
forall (m :: * -> *) a. Monad m => a -> m a
return Float
val'

-- | Set the value of the “@y@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' touchpadPinchEvent [ #y 'Data.GI.Base.Attributes.:=' value ]
-- @
setTouchpadPinchEventY :: MonadIO m => TouchpadPinchEvent -> Float -> m ()
setTouchpadPinchEventY :: forall (m :: * -> *).
MonadIO m =>
TouchpadPinchEvent -> Float -> m ()
setTouchpadPinchEventY TouchpadPinchEvent
s Float
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ TouchpadPinchEvent -> (Ptr TouchpadPinchEvent -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TouchpadPinchEvent
s ((Ptr TouchpadPinchEvent -> IO ()) -> IO ())
-> (Ptr TouchpadPinchEvent -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TouchpadPinchEvent
ptr -> do
    let val' :: CFloat
val' = Float -> CFloat
forall a b. (Real a, Fractional b) => a -> b
realToFrac Float
val
    Ptr CFloat -> CFloat -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr TouchpadPinchEvent
ptr Ptr TouchpadPinchEvent -> Int -> Ptr CFloat
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40) (CFloat
val' :: CFloat)

#if defined(ENABLE_OVERLOADING)
data TouchpadPinchEventYFieldInfo
instance AttrInfo TouchpadPinchEventYFieldInfo where
    type AttrBaseTypeConstraint TouchpadPinchEventYFieldInfo = (~) TouchpadPinchEvent
    type AttrAllowedOps TouchpadPinchEventYFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint TouchpadPinchEventYFieldInfo = (~) Float
    type AttrTransferTypeConstraint TouchpadPinchEventYFieldInfo = (~)Float
    type AttrTransferType TouchpadPinchEventYFieldInfo = Float
    type AttrGetType TouchpadPinchEventYFieldInfo = Float
    type AttrLabel TouchpadPinchEventYFieldInfo = "y"
    type AttrOrigin TouchpadPinchEventYFieldInfo = TouchpadPinchEvent
    attrGet = getTouchpadPinchEventY
    attrSet = setTouchpadPinchEventY
    attrConstruct = undefined
    attrClear = undefined
    attrTransfer _ v = do
        return v
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Clutter.Structs.TouchpadPinchEvent.y"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-clutter-1.0.2/docs/GI-Clutter-Structs-TouchpadPinchEvent.html#g:attr:y"
        })

touchpadPinchEvent_y :: AttrLabelProxy "y"
touchpadPinchEvent_y = AttrLabelProxy

#endif


-- | Get the value of the “@dx@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' touchpadPinchEvent #dx
-- @
getTouchpadPinchEventDx :: MonadIO m => TouchpadPinchEvent -> m Float
getTouchpadPinchEventDx :: forall (m :: * -> *). MonadIO m => TouchpadPinchEvent -> m Float
getTouchpadPinchEventDx TouchpadPinchEvent
s = IO Float -> m Float
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Float -> m Float) -> IO Float -> m Float
forall a b. (a -> b) -> a -> b
$ TouchpadPinchEvent
-> (Ptr TouchpadPinchEvent -> IO Float) -> IO Float
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TouchpadPinchEvent
s ((Ptr TouchpadPinchEvent -> IO Float) -> IO Float)
-> (Ptr TouchpadPinchEvent -> IO Float) -> IO Float
forall a b. (a -> b) -> a -> b
$ \Ptr TouchpadPinchEvent
ptr -> do
    CFloat
val <- Ptr CFloat -> IO CFloat
forall a. Storable a => Ptr a -> IO a
peek (Ptr TouchpadPinchEvent
ptr Ptr TouchpadPinchEvent -> Int -> Ptr CFloat
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
44) :: IO CFloat
    let val' :: Float
val' = CFloat -> Float
forall a b. (Real a, Fractional b) => a -> b
realToFrac CFloat
val
    Float -> IO Float
forall (m :: * -> *) a. Monad m => a -> m a
return Float
val'

-- | Set the value of the “@dx@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' touchpadPinchEvent [ #dx 'Data.GI.Base.Attributes.:=' value ]
-- @
setTouchpadPinchEventDx :: MonadIO m => TouchpadPinchEvent -> Float -> m ()
setTouchpadPinchEventDx :: forall (m :: * -> *).
MonadIO m =>
TouchpadPinchEvent -> Float -> m ()
setTouchpadPinchEventDx TouchpadPinchEvent
s Float
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ TouchpadPinchEvent -> (Ptr TouchpadPinchEvent -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TouchpadPinchEvent
s ((Ptr TouchpadPinchEvent -> IO ()) -> IO ())
-> (Ptr TouchpadPinchEvent -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TouchpadPinchEvent
ptr -> do
    let val' :: CFloat
val' = Float -> CFloat
forall a b. (Real a, Fractional b) => a -> b
realToFrac Float
val
    Ptr CFloat -> CFloat -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr TouchpadPinchEvent
ptr Ptr TouchpadPinchEvent -> Int -> Ptr CFloat
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
44) (CFloat
val' :: CFloat)

#if defined(ENABLE_OVERLOADING)
data TouchpadPinchEventDxFieldInfo
instance AttrInfo TouchpadPinchEventDxFieldInfo where
    type AttrBaseTypeConstraint TouchpadPinchEventDxFieldInfo = (~) TouchpadPinchEvent
    type AttrAllowedOps TouchpadPinchEventDxFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint TouchpadPinchEventDxFieldInfo = (~) Float
    type AttrTransferTypeConstraint TouchpadPinchEventDxFieldInfo = (~)Float
    type AttrTransferType TouchpadPinchEventDxFieldInfo = Float
    type AttrGetType TouchpadPinchEventDxFieldInfo = Float
    type AttrLabel TouchpadPinchEventDxFieldInfo = "dx"
    type AttrOrigin TouchpadPinchEventDxFieldInfo = TouchpadPinchEvent
    attrGet = getTouchpadPinchEventDx
    attrSet = setTouchpadPinchEventDx
    attrConstruct = undefined
    attrClear = undefined
    attrTransfer _ v = do
        return v
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Clutter.Structs.TouchpadPinchEvent.dx"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-clutter-1.0.2/docs/GI-Clutter-Structs-TouchpadPinchEvent.html#g:attr:dx"
        })

touchpadPinchEvent_dx :: AttrLabelProxy "dx"
touchpadPinchEvent_dx = AttrLabelProxy

#endif


-- | Get the value of the “@dy@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' touchpadPinchEvent #dy
-- @
getTouchpadPinchEventDy :: MonadIO m => TouchpadPinchEvent -> m Float
getTouchpadPinchEventDy :: forall (m :: * -> *). MonadIO m => TouchpadPinchEvent -> m Float
getTouchpadPinchEventDy TouchpadPinchEvent
s = IO Float -> m Float
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Float -> m Float) -> IO Float -> m Float
forall a b. (a -> b) -> a -> b
$ TouchpadPinchEvent
-> (Ptr TouchpadPinchEvent -> IO Float) -> IO Float
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TouchpadPinchEvent
s ((Ptr TouchpadPinchEvent -> IO Float) -> IO Float)
-> (Ptr TouchpadPinchEvent -> IO Float) -> IO Float
forall a b. (a -> b) -> a -> b
$ \Ptr TouchpadPinchEvent
ptr -> do
    CFloat
val <- Ptr CFloat -> IO CFloat
forall a. Storable a => Ptr a -> IO a
peek (Ptr TouchpadPinchEvent
ptr Ptr TouchpadPinchEvent -> Int -> Ptr CFloat
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48) :: IO CFloat
    let val' :: Float
val' = CFloat -> Float
forall a b. (Real a, Fractional b) => a -> b
realToFrac CFloat
val
    Float -> IO Float
forall (m :: * -> *) a. Monad m => a -> m a
return Float
val'

-- | Set the value of the “@dy@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' touchpadPinchEvent [ #dy 'Data.GI.Base.Attributes.:=' value ]
-- @
setTouchpadPinchEventDy :: MonadIO m => TouchpadPinchEvent -> Float -> m ()
setTouchpadPinchEventDy :: forall (m :: * -> *).
MonadIO m =>
TouchpadPinchEvent -> Float -> m ()
setTouchpadPinchEventDy TouchpadPinchEvent
s Float
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ TouchpadPinchEvent -> (Ptr TouchpadPinchEvent -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TouchpadPinchEvent
s ((Ptr TouchpadPinchEvent -> IO ()) -> IO ())
-> (Ptr TouchpadPinchEvent -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TouchpadPinchEvent
ptr -> do
    let val' :: CFloat
val' = Float -> CFloat
forall a b. (Real a, Fractional b) => a -> b
realToFrac Float
val
    Ptr CFloat -> CFloat -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr TouchpadPinchEvent
ptr Ptr TouchpadPinchEvent -> Int -> Ptr CFloat
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48) (CFloat
val' :: CFloat)

#if defined(ENABLE_OVERLOADING)
data TouchpadPinchEventDyFieldInfo
instance AttrInfo TouchpadPinchEventDyFieldInfo where
    type AttrBaseTypeConstraint TouchpadPinchEventDyFieldInfo = (~) TouchpadPinchEvent
    type AttrAllowedOps TouchpadPinchEventDyFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint TouchpadPinchEventDyFieldInfo = (~) Float
    type AttrTransferTypeConstraint TouchpadPinchEventDyFieldInfo = (~)Float
    type AttrTransferType TouchpadPinchEventDyFieldInfo = Float
    type AttrGetType TouchpadPinchEventDyFieldInfo = Float
    type AttrLabel TouchpadPinchEventDyFieldInfo = "dy"
    type AttrOrigin TouchpadPinchEventDyFieldInfo = TouchpadPinchEvent
    attrGet = getTouchpadPinchEventDy
    attrSet = setTouchpadPinchEventDy
    attrConstruct = undefined
    attrClear = undefined
    attrTransfer _ v = do
        return v
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Clutter.Structs.TouchpadPinchEvent.dy"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-clutter-1.0.2/docs/GI-Clutter-Structs-TouchpadPinchEvent.html#g:attr:dy"
        })

touchpadPinchEvent_dy :: AttrLabelProxy "dy"
touchpadPinchEvent_dy = AttrLabelProxy

#endif


-- | Get the value of the “@angle_delta@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' touchpadPinchEvent #angleDelta
-- @
getTouchpadPinchEventAngleDelta :: MonadIO m => TouchpadPinchEvent -> m Float
getTouchpadPinchEventAngleDelta :: forall (m :: * -> *). MonadIO m => TouchpadPinchEvent -> m Float
getTouchpadPinchEventAngleDelta TouchpadPinchEvent
s = IO Float -> m Float
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Float -> m Float) -> IO Float -> m Float
forall a b. (a -> b) -> a -> b
$ TouchpadPinchEvent
-> (Ptr TouchpadPinchEvent -> IO Float) -> IO Float
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TouchpadPinchEvent
s ((Ptr TouchpadPinchEvent -> IO Float) -> IO Float)
-> (Ptr TouchpadPinchEvent -> IO Float) -> IO Float
forall a b. (a -> b) -> a -> b
$ \Ptr TouchpadPinchEvent
ptr -> do
    CFloat
val <- Ptr CFloat -> IO CFloat
forall a. Storable a => Ptr a -> IO a
peek (Ptr TouchpadPinchEvent
ptr Ptr TouchpadPinchEvent -> Int -> Ptr CFloat
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
52) :: IO CFloat
    let val' :: Float
val' = CFloat -> Float
forall a b. (Real a, Fractional b) => a -> b
realToFrac CFloat
val
    Float -> IO Float
forall (m :: * -> *) a. Monad m => a -> m a
return Float
val'

-- | Set the value of the “@angle_delta@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' touchpadPinchEvent [ #angleDelta 'Data.GI.Base.Attributes.:=' value ]
-- @
setTouchpadPinchEventAngleDelta :: MonadIO m => TouchpadPinchEvent -> Float -> m ()
setTouchpadPinchEventAngleDelta :: forall (m :: * -> *).
MonadIO m =>
TouchpadPinchEvent -> Float -> m ()
setTouchpadPinchEventAngleDelta TouchpadPinchEvent
s Float
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ TouchpadPinchEvent -> (Ptr TouchpadPinchEvent -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TouchpadPinchEvent
s ((Ptr TouchpadPinchEvent -> IO ()) -> IO ())
-> (Ptr TouchpadPinchEvent -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TouchpadPinchEvent
ptr -> do
    let val' :: CFloat
val' = Float -> CFloat
forall a b. (Real a, Fractional b) => a -> b
realToFrac Float
val
    Ptr CFloat -> CFloat -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr TouchpadPinchEvent
ptr Ptr TouchpadPinchEvent -> Int -> Ptr CFloat
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
52) (CFloat
val' :: CFloat)

#if defined(ENABLE_OVERLOADING)
data TouchpadPinchEventAngleDeltaFieldInfo
instance AttrInfo TouchpadPinchEventAngleDeltaFieldInfo where
    type AttrBaseTypeConstraint TouchpadPinchEventAngleDeltaFieldInfo = (~) TouchpadPinchEvent
    type AttrAllowedOps TouchpadPinchEventAngleDeltaFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint TouchpadPinchEventAngleDeltaFieldInfo = (~) Float
    type AttrTransferTypeConstraint TouchpadPinchEventAngleDeltaFieldInfo = (~)Float
    type AttrTransferType TouchpadPinchEventAngleDeltaFieldInfo = Float
    type AttrGetType TouchpadPinchEventAngleDeltaFieldInfo = Float
    type AttrLabel TouchpadPinchEventAngleDeltaFieldInfo = "angle_delta"
    type AttrOrigin TouchpadPinchEventAngleDeltaFieldInfo = TouchpadPinchEvent
    attrGet = getTouchpadPinchEventAngleDelta
    attrSet = setTouchpadPinchEventAngleDelta
    attrConstruct = undefined
    attrClear = undefined
    attrTransfer _ v = do
        return v
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Clutter.Structs.TouchpadPinchEvent.angleDelta"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-clutter-1.0.2/docs/GI-Clutter-Structs-TouchpadPinchEvent.html#g:attr:angleDelta"
        })

touchpadPinchEvent_angleDelta :: AttrLabelProxy "angleDelta"
touchpadPinchEvent_angleDelta = AttrLabelProxy

#endif


-- | Get the value of the “@scale@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' touchpadPinchEvent #scale
-- @
getTouchpadPinchEventScale :: MonadIO m => TouchpadPinchEvent -> m Float
getTouchpadPinchEventScale :: forall (m :: * -> *). MonadIO m => TouchpadPinchEvent -> m Float
getTouchpadPinchEventScale TouchpadPinchEvent
s = IO Float -> m Float
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Float -> m Float) -> IO Float -> m Float
forall a b. (a -> b) -> a -> b
$ TouchpadPinchEvent
-> (Ptr TouchpadPinchEvent -> IO Float) -> IO Float
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TouchpadPinchEvent
s ((Ptr TouchpadPinchEvent -> IO Float) -> IO Float)
-> (Ptr TouchpadPinchEvent -> IO Float) -> IO Float
forall a b. (a -> b) -> a -> b
$ \Ptr TouchpadPinchEvent
ptr -> do
    CFloat
val <- Ptr CFloat -> IO CFloat
forall a. Storable a => Ptr a -> IO a
peek (Ptr TouchpadPinchEvent
ptr Ptr TouchpadPinchEvent -> Int -> Ptr CFloat
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
56) :: IO CFloat
    let val' :: Float
val' = CFloat -> Float
forall a b. (Real a, Fractional b) => a -> b
realToFrac CFloat
val
    Float -> IO Float
forall (m :: * -> *) a. Monad m => a -> m a
return Float
val'

-- | Set the value of the “@scale@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' touchpadPinchEvent [ #scale 'Data.GI.Base.Attributes.:=' value ]
-- @
setTouchpadPinchEventScale :: MonadIO m => TouchpadPinchEvent -> Float -> m ()
setTouchpadPinchEventScale :: forall (m :: * -> *).
MonadIO m =>
TouchpadPinchEvent -> Float -> m ()
setTouchpadPinchEventScale TouchpadPinchEvent
s Float
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ TouchpadPinchEvent -> (Ptr TouchpadPinchEvent -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TouchpadPinchEvent
s ((Ptr TouchpadPinchEvent -> IO ()) -> IO ())
-> (Ptr TouchpadPinchEvent -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TouchpadPinchEvent
ptr -> do
    let val' :: CFloat
val' = Float -> CFloat
forall a b. (Real a, Fractional b) => a -> b
realToFrac Float
val
    Ptr CFloat -> CFloat -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr TouchpadPinchEvent
ptr Ptr TouchpadPinchEvent -> Int -> Ptr CFloat
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
56) (CFloat
val' :: CFloat)

#if defined(ENABLE_OVERLOADING)
data TouchpadPinchEventScaleFieldInfo
instance AttrInfo TouchpadPinchEventScaleFieldInfo where
    type AttrBaseTypeConstraint TouchpadPinchEventScaleFieldInfo = (~) TouchpadPinchEvent
    type AttrAllowedOps TouchpadPinchEventScaleFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint TouchpadPinchEventScaleFieldInfo = (~) Float
    type AttrTransferTypeConstraint TouchpadPinchEventScaleFieldInfo = (~)Float
    type AttrTransferType TouchpadPinchEventScaleFieldInfo = Float
    type AttrGetType TouchpadPinchEventScaleFieldInfo = Float
    type AttrLabel TouchpadPinchEventScaleFieldInfo = "scale"
    type AttrOrigin TouchpadPinchEventScaleFieldInfo = TouchpadPinchEvent
    attrGet = getTouchpadPinchEventScale
    attrSet = setTouchpadPinchEventScale
    attrConstruct = undefined
    attrClear = undefined
    attrTransfer _ v = do
        return v
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Clutter.Structs.TouchpadPinchEvent.scale"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-clutter-1.0.2/docs/GI-Clutter-Structs-TouchpadPinchEvent.html#g:attr:scale"
        })

touchpadPinchEvent_scale :: AttrLabelProxy "scale"
touchpadPinchEvent_scale = AttrLabelProxy

#endif



#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList TouchpadPinchEvent
type instance O.AttributeList TouchpadPinchEvent = TouchpadPinchEventAttributeList
type TouchpadPinchEventAttributeList = ('[ '("type", TouchpadPinchEventTypeFieldInfo), '("time", TouchpadPinchEventTimeFieldInfo), '("flags", TouchpadPinchEventFlagsFieldInfo), '("stage", TouchpadPinchEventStageFieldInfo), '("source", TouchpadPinchEventSourceFieldInfo), '("phase", TouchpadPinchEventPhaseFieldInfo), '("x", TouchpadPinchEventXFieldInfo), '("y", TouchpadPinchEventYFieldInfo), '("dx", TouchpadPinchEventDxFieldInfo), '("dy", TouchpadPinchEventDyFieldInfo), '("angleDelta", TouchpadPinchEventAngleDeltaFieldInfo), '("scale", TouchpadPinchEventScaleFieldInfo)] :: [(Symbol, *)])
#endif

#if defined(ENABLE_OVERLOADING)
type family ResolveTouchpadPinchEventMethod (t :: Symbol) (o :: *) :: * where
    ResolveTouchpadPinchEventMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveTouchpadPinchEventMethod t TouchpadPinchEvent, O.OverloadedMethod info TouchpadPinchEvent p) => OL.IsLabel t (TouchpadPinchEvent -> p) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.overloadedMethod @info
#else
    fromLabel _ = O.overloadedMethod @info
#endif

#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveTouchpadPinchEventMethod t TouchpadPinchEvent, O.OverloadedMethod info TouchpadPinchEvent p, R.HasField t TouchpadPinchEvent p) => R.HasField t TouchpadPinchEvent p where
    getField = O.overloadedMethod @info

#endif

instance (info ~ ResolveTouchpadPinchEventMethod t TouchpadPinchEvent, O.OverloadedMethodInfo info TouchpadPinchEvent) => OL.IsLabel t (O.MethodProxy info TouchpadPinchEvent) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.MethodProxy
#else
    fromLabel _ = O.MethodProxy
#endif

#endif