gi-gdk-3.0.18: GI/Gdk/Unions/Event.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)
A 'GI.Gdk.Unions.Event.Event' contains a union of all of the event types,
and allows access to the data fields in a number of ways.
The event type is always the first field in all of the event types, and
can always be accessed with the following code, no matter what type of
event it is:
=== /C code/
>
> GdkEvent *event;
> GdkEventType type;
>
> type = event->type;
To access other fields of the event, the pointer to the event
can be cast to the appropriate event type, or the union member
name can be used. For example if the event type is 'GI.Gdk.Enums.EventTypeButtonPress'
then the x coordinate of the button press can be accessed with:
=== /C code/
>
> GdkEvent *event;
> gdouble x;
>
> x = ((GdkEventButton*)event)->x;
or:
=== /C code/
>
> GdkEvent *event;
> gdouble x;
>
> x = event->button.x;
-}
#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.Gdk.Unions.Event
(
-- * Exported types
Event(..) ,
newZeroEvent ,
noEvent ,
-- * Methods
-- ** copy #method:copy#
#if ENABLE_OVERLOADING
EventCopyMethodInfo ,
#endif
eventCopy ,
-- ** free #method:free#
#if ENABLE_OVERLOADING
EventFreeMethodInfo ,
#endif
eventFree ,
-- ** get #method:get#
eventGet ,
-- ** getAxis #method:getAxis#
#if ENABLE_OVERLOADING
EventGetAxisMethodInfo ,
#endif
eventGetAxis ,
-- ** getButton #method:getButton#
#if ENABLE_OVERLOADING
EventGetButtonMethodInfo ,
#endif
eventGetButton ,
-- ** getClickCount #method:getClickCount#
#if ENABLE_OVERLOADING
EventGetClickCountMethodInfo ,
#endif
eventGetClickCount ,
-- ** getCoords #method:getCoords#
#if ENABLE_OVERLOADING
EventGetCoordsMethodInfo ,
#endif
eventGetCoords ,
-- ** getDevice #method:getDevice#
#if ENABLE_OVERLOADING
EventGetDeviceMethodInfo ,
#endif
eventGetDevice ,
-- ** getDeviceTool #method:getDeviceTool#
#if ENABLE_OVERLOADING
EventGetDeviceToolMethodInfo ,
#endif
eventGetDeviceTool ,
-- ** getEventSequence #method:getEventSequence#
#if ENABLE_OVERLOADING
EventGetEventSequenceMethodInfo ,
#endif
eventGetEventSequence ,
-- ** getEventType #method:getEventType#
#if ENABLE_OVERLOADING
EventGetEventTypeMethodInfo ,
#endif
eventGetEventType ,
-- ** getKeycode #method:getKeycode#
#if ENABLE_OVERLOADING
EventGetKeycodeMethodInfo ,
#endif
eventGetKeycode ,
-- ** getKeyval #method:getKeyval#
#if ENABLE_OVERLOADING
EventGetKeyvalMethodInfo ,
#endif
eventGetKeyval ,
-- ** getPointerEmulated #method:getPointerEmulated#
#if ENABLE_OVERLOADING
EventGetPointerEmulatedMethodInfo ,
#endif
eventGetPointerEmulated ,
-- ** getRootCoords #method:getRootCoords#
#if ENABLE_OVERLOADING
EventGetRootCoordsMethodInfo ,
#endif
eventGetRootCoords ,
-- ** getScancode #method:getScancode#
#if ENABLE_OVERLOADING
EventGetScancodeMethodInfo ,
#endif
eventGetScancode ,
-- ** getScreen #method:getScreen#
#if ENABLE_OVERLOADING
EventGetScreenMethodInfo ,
#endif
eventGetScreen ,
-- ** getScrollDeltas #method:getScrollDeltas#
#if ENABLE_OVERLOADING
EventGetScrollDeltasMethodInfo ,
#endif
eventGetScrollDeltas ,
-- ** getScrollDirection #method:getScrollDirection#
#if ENABLE_OVERLOADING
EventGetScrollDirectionMethodInfo ,
#endif
eventGetScrollDirection ,
-- ** getSeat #method:getSeat#
#if ENABLE_OVERLOADING
EventGetSeatMethodInfo ,
#endif
eventGetSeat ,
-- ** getSourceDevice #method:getSourceDevice#
#if ENABLE_OVERLOADING
EventGetSourceDeviceMethodInfo ,
#endif
eventGetSourceDevice ,
-- ** getState #method:getState#
#if ENABLE_OVERLOADING
EventGetStateMethodInfo ,
#endif
eventGetState ,
-- ** getTime #method:getTime#
#if ENABLE_OVERLOADING
EventGetTimeMethodInfo ,
#endif
eventGetTime ,
-- ** getWindow #method:getWindow#
#if ENABLE_OVERLOADING
EventGetWindowMethodInfo ,
#endif
eventGetWindow ,
-- ** handlerSet #method:handlerSet#
eventHandlerSet ,
-- ** isScrollStopEvent #method:isScrollStopEvent#
#if ENABLE_OVERLOADING
EventIsScrollStopEventMethodInfo ,
#endif
eventIsScrollStopEvent ,
-- ** new #method:new#
eventNew ,
-- ** peek #method:peek#
eventPeek ,
-- ** put #method:put#
#if ENABLE_OVERLOADING
EventPutMethodInfo ,
#endif
eventPut ,
-- ** requestMotions #method:requestMotions#
eventRequestMotions ,
-- ** setDevice #method:setDevice#
#if ENABLE_OVERLOADING
EventSetDeviceMethodInfo ,
#endif
eventSetDevice ,
-- ** setDeviceTool #method:setDeviceTool#
#if ENABLE_OVERLOADING
EventSetDeviceToolMethodInfo ,
#endif
eventSetDeviceTool ,
-- ** setScreen #method:setScreen#
#if ENABLE_OVERLOADING
EventSetScreenMethodInfo ,
#endif
eventSetScreen ,
-- ** setSourceDevice #method:setSourceDevice#
#if ENABLE_OVERLOADING
EventSetSourceDeviceMethodInfo ,
#endif
eventSetSourceDevice ,
-- ** triggersContextMenu #method:triggersContextMenu#
#if ENABLE_OVERLOADING
EventTriggersContextMenuMethodInfo ,
#endif
eventTriggersContextMenu ,
-- * Properties
-- ** any #attr:any#
{- | a 'GI.Gdk.Structs.EventAny.EventAny'
-}
#if ENABLE_OVERLOADING
event_any ,
#endif
getEventAny ,
-- ** button #attr:button#
{- | a 'GI.Gdk.Structs.EventButton.EventButton'
-}
#if ENABLE_OVERLOADING
event_button ,
#endif
getEventButton ,
-- ** configure #attr:configure#
{- | a 'GI.Gdk.Structs.EventConfigure.EventConfigure'
-}
#if ENABLE_OVERLOADING
event_configure ,
#endif
getEventConfigure ,
-- ** crossing #attr:crossing#
{- | a 'GI.Gdk.Structs.EventCrossing.EventCrossing'
-}
#if ENABLE_OVERLOADING
event_crossing ,
#endif
getEventCrossing ,
-- ** dnd #attr:dnd#
{- | a 'GI.Gdk.Structs.EventDND.EventDND'
-}
#if ENABLE_OVERLOADING
event_dnd ,
#endif
getEventDnd ,
-- ** expose #attr:expose#
{- | a 'GI.Gdk.Structs.EventExpose.EventExpose'
-}
#if ENABLE_OVERLOADING
event_expose ,
#endif
getEventExpose ,
-- ** focusChange #attr:focusChange#
{- | a 'GI.Gdk.Structs.EventFocus.EventFocus'
-}
#if ENABLE_OVERLOADING
event_focusChange ,
#endif
getEventFocusChange ,
-- ** grabBroken #attr:grabBroken#
{- | a 'GI.Gdk.Structs.EventGrabBroken.EventGrabBroken'
-}
#if ENABLE_OVERLOADING
event_grabBroken ,
#endif
getEventGrabBroken ,
-- ** key #attr:key#
{- | a 'GI.Gdk.Structs.EventKey.EventKey'
-}
#if ENABLE_OVERLOADING
event_key ,
#endif
getEventKey ,
-- ** motion #attr:motion#
{- | a 'GI.Gdk.Structs.EventMotion.EventMotion'
-}
#if ENABLE_OVERLOADING
event_motion ,
#endif
getEventMotion ,
-- ** ownerChange #attr:ownerChange#
{- | a 'GI.Gdk.Structs.EventOwnerChange.EventOwnerChange'
-}
#if ENABLE_OVERLOADING
event_ownerChange ,
#endif
getEventOwnerChange ,
-- ** padAxis #attr:padAxis#
{- | a 'GI.Gdk.Structs.EventPadAxis.EventPadAxis'
-}
#if ENABLE_OVERLOADING
event_padAxis ,
#endif
getEventPadAxis ,
-- ** padButton #attr:padButton#
{- | a 'GI.Gdk.Structs.EventPadButton.EventPadButton'
-}
#if ENABLE_OVERLOADING
event_padButton ,
#endif
getEventPadButton ,
-- ** padGroupMode #attr:padGroupMode#
{- | a 'GI.Gdk.Structs.EventPadGroupMode.EventPadGroupMode'
-}
#if ENABLE_OVERLOADING
event_padGroupMode ,
#endif
getEventPadGroupMode ,
-- ** property #attr:property#
{- | a 'GI.Gdk.Structs.EventProperty.EventProperty'
-}
#if ENABLE_OVERLOADING
event_property ,
#endif
getEventProperty ,
-- ** proximity #attr:proximity#
{- | a 'GI.Gdk.Structs.EventProximity.EventProximity'
-}
#if ENABLE_OVERLOADING
event_proximity ,
#endif
getEventProximity ,
-- ** scroll #attr:scroll#
{- | a 'GI.Gdk.Structs.EventScroll.EventScroll'
-}
#if ENABLE_OVERLOADING
event_scroll ,
#endif
getEventScroll ,
-- ** selection #attr:selection#
{- | a 'GI.Gdk.Structs.EventSelection.EventSelection'
-}
#if ENABLE_OVERLOADING
event_selection ,
#endif
getEventSelection ,
-- ** setting #attr:setting#
{- | a 'GI.Gdk.Structs.EventSetting.EventSetting'
-}
#if ENABLE_OVERLOADING
event_setting ,
#endif
getEventSetting ,
-- ** touch #attr:touch#
{- | a 'GI.Gdk.Structs.EventTouch.EventTouch'
-}
#if ENABLE_OVERLOADING
event_touch ,
#endif
getEventTouch ,
-- ** touchpadPinch #attr:touchpadPinch#
{- | a 'GI.Gdk.Structs.EventTouchpadPinch.EventTouchpadPinch'
-}
#if ENABLE_OVERLOADING
event_touchpadPinch ,
#endif
getEventTouchpadPinch ,
-- ** touchpadSwipe #attr:touchpadSwipe#
{- | a 'GI.Gdk.Structs.EventTouchpadSwipe.EventTouchpadSwipe'
-}
#if ENABLE_OVERLOADING
event_touchpadSwipe ,
#endif
getEventTouchpadSwipe ,
-- ** type #attr:type#
{- | the 'GI.Gdk.Enums.EventType'
-}
#if ENABLE_OVERLOADING
event_type ,
#endif
getEventType ,
setEventType ,
-- ** visibility #attr:visibility#
{- | a 'GI.Gdk.Structs.EventVisibility.EventVisibility'
-}
#if ENABLE_OVERLOADING
event_visibility ,
#endif
getEventVisibility ,
-- ** windowState #attr:windowState#
{- | a 'GI.Gdk.Structs.EventWindowState.EventWindowState'
-}
#if ENABLE_OVERLOADING
event_windowState ,
#endif
getEventWindowState ,
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GI.GLib.Callbacks as GLib.Callbacks
import qualified GI.Gdk.Callbacks as Gdk.Callbacks
import {-# SOURCE #-} qualified GI.Gdk.Enums as Gdk.Enums
import {-# SOURCE #-} qualified GI.Gdk.Flags as Gdk.Flags
import {-# SOURCE #-} qualified GI.Gdk.Objects.Device as Gdk.Device
import {-# SOURCE #-} qualified GI.Gdk.Objects.DeviceTool as Gdk.DeviceTool
import {-# SOURCE #-} qualified GI.Gdk.Objects.Screen as Gdk.Screen
import {-# SOURCE #-} qualified GI.Gdk.Objects.Seat as Gdk.Seat
import {-# SOURCE #-} qualified GI.Gdk.Objects.Window as Gdk.Window
import {-# SOURCE #-} qualified GI.Gdk.Structs.EventAny as Gdk.EventAny
import {-# SOURCE #-} qualified GI.Gdk.Structs.EventButton as Gdk.EventButton
import {-# SOURCE #-} qualified GI.Gdk.Structs.EventConfigure as Gdk.EventConfigure
import {-# SOURCE #-} qualified GI.Gdk.Structs.EventCrossing as Gdk.EventCrossing
import {-# SOURCE #-} qualified GI.Gdk.Structs.EventDND as Gdk.EventDND
import {-# SOURCE #-} qualified GI.Gdk.Structs.EventExpose as Gdk.EventExpose
import {-# SOURCE #-} qualified GI.Gdk.Structs.EventFocus as Gdk.EventFocus
import {-# SOURCE #-} qualified GI.Gdk.Structs.EventGrabBroken as Gdk.EventGrabBroken
import {-# SOURCE #-} qualified GI.Gdk.Structs.EventKey as Gdk.EventKey
import {-# SOURCE #-} qualified GI.Gdk.Structs.EventMotion as Gdk.EventMotion
import {-# SOURCE #-} qualified GI.Gdk.Structs.EventOwnerChange as Gdk.EventOwnerChange
import {-# SOURCE #-} qualified GI.Gdk.Structs.EventPadAxis as Gdk.EventPadAxis
import {-# SOURCE #-} qualified GI.Gdk.Structs.EventPadButton as Gdk.EventPadButton
import {-# SOURCE #-} qualified GI.Gdk.Structs.EventPadGroupMode as Gdk.EventPadGroupMode
import {-# SOURCE #-} qualified GI.Gdk.Structs.EventProperty as Gdk.EventProperty
import {-# SOURCE #-} qualified GI.Gdk.Structs.EventProximity as Gdk.EventProximity
import {-# SOURCE #-} qualified GI.Gdk.Structs.EventScroll as Gdk.EventScroll
import {-# SOURCE #-} qualified GI.Gdk.Structs.EventSelection as Gdk.EventSelection
import {-# SOURCE #-} qualified GI.Gdk.Structs.EventSequence as Gdk.EventSequence
import {-# SOURCE #-} qualified GI.Gdk.Structs.EventSetting as Gdk.EventSetting
import {-# SOURCE #-} qualified GI.Gdk.Structs.EventTouch as Gdk.EventTouch
import {-# SOURCE #-} qualified GI.Gdk.Structs.EventTouchpadPinch as Gdk.EventTouchpadPinch
import {-# SOURCE #-} qualified GI.Gdk.Structs.EventTouchpadSwipe as Gdk.EventTouchpadSwipe
import {-# SOURCE #-} qualified GI.Gdk.Structs.EventVisibility as Gdk.EventVisibility
import {-# SOURCE #-} qualified GI.Gdk.Structs.EventWindowState as Gdk.EventWindowState
-- | Memory-managed wrapper type.
newtype Event = Event (ManagedPtr Event)
foreign import ccall "gdk_event_get_type" c_gdk_event_get_type ::
IO GType
instance BoxedObject Event where
boxedType _ = c_gdk_event_get_type
-- | Construct a `Event` struct initialized to zero.
newZeroEvent :: MonadIO m => m Event
newZeroEvent = liftIO $ callocBoxedBytes 96 >>= wrapBoxed Event
instance tag ~ 'AttrSet => Constructible Event tag where
new _ attrs = do
o <- newZeroEvent
GI.Attributes.set o attrs
return o
-- | A convenience alias for `Nothing` :: `Maybe` `Event`.
noEvent :: Maybe Event
noEvent = 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' event #type
@
-}
getEventType :: MonadIO m => Event -> m Gdk.Enums.EventType
getEventType 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' event [ #type 'Data.GI.Base.Attributes.:=' value ]
@
-}
setEventType :: MonadIO m => Event -> Gdk.Enums.EventType -> m ()
setEventType s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = (fromIntegral . fromEnum) val
poke (ptr `plusPtr` 0) (val' :: CInt)
#if ENABLE_OVERLOADING
data EventTypeFieldInfo
instance AttrInfo EventTypeFieldInfo where
type AttrAllowedOps EventTypeFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint EventTypeFieldInfo = (~) Gdk.Enums.EventType
type AttrBaseTypeConstraint EventTypeFieldInfo = (~) Event
type AttrGetType EventTypeFieldInfo = Gdk.Enums.EventType
type AttrLabel EventTypeFieldInfo = "type"
type AttrOrigin EventTypeFieldInfo = Event
attrGet _ = getEventType
attrSet _ = setEventType
attrConstruct = undefined
attrClear _ = undefined
event_type :: AttrLabelProxy "type"
event_type = AttrLabelProxy
#endif
{- |
Get the value of the “@any@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' event #any
@
-}
getEventAny :: MonadIO m => Event -> m Gdk.EventAny.EventAny
getEventAny s = liftIO $ withManagedPtr s $ \ptr -> do
let val = ptr `plusPtr` 0 :: (Ptr Gdk.EventAny.EventAny)
val' <- (newPtr Gdk.EventAny.EventAny) val
return val'
#if ENABLE_OVERLOADING
data EventAnyFieldInfo
instance AttrInfo EventAnyFieldInfo where
type AttrAllowedOps EventAnyFieldInfo = '[ 'AttrGet]
type AttrSetTypeConstraint EventAnyFieldInfo = (~) (Ptr Gdk.EventAny.EventAny)
type AttrBaseTypeConstraint EventAnyFieldInfo = (~) Event
type AttrGetType EventAnyFieldInfo = Gdk.EventAny.EventAny
type AttrLabel EventAnyFieldInfo = "any"
type AttrOrigin EventAnyFieldInfo = Event
attrGet _ = getEventAny
attrSet _ = undefined
attrConstruct = undefined
attrClear _ = undefined
event_any :: AttrLabelProxy "any"
event_any = AttrLabelProxy
#endif
{- |
Get the value of the “@expose@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' event #expose
@
-}
getEventExpose :: MonadIO m => Event -> m Gdk.EventExpose.EventExpose
getEventExpose s = liftIO $ withManagedPtr s $ \ptr -> do
let val = ptr `plusPtr` 0 :: (Ptr Gdk.EventExpose.EventExpose)
val' <- (newPtr Gdk.EventExpose.EventExpose) val
return val'
#if ENABLE_OVERLOADING
data EventExposeFieldInfo
instance AttrInfo EventExposeFieldInfo where
type AttrAllowedOps EventExposeFieldInfo = '[ 'AttrGet]
type AttrSetTypeConstraint EventExposeFieldInfo = (~) (Ptr Gdk.EventExpose.EventExpose)
type AttrBaseTypeConstraint EventExposeFieldInfo = (~) Event
type AttrGetType EventExposeFieldInfo = Gdk.EventExpose.EventExpose
type AttrLabel EventExposeFieldInfo = "expose"
type AttrOrigin EventExposeFieldInfo = Event
attrGet _ = getEventExpose
attrSet _ = undefined
attrConstruct = undefined
attrClear _ = undefined
event_expose :: AttrLabelProxy "expose"
event_expose = AttrLabelProxy
#endif
{- |
Get the value of the “@visibility@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' event #visibility
@
-}
getEventVisibility :: MonadIO m => Event -> m Gdk.EventVisibility.EventVisibility
getEventVisibility s = liftIO $ withManagedPtr s $ \ptr -> do
let val = ptr `plusPtr` 0 :: (Ptr Gdk.EventVisibility.EventVisibility)
val' <- (newPtr Gdk.EventVisibility.EventVisibility) val
return val'
#if ENABLE_OVERLOADING
data EventVisibilityFieldInfo
instance AttrInfo EventVisibilityFieldInfo where
type AttrAllowedOps EventVisibilityFieldInfo = '[ 'AttrGet]
type AttrSetTypeConstraint EventVisibilityFieldInfo = (~) (Ptr Gdk.EventVisibility.EventVisibility)
type AttrBaseTypeConstraint EventVisibilityFieldInfo = (~) Event
type AttrGetType EventVisibilityFieldInfo = Gdk.EventVisibility.EventVisibility
type AttrLabel EventVisibilityFieldInfo = "visibility"
type AttrOrigin EventVisibilityFieldInfo = Event
attrGet _ = getEventVisibility
attrSet _ = undefined
attrConstruct = undefined
attrClear _ = undefined
event_visibility :: AttrLabelProxy "visibility"
event_visibility = AttrLabelProxy
#endif
{- |
Get the value of the “@motion@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' event #motion
@
-}
getEventMotion :: MonadIO m => Event -> m Gdk.EventMotion.EventMotion
getEventMotion s = liftIO $ withManagedPtr s $ \ptr -> do
let val = ptr `plusPtr` 0 :: (Ptr Gdk.EventMotion.EventMotion)
val' <- (newPtr Gdk.EventMotion.EventMotion) val
return val'
#if ENABLE_OVERLOADING
data EventMotionFieldInfo
instance AttrInfo EventMotionFieldInfo where
type AttrAllowedOps EventMotionFieldInfo = '[ 'AttrGet]
type AttrSetTypeConstraint EventMotionFieldInfo = (~) (Ptr Gdk.EventMotion.EventMotion)
type AttrBaseTypeConstraint EventMotionFieldInfo = (~) Event
type AttrGetType EventMotionFieldInfo = Gdk.EventMotion.EventMotion
type AttrLabel EventMotionFieldInfo = "motion"
type AttrOrigin EventMotionFieldInfo = Event
attrGet _ = getEventMotion
attrSet _ = undefined
attrConstruct = undefined
attrClear _ = undefined
event_motion :: AttrLabelProxy "motion"
event_motion = 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' event #button
@
-}
getEventButton :: MonadIO m => Event -> m Gdk.EventButton.EventButton
getEventButton s = liftIO $ withManagedPtr s $ \ptr -> do
let val = ptr `plusPtr` 0 :: (Ptr Gdk.EventButton.EventButton)
val' <- (newPtr Gdk.EventButton.EventButton) val
return val'
#if ENABLE_OVERLOADING
data EventButtonFieldInfo
instance AttrInfo EventButtonFieldInfo where
type AttrAllowedOps EventButtonFieldInfo = '[ 'AttrGet]
type AttrSetTypeConstraint EventButtonFieldInfo = (~) (Ptr Gdk.EventButton.EventButton)
type AttrBaseTypeConstraint EventButtonFieldInfo = (~) Event
type AttrGetType EventButtonFieldInfo = Gdk.EventButton.EventButton
type AttrLabel EventButtonFieldInfo = "button"
type AttrOrigin EventButtonFieldInfo = Event
attrGet _ = getEventButton
attrSet _ = undefined
attrConstruct = undefined
attrClear _ = undefined
event_button :: AttrLabelProxy "button"
event_button = AttrLabelProxy
#endif
{- |
Get the value of the “@touch@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' event #touch
@
-}
getEventTouch :: MonadIO m => Event -> m Gdk.EventTouch.EventTouch
getEventTouch s = liftIO $ withManagedPtr s $ \ptr -> do
let val = ptr `plusPtr` 0 :: (Ptr Gdk.EventTouch.EventTouch)
val' <- (newPtr Gdk.EventTouch.EventTouch) val
return val'
#if ENABLE_OVERLOADING
data EventTouchFieldInfo
instance AttrInfo EventTouchFieldInfo where
type AttrAllowedOps EventTouchFieldInfo = '[ 'AttrGet]
type AttrSetTypeConstraint EventTouchFieldInfo = (~) (Ptr Gdk.EventTouch.EventTouch)
type AttrBaseTypeConstraint EventTouchFieldInfo = (~) Event
type AttrGetType EventTouchFieldInfo = Gdk.EventTouch.EventTouch
type AttrLabel EventTouchFieldInfo = "touch"
type AttrOrigin EventTouchFieldInfo = Event
attrGet _ = getEventTouch
attrSet _ = undefined
attrConstruct = undefined
attrClear _ = undefined
event_touch :: AttrLabelProxy "touch"
event_touch = AttrLabelProxy
#endif
{- |
Get the value of the “@scroll@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' event #scroll
@
-}
getEventScroll :: MonadIO m => Event -> m Gdk.EventScroll.EventScroll
getEventScroll s = liftIO $ withManagedPtr s $ \ptr -> do
let val = ptr `plusPtr` 0 :: (Ptr Gdk.EventScroll.EventScroll)
val' <- (newPtr Gdk.EventScroll.EventScroll) val
return val'
#if ENABLE_OVERLOADING
data EventScrollFieldInfo
instance AttrInfo EventScrollFieldInfo where
type AttrAllowedOps EventScrollFieldInfo = '[ 'AttrGet]
type AttrSetTypeConstraint EventScrollFieldInfo = (~) (Ptr Gdk.EventScroll.EventScroll)
type AttrBaseTypeConstraint EventScrollFieldInfo = (~) Event
type AttrGetType EventScrollFieldInfo = Gdk.EventScroll.EventScroll
type AttrLabel EventScrollFieldInfo = "scroll"
type AttrOrigin EventScrollFieldInfo = Event
attrGet _ = getEventScroll
attrSet _ = undefined
attrConstruct = undefined
attrClear _ = undefined
event_scroll :: AttrLabelProxy "scroll"
event_scroll = AttrLabelProxy
#endif
{- |
Get the value of the “@key@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' event #key
@
-}
getEventKey :: MonadIO m => Event -> m Gdk.EventKey.EventKey
getEventKey s = liftIO $ withManagedPtr s $ \ptr -> do
let val = ptr `plusPtr` 0 :: (Ptr Gdk.EventKey.EventKey)
val' <- (newPtr Gdk.EventKey.EventKey) val
return val'
#if ENABLE_OVERLOADING
data EventKeyFieldInfo
instance AttrInfo EventKeyFieldInfo where
type AttrAllowedOps EventKeyFieldInfo = '[ 'AttrGet]
type AttrSetTypeConstraint EventKeyFieldInfo = (~) (Ptr Gdk.EventKey.EventKey)
type AttrBaseTypeConstraint EventKeyFieldInfo = (~) Event
type AttrGetType EventKeyFieldInfo = Gdk.EventKey.EventKey
type AttrLabel EventKeyFieldInfo = "key"
type AttrOrigin EventKeyFieldInfo = Event
attrGet _ = getEventKey
attrSet _ = undefined
attrConstruct = undefined
attrClear _ = undefined
event_key :: AttrLabelProxy "key"
event_key = AttrLabelProxy
#endif
{- |
Get the value of the “@crossing@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' event #crossing
@
-}
getEventCrossing :: MonadIO m => Event -> m Gdk.EventCrossing.EventCrossing
getEventCrossing s = liftIO $ withManagedPtr s $ \ptr -> do
let val = ptr `plusPtr` 0 :: (Ptr Gdk.EventCrossing.EventCrossing)
val' <- (newPtr Gdk.EventCrossing.EventCrossing) val
return val'
#if ENABLE_OVERLOADING
data EventCrossingFieldInfo
instance AttrInfo EventCrossingFieldInfo where
type AttrAllowedOps EventCrossingFieldInfo = '[ 'AttrGet]
type AttrSetTypeConstraint EventCrossingFieldInfo = (~) (Ptr Gdk.EventCrossing.EventCrossing)
type AttrBaseTypeConstraint EventCrossingFieldInfo = (~) Event
type AttrGetType EventCrossingFieldInfo = Gdk.EventCrossing.EventCrossing
type AttrLabel EventCrossingFieldInfo = "crossing"
type AttrOrigin EventCrossingFieldInfo = Event
attrGet _ = getEventCrossing
attrSet _ = undefined
attrConstruct = undefined
attrClear _ = undefined
event_crossing :: AttrLabelProxy "crossing"
event_crossing = AttrLabelProxy
#endif
{- |
Get the value of the “@focus_change@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' event #focusChange
@
-}
getEventFocusChange :: MonadIO m => Event -> m Gdk.EventFocus.EventFocus
getEventFocusChange s = liftIO $ withManagedPtr s $ \ptr -> do
let val = ptr `plusPtr` 0 :: (Ptr Gdk.EventFocus.EventFocus)
val' <- (newPtr Gdk.EventFocus.EventFocus) val
return val'
#if ENABLE_OVERLOADING
data EventFocusChangeFieldInfo
instance AttrInfo EventFocusChangeFieldInfo where
type AttrAllowedOps EventFocusChangeFieldInfo = '[ 'AttrGet]
type AttrSetTypeConstraint EventFocusChangeFieldInfo = (~) (Ptr Gdk.EventFocus.EventFocus)
type AttrBaseTypeConstraint EventFocusChangeFieldInfo = (~) Event
type AttrGetType EventFocusChangeFieldInfo = Gdk.EventFocus.EventFocus
type AttrLabel EventFocusChangeFieldInfo = "focus_change"
type AttrOrigin EventFocusChangeFieldInfo = Event
attrGet _ = getEventFocusChange
attrSet _ = undefined
attrConstruct = undefined
attrClear _ = undefined
event_focusChange :: AttrLabelProxy "focusChange"
event_focusChange = AttrLabelProxy
#endif
{- |
Get the value of the “@configure@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' event #configure
@
-}
getEventConfigure :: MonadIO m => Event -> m Gdk.EventConfigure.EventConfigure
getEventConfigure s = liftIO $ withManagedPtr s $ \ptr -> do
let val = ptr `plusPtr` 0 :: (Ptr Gdk.EventConfigure.EventConfigure)
val' <- (newPtr Gdk.EventConfigure.EventConfigure) val
return val'
#if ENABLE_OVERLOADING
data EventConfigureFieldInfo
instance AttrInfo EventConfigureFieldInfo where
type AttrAllowedOps EventConfigureFieldInfo = '[ 'AttrGet]
type AttrSetTypeConstraint EventConfigureFieldInfo = (~) (Ptr Gdk.EventConfigure.EventConfigure)
type AttrBaseTypeConstraint EventConfigureFieldInfo = (~) Event
type AttrGetType EventConfigureFieldInfo = Gdk.EventConfigure.EventConfigure
type AttrLabel EventConfigureFieldInfo = "configure"
type AttrOrigin EventConfigureFieldInfo = Event
attrGet _ = getEventConfigure
attrSet _ = undefined
attrConstruct = undefined
attrClear _ = undefined
event_configure :: AttrLabelProxy "configure"
event_configure = AttrLabelProxy
#endif
{- |
Get the value of the “@property@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' event #property
@
-}
getEventProperty :: MonadIO m => Event -> m Gdk.EventProperty.EventProperty
getEventProperty s = liftIO $ withManagedPtr s $ \ptr -> do
let val = ptr `plusPtr` 0 :: (Ptr Gdk.EventProperty.EventProperty)
val' <- (newPtr Gdk.EventProperty.EventProperty) val
return val'
#if ENABLE_OVERLOADING
data EventPropertyFieldInfo
instance AttrInfo EventPropertyFieldInfo where
type AttrAllowedOps EventPropertyFieldInfo = '[ 'AttrGet]
type AttrSetTypeConstraint EventPropertyFieldInfo = (~) (Ptr Gdk.EventProperty.EventProperty)
type AttrBaseTypeConstraint EventPropertyFieldInfo = (~) Event
type AttrGetType EventPropertyFieldInfo = Gdk.EventProperty.EventProperty
type AttrLabel EventPropertyFieldInfo = "property"
type AttrOrigin EventPropertyFieldInfo = Event
attrGet _ = getEventProperty
attrSet _ = undefined
attrConstruct = undefined
attrClear _ = undefined
event_property :: AttrLabelProxy "property"
event_property = AttrLabelProxy
#endif
{- |
Get the value of the “@selection@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' event #selection
@
-}
getEventSelection :: MonadIO m => Event -> m Gdk.EventSelection.EventSelection
getEventSelection s = liftIO $ withManagedPtr s $ \ptr -> do
let val = ptr `plusPtr` 0 :: (Ptr Gdk.EventSelection.EventSelection)
val' <- (newPtr Gdk.EventSelection.EventSelection) val
return val'
#if ENABLE_OVERLOADING
data EventSelectionFieldInfo
instance AttrInfo EventSelectionFieldInfo where
type AttrAllowedOps EventSelectionFieldInfo = '[ 'AttrGet]
type AttrSetTypeConstraint EventSelectionFieldInfo = (~) (Ptr Gdk.EventSelection.EventSelection)
type AttrBaseTypeConstraint EventSelectionFieldInfo = (~) Event
type AttrGetType EventSelectionFieldInfo = Gdk.EventSelection.EventSelection
type AttrLabel EventSelectionFieldInfo = "selection"
type AttrOrigin EventSelectionFieldInfo = Event
attrGet _ = getEventSelection
attrSet _ = undefined
attrConstruct = undefined
attrClear _ = undefined
event_selection :: AttrLabelProxy "selection"
event_selection = AttrLabelProxy
#endif
{- |
Get the value of the “@owner_change@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' event #ownerChange
@
-}
getEventOwnerChange :: MonadIO m => Event -> m Gdk.EventOwnerChange.EventOwnerChange
getEventOwnerChange s = liftIO $ withManagedPtr s $ \ptr -> do
let val = ptr `plusPtr` 0 :: (Ptr Gdk.EventOwnerChange.EventOwnerChange)
val' <- (newPtr Gdk.EventOwnerChange.EventOwnerChange) val
return val'
#if ENABLE_OVERLOADING
data EventOwnerChangeFieldInfo
instance AttrInfo EventOwnerChangeFieldInfo where
type AttrAllowedOps EventOwnerChangeFieldInfo = '[ 'AttrGet]
type AttrSetTypeConstraint EventOwnerChangeFieldInfo = (~) (Ptr Gdk.EventOwnerChange.EventOwnerChange)
type AttrBaseTypeConstraint EventOwnerChangeFieldInfo = (~) Event
type AttrGetType EventOwnerChangeFieldInfo = Gdk.EventOwnerChange.EventOwnerChange
type AttrLabel EventOwnerChangeFieldInfo = "owner_change"
type AttrOrigin EventOwnerChangeFieldInfo = Event
attrGet _ = getEventOwnerChange
attrSet _ = undefined
attrConstruct = undefined
attrClear _ = undefined
event_ownerChange :: AttrLabelProxy "ownerChange"
event_ownerChange = AttrLabelProxy
#endif
{- |
Get the value of the “@proximity@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' event #proximity
@
-}
getEventProximity :: MonadIO m => Event -> m Gdk.EventProximity.EventProximity
getEventProximity s = liftIO $ withManagedPtr s $ \ptr -> do
let val = ptr `plusPtr` 0 :: (Ptr Gdk.EventProximity.EventProximity)
val' <- (newPtr Gdk.EventProximity.EventProximity) val
return val'
#if ENABLE_OVERLOADING
data EventProximityFieldInfo
instance AttrInfo EventProximityFieldInfo where
type AttrAllowedOps EventProximityFieldInfo = '[ 'AttrGet]
type AttrSetTypeConstraint EventProximityFieldInfo = (~) (Ptr Gdk.EventProximity.EventProximity)
type AttrBaseTypeConstraint EventProximityFieldInfo = (~) Event
type AttrGetType EventProximityFieldInfo = Gdk.EventProximity.EventProximity
type AttrLabel EventProximityFieldInfo = "proximity"
type AttrOrigin EventProximityFieldInfo = Event
attrGet _ = getEventProximity
attrSet _ = undefined
attrConstruct = undefined
attrClear _ = undefined
event_proximity :: AttrLabelProxy "proximity"
event_proximity = AttrLabelProxy
#endif
{- |
Get the value of the “@dnd@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' event #dnd
@
-}
getEventDnd :: MonadIO m => Event -> m Gdk.EventDND.EventDND
getEventDnd s = liftIO $ withManagedPtr s $ \ptr -> do
let val = ptr `plusPtr` 0 :: (Ptr Gdk.EventDND.EventDND)
val' <- (newPtr Gdk.EventDND.EventDND) val
return val'
#if ENABLE_OVERLOADING
data EventDndFieldInfo
instance AttrInfo EventDndFieldInfo where
type AttrAllowedOps EventDndFieldInfo = '[ 'AttrGet]
type AttrSetTypeConstraint EventDndFieldInfo = (~) (Ptr Gdk.EventDND.EventDND)
type AttrBaseTypeConstraint EventDndFieldInfo = (~) Event
type AttrGetType EventDndFieldInfo = Gdk.EventDND.EventDND
type AttrLabel EventDndFieldInfo = "dnd"
type AttrOrigin EventDndFieldInfo = Event
attrGet _ = getEventDnd
attrSet _ = undefined
attrConstruct = undefined
attrClear _ = undefined
event_dnd :: AttrLabelProxy "dnd"
event_dnd = AttrLabelProxy
#endif
{- |
Get the value of the “@window_state@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' event #windowState
@
-}
getEventWindowState :: MonadIO m => Event -> m Gdk.EventWindowState.EventWindowState
getEventWindowState s = liftIO $ withManagedPtr s $ \ptr -> do
let val = ptr `plusPtr` 0 :: (Ptr Gdk.EventWindowState.EventWindowState)
val' <- (newPtr Gdk.EventWindowState.EventWindowState) val
return val'
#if ENABLE_OVERLOADING
data EventWindowStateFieldInfo
instance AttrInfo EventWindowStateFieldInfo where
type AttrAllowedOps EventWindowStateFieldInfo = '[ 'AttrGet]
type AttrSetTypeConstraint EventWindowStateFieldInfo = (~) (Ptr Gdk.EventWindowState.EventWindowState)
type AttrBaseTypeConstraint EventWindowStateFieldInfo = (~) Event
type AttrGetType EventWindowStateFieldInfo = Gdk.EventWindowState.EventWindowState
type AttrLabel EventWindowStateFieldInfo = "window_state"
type AttrOrigin EventWindowStateFieldInfo = Event
attrGet _ = getEventWindowState
attrSet _ = undefined
attrConstruct = undefined
attrClear _ = undefined
event_windowState :: AttrLabelProxy "windowState"
event_windowState = AttrLabelProxy
#endif
{- |
Get the value of the “@setting@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' event #setting
@
-}
getEventSetting :: MonadIO m => Event -> m Gdk.EventSetting.EventSetting
getEventSetting s = liftIO $ withManagedPtr s $ \ptr -> do
let val = ptr `plusPtr` 0 :: (Ptr Gdk.EventSetting.EventSetting)
val' <- (newPtr Gdk.EventSetting.EventSetting) val
return val'
#if ENABLE_OVERLOADING
data EventSettingFieldInfo
instance AttrInfo EventSettingFieldInfo where
type AttrAllowedOps EventSettingFieldInfo = '[ 'AttrGet]
type AttrSetTypeConstraint EventSettingFieldInfo = (~) (Ptr Gdk.EventSetting.EventSetting)
type AttrBaseTypeConstraint EventSettingFieldInfo = (~) Event
type AttrGetType EventSettingFieldInfo = Gdk.EventSetting.EventSetting
type AttrLabel EventSettingFieldInfo = "setting"
type AttrOrigin EventSettingFieldInfo = Event
attrGet _ = getEventSetting
attrSet _ = undefined
attrConstruct = undefined
attrClear _ = undefined
event_setting :: AttrLabelProxy "setting"
event_setting = AttrLabelProxy
#endif
{- |
Get the value of the “@grab_broken@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' event #grabBroken
@
-}
getEventGrabBroken :: MonadIO m => Event -> m Gdk.EventGrabBroken.EventGrabBroken
getEventGrabBroken s = liftIO $ withManagedPtr s $ \ptr -> do
let val = ptr `plusPtr` 0 :: (Ptr Gdk.EventGrabBroken.EventGrabBroken)
val' <- (newPtr Gdk.EventGrabBroken.EventGrabBroken) val
return val'
#if ENABLE_OVERLOADING
data EventGrabBrokenFieldInfo
instance AttrInfo EventGrabBrokenFieldInfo where
type AttrAllowedOps EventGrabBrokenFieldInfo = '[ 'AttrGet]
type AttrSetTypeConstraint EventGrabBrokenFieldInfo = (~) (Ptr Gdk.EventGrabBroken.EventGrabBroken)
type AttrBaseTypeConstraint EventGrabBrokenFieldInfo = (~) Event
type AttrGetType EventGrabBrokenFieldInfo = Gdk.EventGrabBroken.EventGrabBroken
type AttrLabel EventGrabBrokenFieldInfo = "grab_broken"
type AttrOrigin EventGrabBrokenFieldInfo = Event
attrGet _ = getEventGrabBroken
attrSet _ = undefined
attrConstruct = undefined
attrClear _ = undefined
event_grabBroken :: AttrLabelProxy "grabBroken"
event_grabBroken = AttrLabelProxy
#endif
{- |
Get the value of the “@touchpad_swipe@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' event #touchpadSwipe
@
-}
getEventTouchpadSwipe :: MonadIO m => Event -> m Gdk.EventTouchpadSwipe.EventTouchpadSwipe
getEventTouchpadSwipe s = liftIO $ withManagedPtr s $ \ptr -> do
let val = ptr `plusPtr` 0 :: (Ptr Gdk.EventTouchpadSwipe.EventTouchpadSwipe)
val' <- (newPtr Gdk.EventTouchpadSwipe.EventTouchpadSwipe) val
return val'
#if ENABLE_OVERLOADING
data EventTouchpadSwipeFieldInfo
instance AttrInfo EventTouchpadSwipeFieldInfo where
type AttrAllowedOps EventTouchpadSwipeFieldInfo = '[ 'AttrGet]
type AttrSetTypeConstraint EventTouchpadSwipeFieldInfo = (~) (Ptr Gdk.EventTouchpadSwipe.EventTouchpadSwipe)
type AttrBaseTypeConstraint EventTouchpadSwipeFieldInfo = (~) Event
type AttrGetType EventTouchpadSwipeFieldInfo = Gdk.EventTouchpadSwipe.EventTouchpadSwipe
type AttrLabel EventTouchpadSwipeFieldInfo = "touchpad_swipe"
type AttrOrigin EventTouchpadSwipeFieldInfo = Event
attrGet _ = getEventTouchpadSwipe
attrSet _ = undefined
attrConstruct = undefined
attrClear _ = undefined
event_touchpadSwipe :: AttrLabelProxy "touchpadSwipe"
event_touchpadSwipe = AttrLabelProxy
#endif
{- |
Get the value of the “@touchpad_pinch@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' event #touchpadPinch
@
-}
getEventTouchpadPinch :: MonadIO m => Event -> m Gdk.EventTouchpadPinch.EventTouchpadPinch
getEventTouchpadPinch s = liftIO $ withManagedPtr s $ \ptr -> do
let val = ptr `plusPtr` 0 :: (Ptr Gdk.EventTouchpadPinch.EventTouchpadPinch)
val' <- (newPtr Gdk.EventTouchpadPinch.EventTouchpadPinch) val
return val'
#if ENABLE_OVERLOADING
data EventTouchpadPinchFieldInfo
instance AttrInfo EventTouchpadPinchFieldInfo where
type AttrAllowedOps EventTouchpadPinchFieldInfo = '[ 'AttrGet]
type AttrSetTypeConstraint EventTouchpadPinchFieldInfo = (~) (Ptr Gdk.EventTouchpadPinch.EventTouchpadPinch)
type AttrBaseTypeConstraint EventTouchpadPinchFieldInfo = (~) Event
type AttrGetType EventTouchpadPinchFieldInfo = Gdk.EventTouchpadPinch.EventTouchpadPinch
type AttrLabel EventTouchpadPinchFieldInfo = "touchpad_pinch"
type AttrOrigin EventTouchpadPinchFieldInfo = Event
attrGet _ = getEventTouchpadPinch
attrSet _ = undefined
attrConstruct = undefined
attrClear _ = undefined
event_touchpadPinch :: AttrLabelProxy "touchpadPinch"
event_touchpadPinch = AttrLabelProxy
#endif
{- |
Get the value of the “@pad_button@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' event #padButton
@
-}
getEventPadButton :: MonadIO m => Event -> m Gdk.EventPadButton.EventPadButton
getEventPadButton s = liftIO $ withManagedPtr s $ \ptr -> do
let val = ptr `plusPtr` 0 :: (Ptr Gdk.EventPadButton.EventPadButton)
val' <- (newPtr Gdk.EventPadButton.EventPadButton) val
return val'
#if ENABLE_OVERLOADING
data EventPadButtonFieldInfo
instance AttrInfo EventPadButtonFieldInfo where
type AttrAllowedOps EventPadButtonFieldInfo = '[ 'AttrGet]
type AttrSetTypeConstraint EventPadButtonFieldInfo = (~) (Ptr Gdk.EventPadButton.EventPadButton)
type AttrBaseTypeConstraint EventPadButtonFieldInfo = (~) Event
type AttrGetType EventPadButtonFieldInfo = Gdk.EventPadButton.EventPadButton
type AttrLabel EventPadButtonFieldInfo = "pad_button"
type AttrOrigin EventPadButtonFieldInfo = Event
attrGet _ = getEventPadButton
attrSet _ = undefined
attrConstruct = undefined
attrClear _ = undefined
event_padButton :: AttrLabelProxy "padButton"
event_padButton = AttrLabelProxy
#endif
{- |
Get the value of the “@pad_axis@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' event #padAxis
@
-}
getEventPadAxis :: MonadIO m => Event -> m Gdk.EventPadAxis.EventPadAxis
getEventPadAxis s = liftIO $ withManagedPtr s $ \ptr -> do
let val = ptr `plusPtr` 0 :: (Ptr Gdk.EventPadAxis.EventPadAxis)
val' <- (newPtr Gdk.EventPadAxis.EventPadAxis) val
return val'
#if ENABLE_OVERLOADING
data EventPadAxisFieldInfo
instance AttrInfo EventPadAxisFieldInfo where
type AttrAllowedOps EventPadAxisFieldInfo = '[ 'AttrGet]
type AttrSetTypeConstraint EventPadAxisFieldInfo = (~) (Ptr Gdk.EventPadAxis.EventPadAxis)
type AttrBaseTypeConstraint EventPadAxisFieldInfo = (~) Event
type AttrGetType EventPadAxisFieldInfo = Gdk.EventPadAxis.EventPadAxis
type AttrLabel EventPadAxisFieldInfo = "pad_axis"
type AttrOrigin EventPadAxisFieldInfo = Event
attrGet _ = getEventPadAxis
attrSet _ = undefined
attrConstruct = undefined
attrClear _ = undefined
event_padAxis :: AttrLabelProxy "padAxis"
event_padAxis = AttrLabelProxy
#endif
{- |
Get the value of the “@pad_group_mode@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' event #padGroupMode
@
-}
getEventPadGroupMode :: MonadIO m => Event -> m Gdk.EventPadGroupMode.EventPadGroupMode
getEventPadGroupMode s = liftIO $ withManagedPtr s $ \ptr -> do
let val = ptr `plusPtr` 0 :: (Ptr Gdk.EventPadGroupMode.EventPadGroupMode)
val' <- (newPtr Gdk.EventPadGroupMode.EventPadGroupMode) val
return val'
#if ENABLE_OVERLOADING
data EventPadGroupModeFieldInfo
instance AttrInfo EventPadGroupModeFieldInfo where
type AttrAllowedOps EventPadGroupModeFieldInfo = '[ 'AttrGet]
type AttrSetTypeConstraint EventPadGroupModeFieldInfo = (~) (Ptr Gdk.EventPadGroupMode.EventPadGroupMode)
type AttrBaseTypeConstraint EventPadGroupModeFieldInfo = (~) Event
type AttrGetType EventPadGroupModeFieldInfo = Gdk.EventPadGroupMode.EventPadGroupMode
type AttrLabel EventPadGroupModeFieldInfo = "pad_group_mode"
type AttrOrigin EventPadGroupModeFieldInfo = Event
attrGet _ = getEventPadGroupMode
attrSet _ = undefined
attrConstruct = undefined
attrClear _ = undefined
event_padGroupMode :: AttrLabelProxy "padGroupMode"
event_padGroupMode = AttrLabelProxy
#endif
#if ENABLE_OVERLOADING
instance O.HasAttributeList Event
type instance O.AttributeList Event = EventAttributeList
type EventAttributeList = ('[ '("type", EventTypeFieldInfo), '("any", EventAnyFieldInfo), '("expose", EventExposeFieldInfo), '("visibility", EventVisibilityFieldInfo), '("motion", EventMotionFieldInfo), '("button", EventButtonFieldInfo), '("touch", EventTouchFieldInfo), '("scroll", EventScrollFieldInfo), '("key", EventKeyFieldInfo), '("crossing", EventCrossingFieldInfo), '("focusChange", EventFocusChangeFieldInfo), '("configure", EventConfigureFieldInfo), '("property", EventPropertyFieldInfo), '("selection", EventSelectionFieldInfo), '("ownerChange", EventOwnerChangeFieldInfo), '("proximity", EventProximityFieldInfo), '("dnd", EventDndFieldInfo), '("windowState", EventWindowStateFieldInfo), '("setting", EventSettingFieldInfo), '("grabBroken", EventGrabBrokenFieldInfo), '("touchpadSwipe", EventTouchpadSwipeFieldInfo), '("touchpadPinch", EventTouchpadPinchFieldInfo), '("padButton", EventPadButtonFieldInfo), '("padAxis", EventPadAxisFieldInfo), '("padGroupMode", EventPadGroupModeFieldInfo)] :: [(Symbol, *)])
#endif
-- method Event::new
-- method type : Constructor
-- Args : [Arg {argCName = "type", argType = TInterface (Name {namespace = "Gdk", name = "EventType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkEventType", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gdk", name = "Event"}))
-- throws : False
-- Skip return : False
foreign import ccall "gdk_event_new" gdk_event_new ::
CInt -> -- type : TInterface (Name {namespace = "Gdk", name = "EventType"})
IO (Ptr Event)
{- |
Creates a new event of the given type. All fields are set to 0.
/Since: 2.2/
-}
eventNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
Gdk.Enums.EventType
{- ^ /@type@/: a 'GI.Gdk.Enums.EventType' -}
-> m Event
{- ^ __Returns:__ a newly-allocated 'GI.Gdk.Unions.Event.Event'. The returned 'GI.Gdk.Unions.Event.Event'
should be freed with 'GI.Gdk.Unions.Event.eventFree'. -}
eventNew type_ = liftIO $ do
let type_' = (fromIntegral . fromEnum) type_
result <- gdk_event_new type_'
checkUnexpectedReturnNULL "eventNew" result
result' <- (wrapBoxed Event) result
return result'
#if ENABLE_OVERLOADING
#endif
-- method Event::copy
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkEvent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gdk", name = "Event"}))
-- throws : False
-- Skip return : False
foreign import ccall "gdk_event_copy" gdk_event_copy ::
Ptr Event -> -- event : TInterface (Name {namespace = "Gdk", name = "Event"})
IO (Ptr Event)
{- |
Copies a 'GI.Gdk.Unions.Event.Event', copying or incrementing the reference count of the
resources associated with it (e.g. 'GI.Gdk.Objects.Window.Window'’s and strings).
-}
eventCopy ::
(B.CallStack.HasCallStack, MonadIO m) =>
Event
{- ^ /@event@/: a 'GI.Gdk.Unions.Event.Event' -}
-> m Event
{- ^ __Returns:__ a copy of /@event@/. The returned 'GI.Gdk.Unions.Event.Event' should be freed with
'GI.Gdk.Unions.Event.eventFree'. -}
eventCopy event = liftIO $ do
event' <- unsafeManagedPtrGetPtr event
result <- gdk_event_copy event'
checkUnexpectedReturnNULL "eventCopy" result
result' <- (wrapBoxed Event) result
touchManagedPtr event
return result'
#if ENABLE_OVERLOADING
data EventCopyMethodInfo
instance (signature ~ (m Event), MonadIO m) => O.MethodInfo EventCopyMethodInfo Event signature where
overloadedMethod _ = eventCopy
#endif
-- method Event::free
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkEvent.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "gdk_event_free" gdk_event_free ::
Ptr Event -> -- event : TInterface (Name {namespace = "Gdk", name = "Event"})
IO ()
{- |
Frees a 'GI.Gdk.Unions.Event.Event', freeing or decrementing any resources associated with it.
Note that this function should only be called with events returned from
functions such as 'GI.Gdk.Functions.eventPeek', 'GI.Gdk.Functions.eventGet', 'GI.Gdk.Unions.Event.eventCopy'
and 'GI.Gdk.Unions.Event.eventNew'.
-}
eventFree ::
(B.CallStack.HasCallStack, MonadIO m) =>
Event
{- ^ /@event@/: a 'GI.Gdk.Unions.Event.Event'. -}
-> m ()
eventFree event = liftIO $ do
event' <- unsafeManagedPtrGetPtr event
gdk_event_free event'
touchManagedPtr event
return ()
#if ENABLE_OVERLOADING
data EventFreeMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo EventFreeMethodInfo Event signature where
overloadedMethod _ = eventFree
#endif
-- method Event::get_axis
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkEvent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "axis_use", argType = TInterface (Name {namespace = "Gdk", name = "AxisUse"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the axis use to look for", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location to store the value found", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False
foreign import ccall "gdk_event_get_axis" gdk_event_get_axis ::
Ptr Event -> -- event : TInterface (Name {namespace = "Gdk", name = "Event"})
CUInt -> -- axis_use : TInterface (Name {namespace = "Gdk", name = "AxisUse"})
Ptr CDouble -> -- value : TBasicType TDouble
IO CInt
{- |
Extract the axis value for a particular axis use from
an event structure.
-}
eventGetAxis ::
(B.CallStack.HasCallStack, MonadIO m) =>
Event
{- ^ /@event@/: a 'GI.Gdk.Unions.Event.Event' -}
-> Gdk.Enums.AxisUse
{- ^ /@axisUse@/: the axis use to look for -}
-> m ((Bool, Double))
{- ^ __Returns:__ 'True' if the specified axis was found, otherwise 'False' -}
eventGetAxis event axisUse = liftIO $ do
event' <- unsafeManagedPtrGetPtr event
let axisUse' = (fromIntegral . fromEnum) axisUse
value <- allocMem :: IO (Ptr CDouble)
result <- gdk_event_get_axis event' axisUse' value
let result' = (/= 0) result
value' <- peek value
let value'' = realToFrac value'
touchManagedPtr event
freeMem value
return (result', value'')
#if ENABLE_OVERLOADING
data EventGetAxisMethodInfo
instance (signature ~ (Gdk.Enums.AxisUse -> m ((Bool, Double))), MonadIO m) => O.MethodInfo EventGetAxisMethodInfo Event signature where
overloadedMethod _ = eventGetAxis
#endif
-- method Event::get_button
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkEvent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "button", argType = TBasicType TUInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location to store mouse button number", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False
foreign import ccall "gdk_event_get_button" gdk_event_get_button ::
Ptr Event -> -- event : TInterface (Name {namespace = "Gdk", name = "Event"})
Ptr Word32 -> -- button : TBasicType TUInt
IO CInt
{- |
Extract the button number from an event.
/Since: 3.2/
-}
eventGetButton ::
(B.CallStack.HasCallStack, MonadIO m) =>
Event
{- ^ /@event@/: a 'GI.Gdk.Unions.Event.Event' -}
-> m ((Bool, Word32))
{- ^ __Returns:__ 'True' if the event delivered a button number -}
eventGetButton event = liftIO $ do
event' <- unsafeManagedPtrGetPtr event
button <- allocMem :: IO (Ptr Word32)
result <- gdk_event_get_button event' button
let result' = (/= 0) result
button' <- peek button
touchManagedPtr event
freeMem button
return (result', button')
#if ENABLE_OVERLOADING
data EventGetButtonMethodInfo
instance (signature ~ (m ((Bool, Word32))), MonadIO m) => O.MethodInfo EventGetButtonMethodInfo Event signature where
overloadedMethod _ = eventGetButton
#endif
-- method Event::get_click_count
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkEvent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "click_count", argType = TBasicType TUInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location to store click count", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False
foreign import ccall "gdk_event_get_click_count" gdk_event_get_click_count ::
Ptr Event -> -- event : TInterface (Name {namespace = "Gdk", name = "Event"})
Ptr Word32 -> -- click_count : TBasicType TUInt
IO CInt
{- |
Extracts the click count from an event.
/Since: 3.2/
-}
eventGetClickCount ::
(B.CallStack.HasCallStack, MonadIO m) =>
Event
{- ^ /@event@/: a 'GI.Gdk.Unions.Event.Event' -}
-> m ((Bool, Word32))
{- ^ __Returns:__ 'True' if the event delivered a click count -}
eventGetClickCount event = liftIO $ do
event' <- unsafeManagedPtrGetPtr event
clickCount <- allocMem :: IO (Ptr Word32)
result <- gdk_event_get_click_count event' clickCount
let result' = (/= 0) result
clickCount' <- peek clickCount
touchManagedPtr event
freeMem clickCount
return (result', clickCount')
#if ENABLE_OVERLOADING
data EventGetClickCountMethodInfo
instance (signature ~ (m ((Bool, Word32))), MonadIO m) => O.MethodInfo EventGetClickCountMethodInfo Event signature where
overloadedMethod _ = eventGetClickCount
#endif
-- method Event::get_coords
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkEvent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x_win", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location to put event window x coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "y_win", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location to put event window y coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False
foreign import ccall "gdk_event_get_coords" gdk_event_get_coords ::
Ptr Event -> -- event : TInterface (Name {namespace = "Gdk", name = "Event"})
Ptr CDouble -> -- x_win : TBasicType TDouble
Ptr CDouble -> -- y_win : TBasicType TDouble
IO CInt
{- |
Extract the event window relative x\/y coordinates from an event.
-}
eventGetCoords ::
(B.CallStack.HasCallStack, MonadIO m) =>
Event
{- ^ /@event@/: a 'GI.Gdk.Unions.Event.Event' -}
-> m ((Bool, Double, Double))
{- ^ __Returns:__ 'True' if the event delivered event window coordinates -}
eventGetCoords event = liftIO $ do
event' <- unsafeManagedPtrGetPtr event
xWin <- allocMem :: IO (Ptr CDouble)
yWin <- allocMem :: IO (Ptr CDouble)
result <- gdk_event_get_coords event' xWin yWin
let result' = (/= 0) result
xWin' <- peek xWin
let xWin'' = realToFrac xWin'
yWin' <- peek yWin
let yWin'' = realToFrac yWin'
touchManagedPtr event
freeMem xWin
freeMem yWin
return (result', xWin'', yWin'')
#if ENABLE_OVERLOADING
data EventGetCoordsMethodInfo
instance (signature ~ (m ((Bool, Double, Double))), MonadIO m) => O.MethodInfo EventGetCoordsMethodInfo Event signature where
overloadedMethod _ = eventGetCoords
#endif
-- method Event::get_device
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkEvent.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gdk", name = "Device"}))
-- throws : False
-- Skip return : False
foreign import ccall "gdk_event_get_device" gdk_event_get_device ::
Ptr Event -> -- event : TInterface (Name {namespace = "Gdk", name = "Event"})
IO (Ptr Gdk.Device.Device)
{- |
If the event contains a “device” field, this function will return
it, else it will return 'Nothing'.
/Since: 3.0/
-}
eventGetDevice ::
(B.CallStack.HasCallStack, MonadIO m) =>
Event
{- ^ /@event@/: a 'GI.Gdk.Unions.Event.Event'. -}
-> m (Maybe Gdk.Device.Device)
{- ^ __Returns:__ a 'GI.Gdk.Objects.Device.Device', or 'Nothing'. -}
eventGetDevice event = liftIO $ do
event' <- unsafeManagedPtrGetPtr event
result <- gdk_event_get_device event'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (newObject Gdk.Device.Device) result'
return result''
touchManagedPtr event
return maybeResult
#if ENABLE_OVERLOADING
data EventGetDeviceMethodInfo
instance (signature ~ (m (Maybe Gdk.Device.Device)), MonadIO m) => O.MethodInfo EventGetDeviceMethodInfo Event signature where
overloadedMethod _ = eventGetDevice
#endif
-- method Event::get_device_tool
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkEvent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gdk", name = "DeviceTool"}))
-- throws : False
-- Skip return : False
foreign import ccall "gdk_event_get_device_tool" gdk_event_get_device_tool ::
Ptr Event -> -- event : TInterface (Name {namespace = "Gdk", name = "Event"})
IO (Ptr Gdk.DeviceTool.DeviceTool)
{- |
If the event was generated by a device that supports
different tools (eg. a tablet), this function will
return a 'GI.Gdk.Objects.DeviceTool.DeviceTool' representing the tool that
caused the event. Otherwise, 'Nothing' will be returned.
Note: the 'GI.Gdk.Objects.DeviceTool.DeviceTool'\<!-- -->s will be constant during
the application lifetime, if settings must be stored
persistently across runs, see 'GI.Gdk.Objects.DeviceTool.deviceToolGetSerial'
/Since: 3.22/
-}
eventGetDeviceTool ::
(B.CallStack.HasCallStack, MonadIO m) =>
Event
{- ^ /@event@/: a 'GI.Gdk.Unions.Event.Event' -}
-> m Gdk.DeviceTool.DeviceTool
{- ^ __Returns:__ The current device tool, or 'Nothing' -}
eventGetDeviceTool event = liftIO $ do
event' <- unsafeManagedPtrGetPtr event
result <- gdk_event_get_device_tool event'
checkUnexpectedReturnNULL "eventGetDeviceTool" result
result' <- (newObject Gdk.DeviceTool.DeviceTool) result
touchManagedPtr event
return result'
#if ENABLE_OVERLOADING
data EventGetDeviceToolMethodInfo
instance (signature ~ (m Gdk.DeviceTool.DeviceTool), MonadIO m) => O.MethodInfo EventGetDeviceToolMethodInfo Event signature where
overloadedMethod _ = eventGetDeviceTool
#endif
-- method Event::get_event_sequence
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkEvent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gdk", name = "EventSequence"}))
-- throws : False
-- Skip return : False
foreign import ccall "gdk_event_get_event_sequence" gdk_event_get_event_sequence ::
Ptr Event -> -- event : TInterface (Name {namespace = "Gdk", name = "Event"})
IO (Ptr Gdk.EventSequence.EventSequence)
{- |
If /@event@/ if of type 'GI.Gdk.Enums.EventTypeTouchBegin', 'GI.Gdk.Enums.EventTypeTouchUpdate',
'GI.Gdk.Enums.EventTypeTouchEnd' or 'GI.Gdk.Enums.EventTypeTouchCancel', returns the 'GI.Gdk.Structs.EventSequence.EventSequence'
to which the event belongs. Otherwise, return 'Nothing'.
/Since: 3.4/
-}
eventGetEventSequence ::
(B.CallStack.HasCallStack, MonadIO m) =>
Event
{- ^ /@event@/: a 'GI.Gdk.Unions.Event.Event' -}
-> m Gdk.EventSequence.EventSequence
{- ^ __Returns:__ the event sequence that the event belongs to -}
eventGetEventSequence event = liftIO $ do
event' <- unsafeManagedPtrGetPtr event
result <- gdk_event_get_event_sequence event'
checkUnexpectedReturnNULL "eventGetEventSequence" result
result' <- (newBoxed Gdk.EventSequence.EventSequence) result
touchManagedPtr event
return result'
#if ENABLE_OVERLOADING
data EventGetEventSequenceMethodInfo
instance (signature ~ (m Gdk.EventSequence.EventSequence), MonadIO m) => O.MethodInfo EventGetEventSequenceMethodInfo Event signature where
overloadedMethod _ = eventGetEventSequence
#endif
-- method Event::get_event_type
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkEvent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gdk", name = "EventType"}))
-- throws : False
-- Skip return : False
foreign import ccall "gdk_event_get_event_type" gdk_event_get_event_type ::
Ptr Event -> -- event : TInterface (Name {namespace = "Gdk", name = "Event"})
IO CInt
{- |
Retrieves the type of the event.
/Since: 3.10/
-}
eventGetEventType ::
(B.CallStack.HasCallStack, MonadIO m) =>
Event
{- ^ /@event@/: a 'GI.Gdk.Unions.Event.Event' -}
-> m Gdk.Enums.EventType
{- ^ __Returns:__ a 'GI.Gdk.Enums.EventType' -}
eventGetEventType event = liftIO $ do
event' <- unsafeManagedPtrGetPtr event
result <- gdk_event_get_event_type event'
let result' = (toEnum . fromIntegral) result
touchManagedPtr event
return result'
#if ENABLE_OVERLOADING
data EventGetEventTypeMethodInfo
instance (signature ~ (m Gdk.Enums.EventType), MonadIO m) => O.MethodInfo EventGetEventTypeMethodInfo Event signature where
overloadedMethod _ = eventGetEventType
#endif
-- method Event::get_keycode
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkEvent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "keycode", argType = TBasicType TUInt16, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location to store the keycode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False
foreign import ccall "gdk_event_get_keycode" gdk_event_get_keycode ::
Ptr Event -> -- event : TInterface (Name {namespace = "Gdk", name = "Event"})
Ptr Word16 -> -- keycode : TBasicType TUInt16
IO CInt
{- |
Extracts the hardware keycode from an event.
Also see 'GI.Gdk.Unions.Event.eventGetScancode'.
/Since: 3.2/
-}
eventGetKeycode ::
(B.CallStack.HasCallStack, MonadIO m) =>
Event
{- ^ /@event@/: a 'GI.Gdk.Unions.Event.Event' -}
-> m ((Bool, Word16))
{- ^ __Returns:__ 'True' if the event delivered a hardware keycode -}
eventGetKeycode event = liftIO $ do
event' <- unsafeManagedPtrGetPtr event
keycode <- allocMem :: IO (Ptr Word16)
result <- gdk_event_get_keycode event' keycode
let result' = (/= 0) result
keycode' <- peek keycode
touchManagedPtr event
freeMem keycode
return (result', keycode')
#if ENABLE_OVERLOADING
data EventGetKeycodeMethodInfo
instance (signature ~ (m ((Bool, Word16))), MonadIO m) => O.MethodInfo EventGetKeycodeMethodInfo Event signature where
overloadedMethod _ = eventGetKeycode
#endif
-- method Event::get_keyval
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkEvent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "keyval", argType = TBasicType TUInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location to store the keyval", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False
foreign import ccall "gdk_event_get_keyval" gdk_event_get_keyval ::
Ptr Event -> -- event : TInterface (Name {namespace = "Gdk", name = "Event"})
Ptr Word32 -> -- keyval : TBasicType TUInt
IO CInt
{- |
Extracts the keyval from an event.
/Since: 3.2/
-}
eventGetKeyval ::
(B.CallStack.HasCallStack, MonadIO m) =>
Event
{- ^ /@event@/: a 'GI.Gdk.Unions.Event.Event' -}
-> m ((Bool, Word32))
{- ^ __Returns:__ 'True' if the event delivered a key symbol -}
eventGetKeyval event = liftIO $ do
event' <- unsafeManagedPtrGetPtr event
keyval <- allocMem :: IO (Ptr Word32)
result <- gdk_event_get_keyval event' keyval
let result' = (/= 0) result
keyval' <- peek keyval
touchManagedPtr event
freeMem keyval
return (result', keyval')
#if ENABLE_OVERLOADING
data EventGetKeyvalMethodInfo
instance (signature ~ (m ((Bool, Word32))), MonadIO m) => O.MethodInfo EventGetKeyvalMethodInfo Event signature where
overloadedMethod _ = eventGetKeyval
#endif
-- method Event::get_pointer_emulated
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False
foreign import ccall "gdk_event_get_pointer_emulated" gdk_event_get_pointer_emulated ::
Ptr Event -> -- event : TInterface (Name {namespace = "Gdk", name = "Event"})
IO CInt
{- |
@/event/@: a 'GI.Gdk.Unions.Event.Event'
Returns whether this event is an \'emulated\' pointer event (typically
from a touch event), as opposed to a real one.
/Since: 3.22/
-}
eventGetPointerEmulated ::
(B.CallStack.HasCallStack, MonadIO m) =>
Event
-> m Bool
{- ^ __Returns:__ 'True' if this event is emulated -}
eventGetPointerEmulated event = liftIO $ do
event' <- unsafeManagedPtrGetPtr event
result <- gdk_event_get_pointer_emulated event'
let result' = (/= 0) result
touchManagedPtr event
return result'
#if ENABLE_OVERLOADING
data EventGetPointerEmulatedMethodInfo
instance (signature ~ (m Bool), MonadIO m) => O.MethodInfo EventGetPointerEmulatedMethodInfo Event signature where
overloadedMethod _ = eventGetPointerEmulated
#endif
-- method Event::get_root_coords
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkEvent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x_root", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location to put root window x coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "y_root", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location to put root window y coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False
foreign import ccall "gdk_event_get_root_coords" gdk_event_get_root_coords ::
Ptr Event -> -- event : TInterface (Name {namespace = "Gdk", name = "Event"})
Ptr CDouble -> -- x_root : TBasicType TDouble
Ptr CDouble -> -- y_root : TBasicType TDouble
IO CInt
{- |
Extract the root window relative x\/y coordinates from an event.
-}
eventGetRootCoords ::
(B.CallStack.HasCallStack, MonadIO m) =>
Event
{- ^ /@event@/: a 'GI.Gdk.Unions.Event.Event' -}
-> m ((Bool, Double, Double))
{- ^ __Returns:__ 'True' if the event delivered root window coordinates -}
eventGetRootCoords event = liftIO $ do
event' <- unsafeManagedPtrGetPtr event
xRoot <- allocMem :: IO (Ptr CDouble)
yRoot <- allocMem :: IO (Ptr CDouble)
result <- gdk_event_get_root_coords event' xRoot yRoot
let result' = (/= 0) result
xRoot' <- peek xRoot
let xRoot'' = realToFrac xRoot'
yRoot' <- peek yRoot
let yRoot'' = realToFrac yRoot'
touchManagedPtr event
freeMem xRoot
freeMem yRoot
return (result', xRoot'', yRoot'')
#if ENABLE_OVERLOADING
data EventGetRootCoordsMethodInfo
instance (signature ~ (m ((Bool, Double, Double))), MonadIO m) => O.MethodInfo EventGetRootCoordsMethodInfo Event signature where
overloadedMethod _ = eventGetRootCoords
#endif
-- method Event::get_scancode
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkEvent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TInt)
-- throws : False
-- Skip return : False
foreign import ccall "gdk_event_get_scancode" gdk_event_get_scancode ::
Ptr Event -> -- event : TInterface (Name {namespace = "Gdk", name = "Event"})
IO Int32
{- |
Gets the keyboard low-level scancode of a key event.
This is usually hardware_keycode. On Windows this is the high
word of WM_KEY{DOWN,UP} lParam which contains the scancode and
some extended flags.
/Since: 3.22/
-}
eventGetScancode ::
(B.CallStack.HasCallStack, MonadIO m) =>
Event
{- ^ /@event@/: a 'GI.Gdk.Unions.Event.Event' -}
-> m Int32
{- ^ __Returns:__ The associated keyboard scancode or 0 -}
eventGetScancode event = liftIO $ do
event' <- unsafeManagedPtrGetPtr event
result <- gdk_event_get_scancode event'
touchManagedPtr event
return result
#if ENABLE_OVERLOADING
data EventGetScancodeMethodInfo
instance (signature ~ (m Int32), MonadIO m) => O.MethodInfo EventGetScancodeMethodInfo Event signature where
overloadedMethod _ = eventGetScancode
#endif
-- method Event::get_screen
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkEvent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gdk", name = "Screen"}))
-- throws : False
-- Skip return : False
foreign import ccall "gdk_event_get_screen" gdk_event_get_screen ::
Ptr Event -> -- event : TInterface (Name {namespace = "Gdk", name = "Event"})
IO (Ptr Gdk.Screen.Screen)
{- |
Returns the screen for the event. The screen is
typically the screen for @event->any.window@, but
for events such as mouse events, it is the screen
where the pointer was when the event occurs -
that is, the screen which has the root window
to which @event->motion.x_root@ and
@event->motion.y_root@ are relative.
/Since: 2.2/
-}
eventGetScreen ::
(B.CallStack.HasCallStack, MonadIO m) =>
Event
{- ^ /@event@/: a 'GI.Gdk.Unions.Event.Event' -}
-> m Gdk.Screen.Screen
{- ^ __Returns:__ the screen for the event -}
eventGetScreen event = liftIO $ do
event' <- unsafeManagedPtrGetPtr event
result <- gdk_event_get_screen event'
checkUnexpectedReturnNULL "eventGetScreen" result
result' <- (newObject Gdk.Screen.Screen) result
touchManagedPtr event
return result'
#if ENABLE_OVERLOADING
data EventGetScreenMethodInfo
instance (signature ~ (m Gdk.Screen.Screen), MonadIO m) => O.MethodInfo EventGetScreenMethodInfo Event signature where
overloadedMethod _ = eventGetScreen
#endif
-- method Event::get_scroll_deltas
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkEvent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "delta_x", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "return location for X delta", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "delta_y", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "return location for Y delta", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False
foreign import ccall "gdk_event_get_scroll_deltas" gdk_event_get_scroll_deltas ::
Ptr Event -> -- event : TInterface (Name {namespace = "Gdk", name = "Event"})
Ptr CDouble -> -- delta_x : TBasicType TDouble
Ptr CDouble -> -- delta_y : TBasicType TDouble
IO CInt
{- |
Retrieves the scroll deltas from a 'GI.Gdk.Unions.Event.Event'
/Since: 3.4/
-}
eventGetScrollDeltas ::
(B.CallStack.HasCallStack, MonadIO m) =>
Event
{- ^ /@event@/: a 'GI.Gdk.Unions.Event.Event' -}
-> m ((Bool, Double, Double))
{- ^ __Returns:__ 'True' if the event contains smooth scroll information -}
eventGetScrollDeltas event = liftIO $ do
event' <- unsafeManagedPtrGetPtr event
deltaX <- allocMem :: IO (Ptr CDouble)
deltaY <- allocMem :: IO (Ptr CDouble)
result <- gdk_event_get_scroll_deltas event' deltaX deltaY
let result' = (/= 0) result
deltaX' <- peek deltaX
let deltaX'' = realToFrac deltaX'
deltaY' <- peek deltaY
let deltaY'' = realToFrac deltaY'
touchManagedPtr event
freeMem deltaX
freeMem deltaY
return (result', deltaX'', deltaY'')
#if ENABLE_OVERLOADING
data EventGetScrollDeltasMethodInfo
instance (signature ~ (m ((Bool, Double, Double))), MonadIO m) => O.MethodInfo EventGetScrollDeltasMethodInfo Event signature where
overloadedMethod _ = eventGetScrollDeltas
#endif
-- method Event::get_scroll_direction
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkEvent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "direction", argType = TInterface (Name {namespace = "Gdk", name = "ScrollDirection"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location to store the scroll direction", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False
foreign import ccall "gdk_event_get_scroll_direction" gdk_event_get_scroll_direction ::
Ptr Event -> -- event : TInterface (Name {namespace = "Gdk", name = "Event"})
Ptr CUInt -> -- direction : TInterface (Name {namespace = "Gdk", name = "ScrollDirection"})
IO CInt
{- |
Extracts the scroll direction from an event.
/Since: 3.2/
-}
eventGetScrollDirection ::
(B.CallStack.HasCallStack, MonadIO m) =>
Event
{- ^ /@event@/: a 'GI.Gdk.Unions.Event.Event' -}
-> m ((Bool, Gdk.Enums.ScrollDirection))
{- ^ __Returns:__ 'True' if the event delivered a scroll direction -}
eventGetScrollDirection event = liftIO $ do
event' <- unsafeManagedPtrGetPtr event
direction <- allocMem :: IO (Ptr CUInt)
result <- gdk_event_get_scroll_direction event' direction
let result' = (/= 0) result
direction' <- peek direction
let direction'' = (toEnum . fromIntegral) direction'
touchManagedPtr event
freeMem direction
return (result', direction'')
#if ENABLE_OVERLOADING
data EventGetScrollDirectionMethodInfo
instance (signature ~ (m ((Bool, Gdk.Enums.ScrollDirection))), MonadIO m) => O.MethodInfo EventGetScrollDirectionMethodInfo Event signature where
overloadedMethod _ = eventGetScrollDirection
#endif
-- method Event::get_seat
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkEvent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gdk", name = "Seat"}))
-- throws : False
-- Skip return : False
foreign import ccall "gdk_event_get_seat" gdk_event_get_seat ::
Ptr Event -> -- event : TInterface (Name {namespace = "Gdk", name = "Event"})
IO (Ptr Gdk.Seat.Seat)
{- |
Returns the 'GI.Gdk.Objects.Seat.Seat' this event was generated for.
/Since: 3.20/
-}
eventGetSeat ::
(B.CallStack.HasCallStack, MonadIO m) =>
Event
{- ^ /@event@/: a 'GI.Gdk.Unions.Event.Event' -}
-> m Gdk.Seat.Seat
{- ^ __Returns:__ The 'GI.Gdk.Objects.Seat.Seat' of this event -}
eventGetSeat event = liftIO $ do
event' <- unsafeManagedPtrGetPtr event
result <- gdk_event_get_seat event'
checkUnexpectedReturnNULL "eventGetSeat" result
result' <- (newObject Gdk.Seat.Seat) result
touchManagedPtr event
return result'
#if ENABLE_OVERLOADING
data EventGetSeatMethodInfo
instance (signature ~ (m Gdk.Seat.Seat), MonadIO m) => O.MethodInfo EventGetSeatMethodInfo Event signature where
overloadedMethod _ = eventGetSeat
#endif
-- method Event::get_source_device
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkEvent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gdk", name = "Device"}))
-- throws : False
-- Skip return : False
foreign import ccall "gdk_event_get_source_device" gdk_event_get_source_device ::
Ptr Event -> -- event : TInterface (Name {namespace = "Gdk", name = "Event"})
IO (Ptr Gdk.Device.Device)
{- |
This function returns the hardware (slave) 'GI.Gdk.Objects.Device.Device' that has
triggered the event, falling back to the virtual (master) device
(as in 'GI.Gdk.Unions.Event.eventGetDevice') if the event wasn’t caused by
interaction with a hardware device. This may happen for example
in synthesized crossing events after a 'GI.Gdk.Objects.Window.Window' updates its
geometry or a grab is acquired\/released.
If the event does not contain a device field, this function will
return 'Nothing'.
/Since: 3.0/
-}
eventGetSourceDevice ::
(B.CallStack.HasCallStack, MonadIO m) =>
Event
{- ^ /@event@/: a 'GI.Gdk.Unions.Event.Event' -}
-> m (Maybe Gdk.Device.Device)
{- ^ __Returns:__ a 'GI.Gdk.Objects.Device.Device', or 'Nothing'. -}
eventGetSourceDevice event = liftIO $ do
event' <- unsafeManagedPtrGetPtr event
result <- gdk_event_get_source_device event'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (newObject Gdk.Device.Device) result'
return result''
touchManagedPtr event
return maybeResult
#if ENABLE_OVERLOADING
data EventGetSourceDeviceMethodInfo
instance (signature ~ (m (Maybe Gdk.Device.Device)), MonadIO m) => O.MethodInfo EventGetSourceDeviceMethodInfo Event signature where
overloadedMethod _ = eventGetSourceDevice
#endif
-- method Event::get_state
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkEvent or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "state", argType = TInterface (Name {namespace = "Gdk", name = "ModifierType"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "return location for state", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False
foreign import ccall "gdk_event_get_state" gdk_event_get_state ::
Ptr Event -> -- event : TInterface (Name {namespace = "Gdk", name = "Event"})
Ptr CUInt -> -- state : TInterface (Name {namespace = "Gdk", name = "ModifierType"})
IO CInt
{- |
If the event contains a “state” field, puts that field in /@state@/. Otherwise
stores an empty state (0). Returns 'True' if there was a state field
in the event. /@event@/ may be 'Nothing', in which case it’s treated
as if the event had no state field.
-}
eventGetState ::
(B.CallStack.HasCallStack, MonadIO m) =>
Event
{- ^ /@event@/: a 'GI.Gdk.Unions.Event.Event' or 'Nothing' -}
-> m ((Bool, [Gdk.Flags.ModifierType]))
{- ^ __Returns:__ 'True' if there was a state field in the event -}
eventGetState event = liftIO $ do
event' <- unsafeManagedPtrGetPtr event
state <- allocMem :: IO (Ptr CUInt)
result <- gdk_event_get_state event' state
let result' = (/= 0) result
state' <- peek state
let state'' = wordToGFlags state'
touchManagedPtr event
freeMem state
return (result', state'')
#if ENABLE_OVERLOADING
data EventGetStateMethodInfo
instance (signature ~ (m ((Bool, [Gdk.Flags.ModifierType]))), MonadIO m) => O.MethodInfo EventGetStateMethodInfo Event signature where
overloadedMethod _ = eventGetState
#endif
-- method Event::get_time
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkEvent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUInt32)
-- throws : False
-- Skip return : False
foreign import ccall "gdk_event_get_time" gdk_event_get_time ::
Ptr Event -> -- event : TInterface (Name {namespace = "Gdk", name = "Event"})
IO Word32
{- |
Returns the time stamp from /@event@/, if there is one; otherwise
returns 'GI.Gdk.Constants.CURRENT_TIME'. If /@event@/ is 'Nothing', returns 'GI.Gdk.Constants.CURRENT_TIME'.
-}
eventGetTime ::
(B.CallStack.HasCallStack, MonadIO m) =>
Event
{- ^ /@event@/: a 'GI.Gdk.Unions.Event.Event' -}
-> m Word32
{- ^ __Returns:__ time stamp field from /@event@/ -}
eventGetTime event = liftIO $ do
event' <- unsafeManagedPtrGetPtr event
result <- gdk_event_get_time event'
touchManagedPtr event
return result
#if ENABLE_OVERLOADING
data EventGetTimeMethodInfo
instance (signature ~ (m Word32), MonadIO m) => O.MethodInfo EventGetTimeMethodInfo Event signature where
overloadedMethod _ = eventGetTime
#endif
-- method Event::get_window
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkEvent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gdk", name = "Window"}))
-- throws : False
-- Skip return : False
foreign import ccall "gdk_event_get_window" gdk_event_get_window ::
Ptr Event -> -- event : TInterface (Name {namespace = "Gdk", name = "Event"})
IO (Ptr Gdk.Window.Window)
{- |
Extracts the 'GI.Gdk.Objects.Window.Window' associated with an event.
/Since: 3.10/
-}
eventGetWindow ::
(B.CallStack.HasCallStack, MonadIO m) =>
Event
{- ^ /@event@/: a 'GI.Gdk.Unions.Event.Event' -}
-> m Gdk.Window.Window
{- ^ __Returns:__ The 'GI.Gdk.Objects.Window.Window' associated with the event -}
eventGetWindow event = liftIO $ do
event' <- unsafeManagedPtrGetPtr event
result <- gdk_event_get_window event'
checkUnexpectedReturnNULL "eventGetWindow" result
result' <- (newObject Gdk.Window.Window) result
touchManagedPtr event
return result'
#if ENABLE_OVERLOADING
data EventGetWindowMethodInfo
instance (signature ~ (m Gdk.Window.Window), MonadIO m) => O.MethodInfo EventGetWindowMethodInfo Event signature where
overloadedMethod _ = eventGetWindow
#endif
-- method Event::is_scroll_stop_event
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkEvent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False
foreign import ccall "gdk_event_is_scroll_stop_event" gdk_event_is_scroll_stop_event ::
Ptr Event -> -- event : TInterface (Name {namespace = "Gdk", name = "Event"})
IO CInt
{- |
Check whether a scroll event is a stop scroll event. Scroll sequences
with smooth scroll information may provide a stop scroll event once the
interaction with the device finishes, e.g. by lifting a finger. This
stop scroll event is the signal that a widget may trigger kinetic
scrolling based on the current velocity.
Stop scroll events always have a a delta of 0\/0.
/Since: 3.20/
-}
eventIsScrollStopEvent ::
(B.CallStack.HasCallStack, MonadIO m) =>
Event
{- ^ /@event@/: a 'GI.Gdk.Unions.Event.Event' -}
-> m Bool
{- ^ __Returns:__ 'True' if the event is a scroll stop event -}
eventIsScrollStopEvent event = liftIO $ do
event' <- unsafeManagedPtrGetPtr event
result <- gdk_event_is_scroll_stop_event event'
let result' = (/= 0) result
touchManagedPtr event
return result'
#if ENABLE_OVERLOADING
data EventIsScrollStopEventMethodInfo
instance (signature ~ (m Bool), MonadIO m) => O.MethodInfo EventIsScrollStopEventMethodInfo Event signature where
overloadedMethod _ = eventIsScrollStopEvent
#endif
-- method Event::put
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkEvent.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "gdk_event_put" gdk_event_put ::
Ptr Event -> -- event : TInterface (Name {namespace = "Gdk", name = "Event"})
IO ()
{- |
Appends a copy of the given event onto the front of the event
queue for event->any.window’s display, or the default event
queue if event->any.window is 'Nothing'. See 'GI.Gdk.Objects.Display.displayPutEvent'.
-}
eventPut ::
(B.CallStack.HasCallStack, MonadIO m) =>
Event
{- ^ /@event@/: a 'GI.Gdk.Unions.Event.Event'. -}
-> m ()
eventPut event = liftIO $ do
event' <- unsafeManagedPtrGetPtr event
gdk_event_put event'
touchManagedPtr event
return ()
#if ENABLE_OVERLOADING
data EventPutMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo EventPutMethodInfo Event signature where
overloadedMethod _ = eventPut
#endif
-- method Event::set_device
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkEvent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "device", argType = TInterface (Name {namespace = "Gdk", name = "Device"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkDevice", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "gdk_event_set_device" gdk_event_set_device ::
Ptr Event -> -- event : TInterface (Name {namespace = "Gdk", name = "Event"})
Ptr Gdk.Device.Device -> -- device : TInterface (Name {namespace = "Gdk", name = "Device"})
IO ()
{- |
Sets the device for /@event@/ to /@device@/. The event must
have been allocated by GTK+, for instance, by
'GI.Gdk.Unions.Event.eventCopy'.
/Since: 3.0/
-}
eventSetDevice ::
(B.CallStack.HasCallStack, MonadIO m, Gdk.Device.IsDevice a) =>
Event
{- ^ /@event@/: a 'GI.Gdk.Unions.Event.Event' -}
-> a
{- ^ /@device@/: a 'GI.Gdk.Objects.Device.Device' -}
-> m ()
eventSetDevice event device = liftIO $ do
event' <- unsafeManagedPtrGetPtr event
device' <- unsafeManagedPtrCastPtr device
gdk_event_set_device event' device'
touchManagedPtr event
touchManagedPtr device
return ()
#if ENABLE_OVERLOADING
data EventSetDeviceMethodInfo
instance (signature ~ (a -> m ()), MonadIO m, Gdk.Device.IsDevice a) => O.MethodInfo EventSetDeviceMethodInfo Event signature where
overloadedMethod _ = eventSetDevice
#endif
-- method Event::set_device_tool
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkEvent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tool", argType = TInterface (Name {namespace = "Gdk", name = "DeviceTool"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "tool to set on the event, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "gdk_event_set_device_tool" gdk_event_set_device_tool ::
Ptr Event -> -- event : TInterface (Name {namespace = "Gdk", name = "Event"})
Ptr Gdk.DeviceTool.DeviceTool -> -- tool : TInterface (Name {namespace = "Gdk", name = "DeviceTool"})
IO ()
{- |
Sets the device tool for this event, should be rarely used.
/Since: 3.22/
-}
eventSetDeviceTool ::
(B.CallStack.HasCallStack, MonadIO m, Gdk.DeviceTool.IsDeviceTool a) =>
Event
{- ^ /@event@/: a 'GI.Gdk.Unions.Event.Event' -}
-> Maybe (a)
{- ^ /@tool@/: tool to set on the event, or 'Nothing' -}
-> m ()
eventSetDeviceTool event tool = liftIO $ do
event' <- unsafeManagedPtrGetPtr event
maybeTool <- case tool of
Nothing -> return nullPtr
Just jTool -> do
jTool' <- unsafeManagedPtrCastPtr jTool
return jTool'
gdk_event_set_device_tool event' maybeTool
touchManagedPtr event
whenJust tool touchManagedPtr
return ()
#if ENABLE_OVERLOADING
data EventSetDeviceToolMethodInfo
instance (signature ~ (Maybe (a) -> m ()), MonadIO m, Gdk.DeviceTool.IsDeviceTool a) => O.MethodInfo EventSetDeviceToolMethodInfo Event signature where
overloadedMethod _ = eventSetDeviceTool
#endif
-- method Event::set_screen
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkEvent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "screen", argType = TInterface (Name {namespace = "Gdk", name = "Screen"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkScreen", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "gdk_event_set_screen" gdk_event_set_screen ::
Ptr Event -> -- event : TInterface (Name {namespace = "Gdk", name = "Event"})
Ptr Gdk.Screen.Screen -> -- screen : TInterface (Name {namespace = "Gdk", name = "Screen"})
IO ()
{- |
Sets the screen for /@event@/ to /@screen@/. The event must
have been allocated by GTK+, for instance, by
'GI.Gdk.Unions.Event.eventCopy'.
/Since: 2.2/
-}
eventSetScreen ::
(B.CallStack.HasCallStack, MonadIO m, Gdk.Screen.IsScreen a) =>
Event
{- ^ /@event@/: a 'GI.Gdk.Unions.Event.Event' -}
-> a
{- ^ /@screen@/: a 'GI.Gdk.Objects.Screen.Screen' -}
-> m ()
eventSetScreen event screen = liftIO $ do
event' <- unsafeManagedPtrGetPtr event
screen' <- unsafeManagedPtrCastPtr screen
gdk_event_set_screen event' screen'
touchManagedPtr event
touchManagedPtr screen
return ()
#if ENABLE_OVERLOADING
data EventSetScreenMethodInfo
instance (signature ~ (a -> m ()), MonadIO m, Gdk.Screen.IsScreen a) => O.MethodInfo EventSetScreenMethodInfo Event signature where
overloadedMethod _ = eventSetScreen
#endif
-- method Event::set_source_device
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkEvent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "device", argType = TInterface (Name {namespace = "Gdk", name = "Device"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkDevice", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "gdk_event_set_source_device" gdk_event_set_source_device ::
Ptr Event -> -- event : TInterface (Name {namespace = "Gdk", name = "Event"})
Ptr Gdk.Device.Device -> -- device : TInterface (Name {namespace = "Gdk", name = "Device"})
IO ()
{- |
Sets the slave device for /@event@/ to /@device@/.
The event must have been allocated by GTK+,
for instance by 'GI.Gdk.Unions.Event.eventCopy'.
/Since: 3.0/
-}
eventSetSourceDevice ::
(B.CallStack.HasCallStack, MonadIO m, Gdk.Device.IsDevice a) =>
Event
{- ^ /@event@/: a 'GI.Gdk.Unions.Event.Event' -}
-> a
{- ^ /@device@/: a 'GI.Gdk.Objects.Device.Device' -}
-> m ()
eventSetSourceDevice event device = liftIO $ do
event' <- unsafeManagedPtrGetPtr event
device' <- unsafeManagedPtrCastPtr device
gdk_event_set_source_device event' device'
touchManagedPtr event
touchManagedPtr device
return ()
#if ENABLE_OVERLOADING
data EventSetSourceDeviceMethodInfo
instance (signature ~ (a -> m ()), MonadIO m, Gdk.Device.IsDevice a) => O.MethodInfo EventSetSourceDeviceMethodInfo Event signature where
overloadedMethod _ = eventSetSourceDevice
#endif
-- method Event::triggers_context_menu
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkEvent, currently only button events are meaningful values", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False
foreign import ccall "gdk_event_triggers_context_menu" gdk_event_triggers_context_menu ::
Ptr Event -> -- event : TInterface (Name {namespace = "Gdk", name = "Event"})
IO CInt
{- |
This function returns whether a 'GI.Gdk.Structs.EventButton.EventButton' should trigger a
context menu, according to platform conventions. The right mouse
button always triggers context menus. Additionally, if
'GI.Gdk.Objects.Keymap.keymapGetModifierMask' returns a non-0 mask for
'GI.Gdk.Enums.ModifierIntentContextMenu', then the left mouse button will
also trigger a context menu if this modifier is pressed.
This function should always be used instead of simply checking for
event->button == 'GI.Gdk.Constants.BUTTON_SECONDARY'.
/Since: 3.4/
-}
eventTriggersContextMenu ::
(B.CallStack.HasCallStack, MonadIO m) =>
Event
{- ^ /@event@/: a 'GI.Gdk.Unions.Event.Event', currently only button events are meaningful values -}
-> m Bool
{- ^ __Returns:__ 'True' if the event should trigger a context menu. -}
eventTriggersContextMenu event = liftIO $ do
event' <- unsafeManagedPtrGetPtr event
result <- gdk_event_triggers_context_menu event'
let result' = (/= 0) result
touchManagedPtr event
return result'
#if ENABLE_OVERLOADING
data EventTriggersContextMenuMethodInfo
instance (signature ~ (m Bool), MonadIO m) => O.MethodInfo EventTriggersContextMenuMethodInfo Event signature where
overloadedMethod _ = eventTriggersContextMenu
#endif
-- method Event::get
-- method type : MemberFunction
-- Args : []
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gdk", name = "Event"}))
-- throws : False
-- Skip return : False
foreign import ccall "gdk_event_get" gdk_event_get ::
IO (Ptr Event)
{- |
Checks all open displays for a 'GI.Gdk.Unions.Event.Event' to process,to be processed
on, fetching events from the windowing system if necessary.
See 'GI.Gdk.Objects.Display.displayGetEvent'.
-}
eventGet ::
(B.CallStack.HasCallStack, MonadIO m) =>
m (Maybe Event)
{- ^ __Returns:__ the next 'GI.Gdk.Unions.Event.Event' to be processed, or 'Nothing'
if no events are pending. The returned 'GI.Gdk.Unions.Event.Event' should be freed
with 'GI.Gdk.Unions.Event.eventFree'. -}
eventGet = liftIO $ do
result <- gdk_event_get
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (wrapBoxed Event) result'
return result''
return maybeResult
#if ENABLE_OVERLOADING
#endif
-- method Event::handler_set
-- method type : MemberFunction
-- Args : [Arg {argCName = "func", argType = TInterface (Name {namespace = "Gdk", name = "EventFunc"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the function to call to handle events from GDK.", sinceVersion = Nothing}, argScope = ScopeTypeNotified, argClosure = 1, argDestroy = 2, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data to pass to the function.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "notify", argType = TInterface (Name {namespace = "GLib", name = "DestroyNotify"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the function to call when the handler function is removed, i.e. when\n gdk_event_handler_set() is called with another event handler.", sinceVersion = Nothing}, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "gdk_event_handler_set" gdk_event_handler_set ::
FunPtr Gdk.Callbacks.C_EventFunc -> -- func : TInterface (Name {namespace = "Gdk", name = "EventFunc"})
Ptr () -> -- data : TBasicType TPtr
FunPtr GLib.Callbacks.C_DestroyNotify -> -- notify : TInterface (Name {namespace = "GLib", name = "DestroyNotify"})
IO ()
{- |
Sets the function to call to handle all events from GDK.
Note that GTK+ uses this to install its own event handler, so it is
usually not useful for GTK+ applications. (Although an application
can call this function then call @/gtk_main_do_event()/@ to pass
events to GTK+.)
-}
eventHandlerSet ::
(B.CallStack.HasCallStack, MonadIO m) =>
Gdk.Callbacks.EventFunc
{- ^ /@func@/: the function to call to handle events from GDK. -}
-> m ()
eventHandlerSet func = liftIO $ do
func' <- Gdk.Callbacks.mk_EventFunc (Gdk.Callbacks.wrap_EventFunc Nothing (Gdk.Callbacks.drop_closures_EventFunc func))
let data_ = castFunPtrToPtr func'
let notify = safeFreeFunPtrPtr
gdk_event_handler_set func' data_ notify
return ()
#if ENABLE_OVERLOADING
#endif
-- method Event::peek
-- method type : MemberFunction
-- Args : []
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gdk", name = "Event"}))
-- throws : False
-- Skip return : False
foreign import ccall "gdk_event_peek" gdk_event_peek ::
IO (Ptr Event)
{- |
If there is an event waiting in the event queue of some open
display, returns a copy of it. See 'GI.Gdk.Objects.Display.displayPeekEvent'.
-}
eventPeek ::
(B.CallStack.HasCallStack, MonadIO m) =>
m (Maybe Event)
{- ^ __Returns:__ a copy of the first 'GI.Gdk.Unions.Event.Event' on some event
queue, or 'Nothing' if no events are in any queues. The returned
'GI.Gdk.Unions.Event.Event' should be freed with 'GI.Gdk.Unions.Event.eventFree'. -}
eventPeek = liftIO $ do
result <- gdk_event_peek
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (wrapBoxed Event) result'
return result''
return maybeResult
#if ENABLE_OVERLOADING
#endif
-- method Event::request_motions
-- method type : MemberFunction
-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "EventMotion"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a valid #GdkEvent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "gdk_event_request_motions" gdk_event_request_motions ::
Ptr Gdk.EventMotion.EventMotion -> -- event : TInterface (Name {namespace = "Gdk", name = "EventMotion"})
IO ()
{- |
Request more motion notifies if /@event@/ is a motion notify hint event.
This function should be used instead of 'GI.Gdk.Objects.Window.windowGetPointer' to
request further motion notifies, because it also works for extension
events where motion notifies are provided for devices other than the
core pointer. Coordinate extraction, processing and requesting more
motion events from a 'GI.Gdk.Enums.EventTypeMotionNotify' event usually works like this:
=== /C code/
>
>{
> // motion_event handler
> x = motion_event->x;
> y = motion_event->y;
> // handle (x,y) motion
> gdk_event_request_motions (motion_event); // handles is_hint events
>}
/Since: 2.12/
-}
eventRequestMotions ::
(B.CallStack.HasCallStack, MonadIO m) =>
Gdk.EventMotion.EventMotion
{- ^ /@event@/: a valid 'GI.Gdk.Unions.Event.Event' -}
-> m ()
eventRequestMotions event = liftIO $ do
event' <- unsafeManagedPtrGetPtr event
gdk_event_request_motions event'
touchManagedPtr event
return ()
#if ENABLE_OVERLOADING
#endif
#if ENABLE_OVERLOADING
type family ResolveEventMethod (t :: Symbol) (o :: *) :: * where
ResolveEventMethod "copy" o = EventCopyMethodInfo
ResolveEventMethod "free" o = EventFreeMethodInfo
ResolveEventMethod "isScrollStopEvent" o = EventIsScrollStopEventMethodInfo
ResolveEventMethod "put" o = EventPutMethodInfo
ResolveEventMethod "triggersContextMenu" o = EventTriggersContextMenuMethodInfo
ResolveEventMethod "getAxis" o = EventGetAxisMethodInfo
ResolveEventMethod "getButton" o = EventGetButtonMethodInfo
ResolveEventMethod "getClickCount" o = EventGetClickCountMethodInfo
ResolveEventMethod "getCoords" o = EventGetCoordsMethodInfo
ResolveEventMethod "getDevice" o = EventGetDeviceMethodInfo
ResolveEventMethod "getDeviceTool" o = EventGetDeviceToolMethodInfo
ResolveEventMethod "getEventSequence" o = EventGetEventSequenceMethodInfo
ResolveEventMethod "getEventType" o = EventGetEventTypeMethodInfo
ResolveEventMethod "getKeycode" o = EventGetKeycodeMethodInfo
ResolveEventMethod "getKeyval" o = EventGetKeyvalMethodInfo
ResolveEventMethod "getPointerEmulated" o = EventGetPointerEmulatedMethodInfo
ResolveEventMethod "getRootCoords" o = EventGetRootCoordsMethodInfo
ResolveEventMethod "getScancode" o = EventGetScancodeMethodInfo
ResolveEventMethod "getScreen" o = EventGetScreenMethodInfo
ResolveEventMethod "getScrollDeltas" o = EventGetScrollDeltasMethodInfo
ResolveEventMethod "getScrollDirection" o = EventGetScrollDirectionMethodInfo
ResolveEventMethod "getSeat" o = EventGetSeatMethodInfo
ResolveEventMethod "getSourceDevice" o = EventGetSourceDeviceMethodInfo
ResolveEventMethod "getState" o = EventGetStateMethodInfo
ResolveEventMethod "getTime" o = EventGetTimeMethodInfo
ResolveEventMethod "getWindow" o = EventGetWindowMethodInfo
ResolveEventMethod "setDevice" o = EventSetDeviceMethodInfo
ResolveEventMethod "setDeviceTool" o = EventSetDeviceToolMethodInfo
ResolveEventMethod "setScreen" o = EventSetScreenMethodInfo
ResolveEventMethod "setSourceDevice" o = EventSetSourceDeviceMethodInfo
ResolveEventMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveEventMethod t Event, O.MethodInfo info Event p) => OL.IsLabel t (Event -> 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