gi-gdk-0.3.18.13: GI/Gdk/Structs/EventGrabBroken.hs
{- |
Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
Generated when a pointer or keyboard grab is broken. On X11, this happens
when the grab window becomes unviewable (i.e. it or one of its ancestors
is unmapped), or if the same application grabs the pointer or keyboard
again. Note that implicit grabs (which are initiated by button presses)
can also cause #GdkEventGrabBroken events.
-}
module GI.Gdk.Structs.EventGrabBroken
(
-- * Exported types
EventGrabBroken(..) ,
newZeroEventGrabBroken ,
noEventGrabBroken ,
-- * Properties
-- ** GrabWindow
eventGrabBrokenReadGrabWindow ,
-- ** Implicit
eventGrabBrokenReadImplicit ,
-- ** Keyboard
eventGrabBrokenReadKeyboard ,
-- ** SendEvent
eventGrabBrokenReadSendEvent ,
-- ** Type
eventGrabBrokenReadType ,
-- ** Window
eventGrabBrokenReadWindow ,
) where
import Prelude ()
import Data.GI.Base.ShortPrelude
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import GI.Gdk.Types
import GI.Gdk.Callbacks
newtype EventGrabBroken = EventGrabBroken (ForeignPtr EventGrabBroken)
-- | Construct a `EventGrabBroken` struct initialized to zero.
newZeroEventGrabBroken :: MonadIO m => m EventGrabBroken
newZeroEventGrabBroken = liftIO $ callocBytes 40 >>= wrapPtr EventGrabBroken
noEventGrabBroken :: Maybe EventGrabBroken
noEventGrabBroken = Nothing
eventGrabBrokenReadType :: EventGrabBroken -> IO EventType
eventGrabBrokenReadType s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO CUInt
let val' = (toEnum . fromIntegral) val
return val'
eventGrabBrokenReadWindow :: EventGrabBroken -> IO Window
eventGrabBrokenReadWindow s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
val' <- (newObject Window) val
return val'
eventGrabBrokenReadSendEvent :: EventGrabBroken -> IO Int8
eventGrabBrokenReadSendEvent s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 16) :: IO Int8
return val
eventGrabBrokenReadKeyboard :: EventGrabBroken -> IO Bool
eventGrabBrokenReadKeyboard s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 20) :: IO CInt
let val' = (/= 0) val
return val'
eventGrabBrokenReadImplicit :: EventGrabBroken -> IO Bool
eventGrabBrokenReadImplicit s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 24) :: IO CInt
let val' = (/= 0) val
return val'
eventGrabBrokenReadGrabWindow :: EventGrabBroken -> IO Window
eventGrabBrokenReadGrabWindow s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 32) :: IO (Ptr Window)
val' <- (newObject Window) val
return val'
type family ResolveEventGrabBrokenMethod (t :: Symbol) (o :: *) :: * where
ResolveEventGrabBrokenMethod l o = MethodResolutionFailed l o
instance (info ~ ResolveEventGrabBrokenMethod t EventGrabBroken, MethodInfo info EventGrabBroken p) => IsLabelProxy t (EventGrabBroken -> p) where
fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveEventGrabBrokenMethod t EventGrabBroken, MethodInfo info EventGrabBroken p) => IsLabel t (EventGrabBroken -> p) where
fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif