gi-gdk-0.3.18.14: 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
eventGrabBrokenClearGrabWindow ,
eventGrabBrokenGrabWindow ,
eventGrabBrokenReadGrabWindow ,
eventGrabBrokenWriteGrabWindow ,
-- ** Implicit
eventGrabBrokenImplicit ,
eventGrabBrokenReadImplicit ,
eventGrabBrokenWriteImplicit ,
-- ** Keyboard
eventGrabBrokenKeyboard ,
eventGrabBrokenReadKeyboard ,
eventGrabBrokenWriteKeyboard ,
-- ** SendEvent
eventGrabBrokenReadSendEvent ,
eventGrabBrokenSendEvent ,
eventGrabBrokenWriteSendEvent ,
-- ** Type
eventGrabBrokenReadType ,
eventGrabBrokenType ,
eventGrabBrokenWriteType ,
-- ** Window
eventGrabBrokenClearWindow ,
eventGrabBrokenReadWindow ,
eventGrabBrokenWindow ,
eventGrabBrokenWriteWindow ,
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.Attributes as GI.Attributes
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
instance tag ~ 'AttrSet => Constructible EventGrabBroken tag where
new _ attrs = do
o <- newZeroEventGrabBroken
GI.Attributes.set o attrs
return o
noEventGrabBroken :: Maybe EventGrabBroken
noEventGrabBroken = Nothing
eventGrabBrokenReadType :: MonadIO m => EventGrabBroken -> m EventType
eventGrabBrokenReadType s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO CUInt
let val' = (toEnum . fromIntegral) val
return val'
eventGrabBrokenWriteType :: MonadIO m => EventGrabBroken -> EventType -> m ()
eventGrabBrokenWriteType s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = (fromIntegral . fromEnum) val
poke (ptr `plusPtr` 0) (val' :: CUInt)
data EventGrabBrokenTypeFieldInfo
instance AttrInfo EventGrabBrokenTypeFieldInfo where
type AttrAllowedOps EventGrabBrokenTypeFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint EventGrabBrokenTypeFieldInfo = (~) EventType
type AttrBaseTypeConstraint EventGrabBrokenTypeFieldInfo = (~) EventGrabBroken
type AttrGetType EventGrabBrokenTypeFieldInfo = EventType
type AttrLabel EventGrabBrokenTypeFieldInfo = "type"
attrGet _ = eventGrabBrokenReadType
attrSet _ = eventGrabBrokenWriteType
attrConstruct = undefined
attrClear _ = undefined
eventGrabBrokenType :: AttrLabelProxy "type"
eventGrabBrokenType = AttrLabelProxy
eventGrabBrokenReadWindow :: MonadIO m => EventGrabBroken -> m (Maybe Window)
eventGrabBrokenReadWindow s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
result <- convertIfNonNull val $ \val' -> do
val'' <- (newObject Window) val'
return val''
return result
eventGrabBrokenWriteWindow :: MonadIO m => EventGrabBroken -> Ptr Window -> m ()
eventGrabBrokenWriteWindow s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 8) (val :: Ptr Window)
eventGrabBrokenClearWindow :: MonadIO m => EventGrabBroken -> m ()
eventGrabBrokenClearWindow s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 8) (nullPtr :: Ptr Window)
data EventGrabBrokenWindowFieldInfo
instance AttrInfo EventGrabBrokenWindowFieldInfo where
type AttrAllowedOps EventGrabBrokenWindowFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint EventGrabBrokenWindowFieldInfo = (~) (Ptr Window)
type AttrBaseTypeConstraint EventGrabBrokenWindowFieldInfo = (~) EventGrabBroken
type AttrGetType EventGrabBrokenWindowFieldInfo = Maybe Window
type AttrLabel EventGrabBrokenWindowFieldInfo = "window"
attrGet _ = eventGrabBrokenReadWindow
attrSet _ = eventGrabBrokenWriteWindow
attrConstruct = undefined
attrClear _ = eventGrabBrokenClearWindow
eventGrabBrokenWindow :: AttrLabelProxy "window"
eventGrabBrokenWindow = AttrLabelProxy
eventGrabBrokenReadSendEvent :: MonadIO m => EventGrabBroken -> m Int8
eventGrabBrokenReadSendEvent s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 16) :: IO Int8
return val
eventGrabBrokenWriteSendEvent :: MonadIO m => EventGrabBroken -> Int8 -> m ()
eventGrabBrokenWriteSendEvent s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 16) (val :: Int8)
data EventGrabBrokenSendEventFieldInfo
instance AttrInfo EventGrabBrokenSendEventFieldInfo where
type AttrAllowedOps EventGrabBrokenSendEventFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint EventGrabBrokenSendEventFieldInfo = (~) Int8
type AttrBaseTypeConstraint EventGrabBrokenSendEventFieldInfo = (~) EventGrabBroken
type AttrGetType EventGrabBrokenSendEventFieldInfo = Int8
type AttrLabel EventGrabBrokenSendEventFieldInfo = "send_event"
attrGet _ = eventGrabBrokenReadSendEvent
attrSet _ = eventGrabBrokenWriteSendEvent
attrConstruct = undefined
attrClear _ = undefined
eventGrabBrokenSendEvent :: AttrLabelProxy "sendEvent"
eventGrabBrokenSendEvent = AttrLabelProxy
eventGrabBrokenReadKeyboard :: MonadIO m => EventGrabBroken -> m Bool
eventGrabBrokenReadKeyboard s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 20) :: IO CInt
let val' = (/= 0) val
return val'
eventGrabBrokenWriteKeyboard :: MonadIO m => EventGrabBroken -> Bool -> m ()
eventGrabBrokenWriteKeyboard s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = (fromIntegral . fromEnum) val
poke (ptr `plusPtr` 20) (val' :: CInt)
data EventGrabBrokenKeyboardFieldInfo
instance AttrInfo EventGrabBrokenKeyboardFieldInfo where
type AttrAllowedOps EventGrabBrokenKeyboardFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint EventGrabBrokenKeyboardFieldInfo = (~) Bool
type AttrBaseTypeConstraint EventGrabBrokenKeyboardFieldInfo = (~) EventGrabBroken
type AttrGetType EventGrabBrokenKeyboardFieldInfo = Bool
type AttrLabel EventGrabBrokenKeyboardFieldInfo = "keyboard"
attrGet _ = eventGrabBrokenReadKeyboard
attrSet _ = eventGrabBrokenWriteKeyboard
attrConstruct = undefined
attrClear _ = undefined
eventGrabBrokenKeyboard :: AttrLabelProxy "keyboard"
eventGrabBrokenKeyboard = AttrLabelProxy
eventGrabBrokenReadImplicit :: MonadIO m => EventGrabBroken -> m Bool
eventGrabBrokenReadImplicit s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 24) :: IO CInt
let val' = (/= 0) val
return val'
eventGrabBrokenWriteImplicit :: MonadIO m => EventGrabBroken -> Bool -> m ()
eventGrabBrokenWriteImplicit s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = (fromIntegral . fromEnum) val
poke (ptr `plusPtr` 24) (val' :: CInt)
data EventGrabBrokenImplicitFieldInfo
instance AttrInfo EventGrabBrokenImplicitFieldInfo where
type AttrAllowedOps EventGrabBrokenImplicitFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint EventGrabBrokenImplicitFieldInfo = (~) Bool
type AttrBaseTypeConstraint EventGrabBrokenImplicitFieldInfo = (~) EventGrabBroken
type AttrGetType EventGrabBrokenImplicitFieldInfo = Bool
type AttrLabel EventGrabBrokenImplicitFieldInfo = "implicit"
attrGet _ = eventGrabBrokenReadImplicit
attrSet _ = eventGrabBrokenWriteImplicit
attrConstruct = undefined
attrClear _ = undefined
eventGrabBrokenImplicit :: AttrLabelProxy "implicit"
eventGrabBrokenImplicit = AttrLabelProxy
eventGrabBrokenReadGrabWindow :: MonadIO m => EventGrabBroken -> m (Maybe Window)
eventGrabBrokenReadGrabWindow s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 32) :: IO (Ptr Window)
result <- convertIfNonNull val $ \val' -> do
val'' <- (newObject Window) val'
return val''
return result
eventGrabBrokenWriteGrabWindow :: MonadIO m => EventGrabBroken -> Ptr Window -> m ()
eventGrabBrokenWriteGrabWindow s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 32) (val :: Ptr Window)
eventGrabBrokenClearGrabWindow :: MonadIO m => EventGrabBroken -> m ()
eventGrabBrokenClearGrabWindow s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 32) (nullPtr :: Ptr Window)
data EventGrabBrokenGrabWindowFieldInfo
instance AttrInfo EventGrabBrokenGrabWindowFieldInfo where
type AttrAllowedOps EventGrabBrokenGrabWindowFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint EventGrabBrokenGrabWindowFieldInfo = (~) (Ptr Window)
type AttrBaseTypeConstraint EventGrabBrokenGrabWindowFieldInfo = (~) EventGrabBroken
type AttrGetType EventGrabBrokenGrabWindowFieldInfo = Maybe Window
type AttrLabel EventGrabBrokenGrabWindowFieldInfo = "grab_window"
attrGet _ = eventGrabBrokenReadGrabWindow
attrSet _ = eventGrabBrokenWriteGrabWindow
attrConstruct = undefined
attrClear _ = eventGrabBrokenClearGrabWindow
eventGrabBrokenGrabWindow :: AttrLabelProxy "grabWindow"
eventGrabBrokenGrabWindow = AttrLabelProxy
type instance AttributeList EventGrabBroken = EventGrabBrokenAttributeList
type EventGrabBrokenAttributeList = ('[ '("type", EventGrabBrokenTypeFieldInfo), '("window", EventGrabBrokenWindowFieldInfo), '("sendEvent", EventGrabBrokenSendEventFieldInfo), '("keyboard", EventGrabBrokenKeyboardFieldInfo), '("implicit", EventGrabBrokenImplicitFieldInfo), '("grabWindow", EventGrabBrokenGrabWindowFieldInfo)] :: [(Symbol, *)])
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