gi-gdk-3.0.18: GI/Gdk/Structs/EventPadButton.hs
{- |
Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License : LGPL-2.1
Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)
Generated during 'GI.Gdk.Enums.InputSourceTabletPad' button presses and releases.
/Since: 3.22/
-}
#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.Gdk.Structs.EventPadButton
(
-- * Exported types
EventPadButton(..) ,
newZeroEventPadButton ,
noEventPadButton ,
-- * Properties
-- ** button #attr:button#
{- | The pad button that was pressed.
-}
#if ENABLE_OVERLOADING
eventPadButton_button ,
#endif
getEventPadButtonButton ,
setEventPadButtonButton ,
-- ** group #attr:group#
{- | the pad group the button belongs to. A 'GI.Gdk.Enums.InputSourceTabletPad' device
may have one or more groups containing a set of buttons\/rings\/strips each.
-}
#if ENABLE_OVERLOADING
eventPadButton_group ,
#endif
getEventPadButtonGroup ,
setEventPadButtonGroup ,
-- ** mode #attr:mode#
{- | The current mode of /@group@/. Different groups in a 'GI.Gdk.Enums.InputSourceTabletPad'
device may have different current modes.
-}
#if ENABLE_OVERLOADING
eventPadButton_mode ,
#endif
getEventPadButtonMode ,
setEventPadButtonMode ,
-- ** sendEvent #attr:sendEvent#
{- | 'True' if the event was sent explicitly.
-}
#if ENABLE_OVERLOADING
eventPadButton_sendEvent ,
#endif
getEventPadButtonSendEvent ,
setEventPadButtonSendEvent ,
-- ** time #attr:time#
{- | the time of the event in milliseconds.
-}
#if ENABLE_OVERLOADING
eventPadButton_time ,
#endif
getEventPadButtonTime ,
setEventPadButtonTime ,
-- ** type #attr:type#
{- | the type of the event ('GI.Gdk.Enums.EventTypePadButtonPress' or 'GI.Gdk.Enums.EventTypePadButtonRelease').
-}
#if ENABLE_OVERLOADING
eventPadButton_type ,
#endif
getEventPadButtonType ,
setEventPadButtonType ,
-- ** window #attr:window#
{- | the window which received the event.
-}
clearEventPadButtonWindow ,
#if ENABLE_OVERLOADING
eventPadButton_window ,
#endif
getEventPadButtonWindow ,
setEventPadButtonWindow ,
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import {-# SOURCE #-} qualified GI.Gdk.Enums as Gdk.Enums
import {-# SOURCE #-} qualified GI.Gdk.Objects.Window as Gdk.Window
-- | Memory-managed wrapper type.
newtype EventPadButton = EventPadButton (ManagedPtr EventPadButton)
instance WrappedPtr EventPadButton where
wrappedPtrCalloc = callocBytes 40
wrappedPtrCopy = \p -> withManagedPtr p (copyBytes 40 >=> wrapPtr EventPadButton)
wrappedPtrFree = Just ptr_to_g_free
-- | Construct a `EventPadButton` struct initialized to zero.
newZeroEventPadButton :: MonadIO m => m EventPadButton
newZeroEventPadButton = liftIO $ wrappedPtrCalloc >>= wrapPtr EventPadButton
instance tag ~ 'AttrSet => Constructible EventPadButton tag where
new _ attrs = do
o <- newZeroEventPadButton
GI.Attributes.set o attrs
return o
-- | A convenience alias for `Nothing` :: `Maybe` `EventPadButton`.
noEventPadButton :: Maybe EventPadButton
noEventPadButton = Nothing
{- |
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' eventPadButton #type
@
-}
getEventPadButtonType :: MonadIO m => EventPadButton -> m Gdk.Enums.EventType
getEventPadButtonType s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO CInt
let val' = (toEnum . fromIntegral) val
return 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' eventPadButton [ #type 'Data.GI.Base.Attributes.:=' value ]
@
-}
setEventPadButtonType :: MonadIO m => EventPadButton -> Gdk.Enums.EventType -> m ()
setEventPadButtonType s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = (fromIntegral . fromEnum) val
poke (ptr `plusPtr` 0) (val' :: CInt)
#if ENABLE_OVERLOADING
data EventPadButtonTypeFieldInfo
instance AttrInfo EventPadButtonTypeFieldInfo where
type AttrAllowedOps EventPadButtonTypeFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint EventPadButtonTypeFieldInfo = (~) Gdk.Enums.EventType
type AttrBaseTypeConstraint EventPadButtonTypeFieldInfo = (~) EventPadButton
type AttrGetType EventPadButtonTypeFieldInfo = Gdk.Enums.EventType
type AttrLabel EventPadButtonTypeFieldInfo = "type"
type AttrOrigin EventPadButtonTypeFieldInfo = EventPadButton
attrGet _ = getEventPadButtonType
attrSet _ = setEventPadButtonType
attrConstruct = undefined
attrClear _ = undefined
eventPadButton_type :: AttrLabelProxy "type"
eventPadButton_type = AttrLabelProxy
#endif
{- |
Get the value of the “@window@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' eventPadButton #window
@
-}
getEventPadButtonWindow :: MonadIO m => EventPadButton -> m (Maybe Gdk.Window.Window)
getEventPadButtonWindow s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 8) :: IO (Ptr Gdk.Window.Window)
result <- SP.convertIfNonNull val $ \val' -> do
val'' <- (newObject Gdk.Window.Window) val'
return val''
return result
{- |
Set the value of the “@window@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.set' eventPadButton [ #window 'Data.GI.Base.Attributes.:=' value ]
@
-}
setEventPadButtonWindow :: MonadIO m => EventPadButton -> Ptr Gdk.Window.Window -> m ()
setEventPadButtonWindow s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 8) (val :: Ptr Gdk.Window.Window)
{- |
Set the value of the “@window@” 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' #window
@
-}
clearEventPadButtonWindow :: MonadIO m => EventPadButton -> m ()
clearEventPadButtonWindow s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 8) (FP.nullPtr :: Ptr Gdk.Window.Window)
#if ENABLE_OVERLOADING
data EventPadButtonWindowFieldInfo
instance AttrInfo EventPadButtonWindowFieldInfo where
type AttrAllowedOps EventPadButtonWindowFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint EventPadButtonWindowFieldInfo = (~) (Ptr Gdk.Window.Window)
type AttrBaseTypeConstraint EventPadButtonWindowFieldInfo = (~) EventPadButton
type AttrGetType EventPadButtonWindowFieldInfo = Maybe Gdk.Window.Window
type AttrLabel EventPadButtonWindowFieldInfo = "window"
type AttrOrigin EventPadButtonWindowFieldInfo = EventPadButton
attrGet _ = getEventPadButtonWindow
attrSet _ = setEventPadButtonWindow
attrConstruct = undefined
attrClear _ = clearEventPadButtonWindow
eventPadButton_window :: AttrLabelProxy "window"
eventPadButton_window = AttrLabelProxy
#endif
{- |
Get the value of the “@send_event@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' eventPadButton #sendEvent
@
-}
getEventPadButtonSendEvent :: MonadIO m => EventPadButton -> m Int8
getEventPadButtonSendEvent s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 16) :: IO Int8
return val
{- |
Set the value of the “@send_event@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.set' eventPadButton [ #sendEvent 'Data.GI.Base.Attributes.:=' value ]
@
-}
setEventPadButtonSendEvent :: MonadIO m => EventPadButton -> Int8 -> m ()
setEventPadButtonSendEvent s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 16) (val :: Int8)
#if ENABLE_OVERLOADING
data EventPadButtonSendEventFieldInfo
instance AttrInfo EventPadButtonSendEventFieldInfo where
type AttrAllowedOps EventPadButtonSendEventFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint EventPadButtonSendEventFieldInfo = (~) Int8
type AttrBaseTypeConstraint EventPadButtonSendEventFieldInfo = (~) EventPadButton
type AttrGetType EventPadButtonSendEventFieldInfo = Int8
type AttrLabel EventPadButtonSendEventFieldInfo = "send_event"
type AttrOrigin EventPadButtonSendEventFieldInfo = EventPadButton
attrGet _ = getEventPadButtonSendEvent
attrSet _ = setEventPadButtonSendEvent
attrConstruct = undefined
attrClear _ = undefined
eventPadButton_sendEvent :: AttrLabelProxy "sendEvent"
eventPadButton_sendEvent = 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' eventPadButton #time
@
-}
getEventPadButtonTime :: MonadIO m => EventPadButton -> m Word32
getEventPadButtonTime s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 20) :: IO Word32
return 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' eventPadButton [ #time 'Data.GI.Base.Attributes.:=' value ]
@
-}
setEventPadButtonTime :: MonadIO m => EventPadButton -> Word32 -> m ()
setEventPadButtonTime s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 20) (val :: Word32)
#if ENABLE_OVERLOADING
data EventPadButtonTimeFieldInfo
instance AttrInfo EventPadButtonTimeFieldInfo where
type AttrAllowedOps EventPadButtonTimeFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint EventPadButtonTimeFieldInfo = (~) Word32
type AttrBaseTypeConstraint EventPadButtonTimeFieldInfo = (~) EventPadButton
type AttrGetType EventPadButtonTimeFieldInfo = Word32
type AttrLabel EventPadButtonTimeFieldInfo = "time"
type AttrOrigin EventPadButtonTimeFieldInfo = EventPadButton
attrGet _ = getEventPadButtonTime
attrSet _ = setEventPadButtonTime
attrConstruct = undefined
attrClear _ = undefined
eventPadButton_time :: AttrLabelProxy "time"
eventPadButton_time = AttrLabelProxy
#endif
{- |
Get the value of the “@group@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' eventPadButton #group
@
-}
getEventPadButtonGroup :: MonadIO m => EventPadButton -> m Word32
getEventPadButtonGroup s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 24) :: IO Word32
return val
{- |
Set the value of the “@group@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.set' eventPadButton [ #group 'Data.GI.Base.Attributes.:=' value ]
@
-}
setEventPadButtonGroup :: MonadIO m => EventPadButton -> Word32 -> m ()
setEventPadButtonGroup s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 24) (val :: Word32)
#if ENABLE_OVERLOADING
data EventPadButtonGroupFieldInfo
instance AttrInfo EventPadButtonGroupFieldInfo where
type AttrAllowedOps EventPadButtonGroupFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint EventPadButtonGroupFieldInfo = (~) Word32
type AttrBaseTypeConstraint EventPadButtonGroupFieldInfo = (~) EventPadButton
type AttrGetType EventPadButtonGroupFieldInfo = Word32
type AttrLabel EventPadButtonGroupFieldInfo = "group"
type AttrOrigin EventPadButtonGroupFieldInfo = EventPadButton
attrGet _ = getEventPadButtonGroup
attrSet _ = setEventPadButtonGroup
attrConstruct = undefined
attrClear _ = undefined
eventPadButton_group :: AttrLabelProxy "group"
eventPadButton_group = AttrLabelProxy
#endif
{- |
Get the value of the “@button@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' eventPadButton #button
@
-}
getEventPadButtonButton :: MonadIO m => EventPadButton -> m Word32
getEventPadButtonButton s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 28) :: IO Word32
return val
{- |
Set the value of the “@button@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.set' eventPadButton [ #button 'Data.GI.Base.Attributes.:=' value ]
@
-}
setEventPadButtonButton :: MonadIO m => EventPadButton -> Word32 -> m ()
setEventPadButtonButton s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 28) (val :: Word32)
#if ENABLE_OVERLOADING
data EventPadButtonButtonFieldInfo
instance AttrInfo EventPadButtonButtonFieldInfo where
type AttrAllowedOps EventPadButtonButtonFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint EventPadButtonButtonFieldInfo = (~) Word32
type AttrBaseTypeConstraint EventPadButtonButtonFieldInfo = (~) EventPadButton
type AttrGetType EventPadButtonButtonFieldInfo = Word32
type AttrLabel EventPadButtonButtonFieldInfo = "button"
type AttrOrigin EventPadButtonButtonFieldInfo = EventPadButton
attrGet _ = getEventPadButtonButton
attrSet _ = setEventPadButtonButton
attrConstruct = undefined
attrClear _ = undefined
eventPadButton_button :: AttrLabelProxy "button"
eventPadButton_button = AttrLabelProxy
#endif
{- |
Get the value of the “@mode@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' eventPadButton #mode
@
-}
getEventPadButtonMode :: MonadIO m => EventPadButton -> m Word32
getEventPadButtonMode s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 32) :: IO Word32
return val
{- |
Set the value of the “@mode@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.set' eventPadButton [ #mode 'Data.GI.Base.Attributes.:=' value ]
@
-}
setEventPadButtonMode :: MonadIO m => EventPadButton -> Word32 -> m ()
setEventPadButtonMode s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 32) (val :: Word32)
#if ENABLE_OVERLOADING
data EventPadButtonModeFieldInfo
instance AttrInfo EventPadButtonModeFieldInfo where
type AttrAllowedOps EventPadButtonModeFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint EventPadButtonModeFieldInfo = (~) Word32
type AttrBaseTypeConstraint EventPadButtonModeFieldInfo = (~) EventPadButton
type AttrGetType EventPadButtonModeFieldInfo = Word32
type AttrLabel EventPadButtonModeFieldInfo = "mode"
type AttrOrigin EventPadButtonModeFieldInfo = EventPadButton
attrGet _ = getEventPadButtonMode
attrSet _ = setEventPadButtonMode
attrConstruct = undefined
attrClear _ = undefined
eventPadButton_mode :: AttrLabelProxy "mode"
eventPadButton_mode = AttrLabelProxy
#endif
#if ENABLE_OVERLOADING
instance O.HasAttributeList EventPadButton
type instance O.AttributeList EventPadButton = EventPadButtonAttributeList
type EventPadButtonAttributeList = ('[ '("type", EventPadButtonTypeFieldInfo), '("window", EventPadButtonWindowFieldInfo), '("sendEvent", EventPadButtonSendEventFieldInfo), '("time", EventPadButtonTimeFieldInfo), '("group", EventPadButtonGroupFieldInfo), '("button", EventPadButtonButtonFieldInfo), '("mode", EventPadButtonModeFieldInfo)] :: [(Symbol, *)])
#endif
#if ENABLE_OVERLOADING
type family ResolveEventPadButtonMethod (t :: Symbol) (o :: *) :: * where
ResolveEventPadButtonMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveEventPadButtonMethod t EventPadButton, O.MethodInfo info EventPadButton p) => OL.IsLabel t (EventPadButton -> 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