gi-gdk-0.3.18.15: GI/Gdk/Structs/EventCrossing.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 the pointer enters or leaves a window.
-}
module GI.Gdk.Structs.EventCrossing
(
-- * Exported types
EventCrossing(..) ,
newZeroEventCrossing ,
noEventCrossing ,
-- * Properties
-- ** Detail
eventCrossingDetail ,
eventCrossingReadDetail ,
eventCrossingWriteDetail ,
-- ** Focus
eventCrossingFocus ,
eventCrossingReadFocus ,
eventCrossingWriteFocus ,
-- ** Mode
eventCrossingMode ,
eventCrossingReadMode ,
eventCrossingWriteMode ,
-- ** SendEvent
eventCrossingReadSendEvent ,
eventCrossingSendEvent ,
eventCrossingWriteSendEvent ,
-- ** State
eventCrossingReadState ,
eventCrossingState ,
eventCrossingWriteState ,
-- ** Subwindow
eventCrossingClearSubwindow ,
eventCrossingReadSubwindow ,
eventCrossingSubwindow ,
eventCrossingWriteSubwindow ,
-- ** Time
eventCrossingReadTime ,
eventCrossingTime ,
eventCrossingWriteTime ,
-- ** Type
eventCrossingReadType ,
eventCrossingType ,
eventCrossingWriteType ,
-- ** Window
eventCrossingClearWindow ,
eventCrossingReadWindow ,
eventCrossingWindow ,
eventCrossingWriteWindow ,
-- ** X
eventCrossingReadX ,
eventCrossingWriteX ,
eventCrossingX ,
-- ** XRoot
eventCrossingReadXRoot ,
eventCrossingWriteXRoot ,
eventCrossingXRoot ,
-- ** Y
eventCrossingReadY ,
eventCrossingWriteY ,
eventCrossingY ,
-- ** YRoot
eventCrossingReadYRoot ,
eventCrossingWriteYRoot ,
eventCrossingYRoot ,
) 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 EventCrossing = EventCrossing (ForeignPtr EventCrossing)
instance WrappedPtr EventCrossing where
wrappedPtrCalloc = callocBytes 88
wrappedPtrCopy = copyPtr 88
wrappedPtrFree = Just ptr_to_g_free
-- | Construct a `EventCrossing` struct initialized to zero.
newZeroEventCrossing :: MonadIO m => m EventCrossing
newZeroEventCrossing = liftIO $ wrappedPtrCalloc >>= wrapPtr EventCrossing
instance tag ~ 'AttrSet => Constructible EventCrossing tag where
new _ attrs = do
o <- newZeroEventCrossing
GI.Attributes.set o attrs
return o
noEventCrossing :: Maybe EventCrossing
noEventCrossing = Nothing
eventCrossingReadType :: MonadIO m => EventCrossing -> m EventType
eventCrossingReadType s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO CUInt
let val' = (toEnum . fromIntegral) val
return val'
eventCrossingWriteType :: MonadIO m => EventCrossing -> EventType -> m ()
eventCrossingWriteType s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = (fromIntegral . fromEnum) val
poke (ptr `plusPtr` 0) (val' :: CUInt)
data EventCrossingTypeFieldInfo
instance AttrInfo EventCrossingTypeFieldInfo where
type AttrAllowedOps EventCrossingTypeFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint EventCrossingTypeFieldInfo = (~) EventType
type AttrBaseTypeConstraint EventCrossingTypeFieldInfo = (~) EventCrossing
type AttrGetType EventCrossingTypeFieldInfo = EventType
type AttrLabel EventCrossingTypeFieldInfo = "type"
attrGet _ = eventCrossingReadType
attrSet _ = eventCrossingWriteType
attrConstruct = undefined
attrClear _ = undefined
eventCrossingType :: AttrLabelProxy "type"
eventCrossingType = AttrLabelProxy
eventCrossingReadWindow :: MonadIO m => EventCrossing -> m (Maybe Window)
eventCrossingReadWindow 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
eventCrossingWriteWindow :: MonadIO m => EventCrossing -> Ptr Window -> m ()
eventCrossingWriteWindow s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 8) (val :: Ptr Window)
eventCrossingClearWindow :: MonadIO m => EventCrossing -> m ()
eventCrossingClearWindow s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 8) (nullPtr :: Ptr Window)
data EventCrossingWindowFieldInfo
instance AttrInfo EventCrossingWindowFieldInfo where
type AttrAllowedOps EventCrossingWindowFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint EventCrossingWindowFieldInfo = (~) (Ptr Window)
type AttrBaseTypeConstraint EventCrossingWindowFieldInfo = (~) EventCrossing
type AttrGetType EventCrossingWindowFieldInfo = Maybe Window
type AttrLabel EventCrossingWindowFieldInfo = "window"
attrGet _ = eventCrossingReadWindow
attrSet _ = eventCrossingWriteWindow
attrConstruct = undefined
attrClear _ = eventCrossingClearWindow
eventCrossingWindow :: AttrLabelProxy "window"
eventCrossingWindow = AttrLabelProxy
eventCrossingReadSendEvent :: MonadIO m => EventCrossing -> m Int8
eventCrossingReadSendEvent s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 16) :: IO Int8
return val
eventCrossingWriteSendEvent :: MonadIO m => EventCrossing -> Int8 -> m ()
eventCrossingWriteSendEvent s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 16) (val :: Int8)
data EventCrossingSendEventFieldInfo
instance AttrInfo EventCrossingSendEventFieldInfo where
type AttrAllowedOps EventCrossingSendEventFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint EventCrossingSendEventFieldInfo = (~) Int8
type AttrBaseTypeConstraint EventCrossingSendEventFieldInfo = (~) EventCrossing
type AttrGetType EventCrossingSendEventFieldInfo = Int8
type AttrLabel EventCrossingSendEventFieldInfo = "send_event"
attrGet _ = eventCrossingReadSendEvent
attrSet _ = eventCrossingWriteSendEvent
attrConstruct = undefined
attrClear _ = undefined
eventCrossingSendEvent :: AttrLabelProxy "sendEvent"
eventCrossingSendEvent = AttrLabelProxy
eventCrossingReadSubwindow :: MonadIO m => EventCrossing -> m (Maybe Window)
eventCrossingReadSubwindow s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 24) :: IO (Ptr Window)
result <- convertIfNonNull val $ \val' -> do
val'' <- (newObject Window) val'
return val''
return result
eventCrossingWriteSubwindow :: MonadIO m => EventCrossing -> Ptr Window -> m ()
eventCrossingWriteSubwindow s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 24) (val :: Ptr Window)
eventCrossingClearSubwindow :: MonadIO m => EventCrossing -> m ()
eventCrossingClearSubwindow s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 24) (nullPtr :: Ptr Window)
data EventCrossingSubwindowFieldInfo
instance AttrInfo EventCrossingSubwindowFieldInfo where
type AttrAllowedOps EventCrossingSubwindowFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint EventCrossingSubwindowFieldInfo = (~) (Ptr Window)
type AttrBaseTypeConstraint EventCrossingSubwindowFieldInfo = (~) EventCrossing
type AttrGetType EventCrossingSubwindowFieldInfo = Maybe Window
type AttrLabel EventCrossingSubwindowFieldInfo = "subwindow"
attrGet _ = eventCrossingReadSubwindow
attrSet _ = eventCrossingWriteSubwindow
attrConstruct = undefined
attrClear _ = eventCrossingClearSubwindow
eventCrossingSubwindow :: AttrLabelProxy "subwindow"
eventCrossingSubwindow = AttrLabelProxy
eventCrossingReadTime :: MonadIO m => EventCrossing -> m Word32
eventCrossingReadTime s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 32) :: IO Word32
return val
eventCrossingWriteTime :: MonadIO m => EventCrossing -> Word32 -> m ()
eventCrossingWriteTime s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 32) (val :: Word32)
data EventCrossingTimeFieldInfo
instance AttrInfo EventCrossingTimeFieldInfo where
type AttrAllowedOps EventCrossingTimeFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint EventCrossingTimeFieldInfo = (~) Word32
type AttrBaseTypeConstraint EventCrossingTimeFieldInfo = (~) EventCrossing
type AttrGetType EventCrossingTimeFieldInfo = Word32
type AttrLabel EventCrossingTimeFieldInfo = "time"
attrGet _ = eventCrossingReadTime
attrSet _ = eventCrossingWriteTime
attrConstruct = undefined
attrClear _ = undefined
eventCrossingTime :: AttrLabelProxy "time"
eventCrossingTime = AttrLabelProxy
eventCrossingReadX :: MonadIO m => EventCrossing -> m Double
eventCrossingReadX s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 40) :: IO CDouble
let val' = realToFrac val
return val'
eventCrossingWriteX :: MonadIO m => EventCrossing -> Double -> m ()
eventCrossingWriteX s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = realToFrac val
poke (ptr `plusPtr` 40) (val' :: CDouble)
data EventCrossingXFieldInfo
instance AttrInfo EventCrossingXFieldInfo where
type AttrAllowedOps EventCrossingXFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint EventCrossingXFieldInfo = (~) Double
type AttrBaseTypeConstraint EventCrossingXFieldInfo = (~) EventCrossing
type AttrGetType EventCrossingXFieldInfo = Double
type AttrLabel EventCrossingXFieldInfo = "x"
attrGet _ = eventCrossingReadX
attrSet _ = eventCrossingWriteX
attrConstruct = undefined
attrClear _ = undefined
eventCrossingX :: AttrLabelProxy "x"
eventCrossingX = AttrLabelProxy
eventCrossingReadY :: MonadIO m => EventCrossing -> m Double
eventCrossingReadY s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 48) :: IO CDouble
let val' = realToFrac val
return val'
eventCrossingWriteY :: MonadIO m => EventCrossing -> Double -> m ()
eventCrossingWriteY s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = realToFrac val
poke (ptr `plusPtr` 48) (val' :: CDouble)
data EventCrossingYFieldInfo
instance AttrInfo EventCrossingYFieldInfo where
type AttrAllowedOps EventCrossingYFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint EventCrossingYFieldInfo = (~) Double
type AttrBaseTypeConstraint EventCrossingYFieldInfo = (~) EventCrossing
type AttrGetType EventCrossingYFieldInfo = Double
type AttrLabel EventCrossingYFieldInfo = "y"
attrGet _ = eventCrossingReadY
attrSet _ = eventCrossingWriteY
attrConstruct = undefined
attrClear _ = undefined
eventCrossingY :: AttrLabelProxy "y"
eventCrossingY = AttrLabelProxy
eventCrossingReadXRoot :: MonadIO m => EventCrossing -> m Double
eventCrossingReadXRoot s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 56) :: IO CDouble
let val' = realToFrac val
return val'
eventCrossingWriteXRoot :: MonadIO m => EventCrossing -> Double -> m ()
eventCrossingWriteXRoot s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = realToFrac val
poke (ptr `plusPtr` 56) (val' :: CDouble)
data EventCrossingXRootFieldInfo
instance AttrInfo EventCrossingXRootFieldInfo where
type AttrAllowedOps EventCrossingXRootFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint EventCrossingXRootFieldInfo = (~) Double
type AttrBaseTypeConstraint EventCrossingXRootFieldInfo = (~) EventCrossing
type AttrGetType EventCrossingXRootFieldInfo = Double
type AttrLabel EventCrossingXRootFieldInfo = "x_root"
attrGet _ = eventCrossingReadXRoot
attrSet _ = eventCrossingWriteXRoot
attrConstruct = undefined
attrClear _ = undefined
eventCrossingXRoot :: AttrLabelProxy "xRoot"
eventCrossingXRoot = AttrLabelProxy
eventCrossingReadYRoot :: MonadIO m => EventCrossing -> m Double
eventCrossingReadYRoot s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 64) :: IO CDouble
let val' = realToFrac val
return val'
eventCrossingWriteYRoot :: MonadIO m => EventCrossing -> Double -> m ()
eventCrossingWriteYRoot s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = realToFrac val
poke (ptr `plusPtr` 64) (val' :: CDouble)
data EventCrossingYRootFieldInfo
instance AttrInfo EventCrossingYRootFieldInfo where
type AttrAllowedOps EventCrossingYRootFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint EventCrossingYRootFieldInfo = (~) Double
type AttrBaseTypeConstraint EventCrossingYRootFieldInfo = (~) EventCrossing
type AttrGetType EventCrossingYRootFieldInfo = Double
type AttrLabel EventCrossingYRootFieldInfo = "y_root"
attrGet _ = eventCrossingReadYRoot
attrSet _ = eventCrossingWriteYRoot
attrConstruct = undefined
attrClear _ = undefined
eventCrossingYRoot :: AttrLabelProxy "yRoot"
eventCrossingYRoot = AttrLabelProxy
eventCrossingReadMode :: MonadIO m => EventCrossing -> m CrossingMode
eventCrossingReadMode s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 72) :: IO CUInt
let val' = (toEnum . fromIntegral) val
return val'
eventCrossingWriteMode :: MonadIO m => EventCrossing -> CrossingMode -> m ()
eventCrossingWriteMode s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = (fromIntegral . fromEnum) val
poke (ptr `plusPtr` 72) (val' :: CUInt)
data EventCrossingModeFieldInfo
instance AttrInfo EventCrossingModeFieldInfo where
type AttrAllowedOps EventCrossingModeFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint EventCrossingModeFieldInfo = (~) CrossingMode
type AttrBaseTypeConstraint EventCrossingModeFieldInfo = (~) EventCrossing
type AttrGetType EventCrossingModeFieldInfo = CrossingMode
type AttrLabel EventCrossingModeFieldInfo = "mode"
attrGet _ = eventCrossingReadMode
attrSet _ = eventCrossingWriteMode
attrConstruct = undefined
attrClear _ = undefined
eventCrossingMode :: AttrLabelProxy "mode"
eventCrossingMode = AttrLabelProxy
eventCrossingReadDetail :: MonadIO m => EventCrossing -> m NotifyType
eventCrossingReadDetail s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 76) :: IO CUInt
let val' = (toEnum . fromIntegral) val
return val'
eventCrossingWriteDetail :: MonadIO m => EventCrossing -> NotifyType -> m ()
eventCrossingWriteDetail s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = (fromIntegral . fromEnum) val
poke (ptr `plusPtr` 76) (val' :: CUInt)
data EventCrossingDetailFieldInfo
instance AttrInfo EventCrossingDetailFieldInfo where
type AttrAllowedOps EventCrossingDetailFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint EventCrossingDetailFieldInfo = (~) NotifyType
type AttrBaseTypeConstraint EventCrossingDetailFieldInfo = (~) EventCrossing
type AttrGetType EventCrossingDetailFieldInfo = NotifyType
type AttrLabel EventCrossingDetailFieldInfo = "detail"
attrGet _ = eventCrossingReadDetail
attrSet _ = eventCrossingWriteDetail
attrConstruct = undefined
attrClear _ = undefined
eventCrossingDetail :: AttrLabelProxy "detail"
eventCrossingDetail = AttrLabelProxy
eventCrossingReadFocus :: MonadIO m => EventCrossing -> m Bool
eventCrossingReadFocus s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 80) :: IO CInt
let val' = (/= 0) val
return val'
eventCrossingWriteFocus :: MonadIO m => EventCrossing -> Bool -> m ()
eventCrossingWriteFocus s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = (fromIntegral . fromEnum) val
poke (ptr `plusPtr` 80) (val' :: CInt)
data EventCrossingFocusFieldInfo
instance AttrInfo EventCrossingFocusFieldInfo where
type AttrAllowedOps EventCrossingFocusFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint EventCrossingFocusFieldInfo = (~) Bool
type AttrBaseTypeConstraint EventCrossingFocusFieldInfo = (~) EventCrossing
type AttrGetType EventCrossingFocusFieldInfo = Bool
type AttrLabel EventCrossingFocusFieldInfo = "focus"
attrGet _ = eventCrossingReadFocus
attrSet _ = eventCrossingWriteFocus
attrConstruct = undefined
attrClear _ = undefined
eventCrossingFocus :: AttrLabelProxy "focus"
eventCrossingFocus = AttrLabelProxy
eventCrossingReadState :: MonadIO m => EventCrossing -> m [ModifierType]
eventCrossingReadState s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 84) :: IO CUInt
let val' = wordToGFlags val
return val'
eventCrossingWriteState :: MonadIO m => EventCrossing -> [ModifierType] -> m ()
eventCrossingWriteState s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = gflagsToWord val
poke (ptr `plusPtr` 84) (val' :: CUInt)
data EventCrossingStateFieldInfo
instance AttrInfo EventCrossingStateFieldInfo where
type AttrAllowedOps EventCrossingStateFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint EventCrossingStateFieldInfo = (~) [ModifierType]
type AttrBaseTypeConstraint EventCrossingStateFieldInfo = (~) EventCrossing
type AttrGetType EventCrossingStateFieldInfo = [ModifierType]
type AttrLabel EventCrossingStateFieldInfo = "state"
attrGet _ = eventCrossingReadState
attrSet _ = eventCrossingWriteState
attrConstruct = undefined
attrClear _ = undefined
eventCrossingState :: AttrLabelProxy "state"
eventCrossingState = AttrLabelProxy
type instance AttributeList EventCrossing = EventCrossingAttributeList
type EventCrossingAttributeList = ('[ '("type", EventCrossingTypeFieldInfo), '("window", EventCrossingWindowFieldInfo), '("sendEvent", EventCrossingSendEventFieldInfo), '("subwindow", EventCrossingSubwindowFieldInfo), '("time", EventCrossingTimeFieldInfo), '("x", EventCrossingXFieldInfo), '("y", EventCrossingYFieldInfo), '("xRoot", EventCrossingXRootFieldInfo), '("yRoot", EventCrossingYRootFieldInfo), '("mode", EventCrossingModeFieldInfo), '("detail", EventCrossingDetailFieldInfo), '("focus", EventCrossingFocusFieldInfo), '("state", EventCrossingStateFieldInfo)] :: [(Symbol, *)])
type family ResolveEventCrossingMethod (t :: Symbol) (o :: *) :: * where
ResolveEventCrossingMethod l o = MethodResolutionFailed l o
instance (info ~ ResolveEventCrossingMethod t EventCrossing, MethodInfo info EventCrossing p) => IsLabelProxy t (EventCrossing -> p) where
fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveEventCrossingMethod t EventCrossing, MethodInfo info EventCrossing p) => IsLabel t (EventCrossing -> p) where
fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif