{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc) Generated when the pointer enters or leaves a window. -} #define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \ && !defined(__HADDOCK_VERSION__)) module GI.Gdk.Structs.EventCrossing ( -- * Exported types EventCrossing(..) , newZeroEventCrossing , noEventCrossing , -- * Properties -- ** detail #attr:detail# {- | the kind of crossing that happened ('GI.Gdk.Enums.NotifyTypeInferior', 'GI.Gdk.Enums.NotifyTypeAncestor', 'GI.Gdk.Enums.NotifyTypeVirtual', 'GI.Gdk.Enums.NotifyTypeNonlinear' or 'GI.Gdk.Enums.NotifyTypeNonlinearVirtual'). -} #if ENABLE_OVERLOADING eventCrossing_detail , #endif getEventCrossingDetail , setEventCrossingDetail , -- ** focus #attr:focus# {- | 'True' if /@window@/ is the focus window or an inferior. -} #if ENABLE_OVERLOADING eventCrossing_focus , #endif getEventCrossingFocus , setEventCrossingFocus , -- ** mode #attr:mode# {- | the crossing mode ('GI.Gdk.Enums.CrossingModeNormal', 'GI.Gdk.Enums.CrossingModeGrab', 'GI.Gdk.Enums.CrossingModeUngrab', 'GI.Gdk.Enums.CrossingModeGtkGrab', 'GI.Gdk.Enums.CrossingModeGtkUngrab' or 'GI.Gdk.Enums.CrossingModeStateChanged'). 'GI.Gdk.Enums.CrossingModeGtkGrab', 'GI.Gdk.Enums.CrossingModeGtkUngrab', and 'GI.Gdk.Enums.CrossingModeStateChanged' were added in 2.14 and are always synthesized, never native. -} #if ENABLE_OVERLOADING eventCrossing_mode , #endif getEventCrossingMode , setEventCrossingMode , -- ** sendEvent #attr:sendEvent# {- | 'True' if the event was sent explicitly. -} #if ENABLE_OVERLOADING eventCrossing_sendEvent , #endif getEventCrossingSendEvent , setEventCrossingSendEvent , -- ** state #attr:state# {- | a bit-mask representing the state of the modifier keys (e.g. Control, Shift and Alt) and the pointer buttons. See 'GI.Gdk.Flags.ModifierType'. -} #if ENABLE_OVERLOADING eventCrossing_state , #endif getEventCrossingState , setEventCrossingState , -- ** subwindow #attr:subwindow# {- | the window that was entered or left. -} clearEventCrossingSubwindow , #if ENABLE_OVERLOADING eventCrossing_subwindow , #endif getEventCrossingSubwindow , setEventCrossingSubwindow , -- ** time #attr:time# {- | the time of the event in milliseconds. -} #if ENABLE_OVERLOADING eventCrossing_time , #endif getEventCrossingTime , setEventCrossingTime , -- ** type #attr:type# {- | the type of the event ('GI.Gdk.Enums.EventTypeEnterNotify' or 'GI.Gdk.Enums.EventTypeLeaveNotify'). -} #if ENABLE_OVERLOADING eventCrossing_type , #endif getEventCrossingType , setEventCrossingType , -- ** window #attr:window# {- | the window which received the event. -} clearEventCrossingWindow , #if ENABLE_OVERLOADING eventCrossing_window , #endif getEventCrossingWindow , setEventCrossingWindow , -- ** x #attr:x# {- | the x coordinate of the pointer relative to the window. -} #if ENABLE_OVERLOADING eventCrossing_x , #endif getEventCrossingX , setEventCrossingX , -- ** xRoot #attr:xRoot# {- | the x coordinate of the pointer relative to the root of the screen. -} #if ENABLE_OVERLOADING eventCrossing_xRoot , #endif getEventCrossingXRoot , setEventCrossingXRoot , -- ** y #attr:y# {- | the y coordinate of the pointer relative to the window. -} #if ENABLE_OVERLOADING eventCrossing_y , #endif getEventCrossingY , setEventCrossingY , -- ** yRoot #attr:yRoot# {- | the y coordinate of the pointer relative to the root of the screen. -} #if ENABLE_OVERLOADING eventCrossing_yRoot , #endif getEventCrossingYRoot , setEventCrossingYRoot , ) where import Data.GI.Base.ShortPrelude import qualified Data.GI.Base.ShortPrelude as SP import qualified Data.GI.Base.Overloading as O import qualified Prelude as P import qualified Data.GI.Base.Attributes as GI.Attributes import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr import qualified Data.GI.Base.GClosure as B.GClosure import qualified Data.GI.Base.GError as B.GError import qualified Data.GI.Base.GVariant as B.GVariant import qualified Data.GI.Base.GValue as B.GValue import qualified Data.GI.Base.GParamSpec as B.GParamSpec import qualified Data.GI.Base.CallStack as B.CallStack import qualified Data.GI.Base.Properties as B.Properties import qualified Data.Text as T import qualified Data.ByteString.Char8 as B import qualified Data.Map as Map import qualified Foreign.Ptr as FP import qualified GHC.OverloadedLabels as OL import {-# SOURCE #-} qualified GI.Gdk.Enums as Gdk.Enums import {-# SOURCE #-} qualified GI.Gdk.Flags as Gdk.Flags import {-# SOURCE #-} qualified GI.Gdk.Objects.Window as Gdk.Window -- | Memory-managed wrapper type. newtype EventCrossing = EventCrossing (ManagedPtr EventCrossing) instance WrappedPtr EventCrossing where wrappedPtrCalloc = callocBytes 88 wrappedPtrCopy = \p -> withManagedPtr p (copyBytes 88 >=> wrapPtr EventCrossing) 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 -- | A convenience alias for `Nothing` :: `Maybe` `EventCrossing`. noEventCrossing :: Maybe EventCrossing noEventCrossing = Nothing {- | Get the value of the “@type@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' eventCrossing #type @ -} getEventCrossingType :: MonadIO m => EventCrossing -> m Gdk.Enums.EventType getEventCrossingType 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 is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' eventCrossing [ #type 'Data.GI.Base.Attributes.:=' value ] @ -} setEventCrossingType :: MonadIO m => EventCrossing -> Gdk.Enums.EventType -> m () setEventCrossingType s val = liftIO $ withManagedPtr s $ \ptr -> do let val' = (fromIntegral . fromEnum) val poke (ptr `plusPtr` 0) (val' :: CInt) #if ENABLE_OVERLOADING data EventCrossingTypeFieldInfo instance AttrInfo EventCrossingTypeFieldInfo where type AttrAllowedOps EventCrossingTypeFieldInfo = '[ 'AttrSet, 'AttrGet] type AttrSetTypeConstraint EventCrossingTypeFieldInfo = (~) Gdk.Enums.EventType type AttrBaseTypeConstraint EventCrossingTypeFieldInfo = (~) EventCrossing type AttrGetType EventCrossingTypeFieldInfo = Gdk.Enums.EventType type AttrLabel EventCrossingTypeFieldInfo = "type" type AttrOrigin EventCrossingTypeFieldInfo = EventCrossing attrGet _ = getEventCrossingType attrSet _ = setEventCrossingType attrConstruct = undefined attrClear _ = undefined eventCrossing_type :: AttrLabelProxy "type" eventCrossing_type = AttrLabelProxy #endif {- | Get the value of the “@window@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' eventCrossing #window @ -} getEventCrossingWindow :: MonadIO m => EventCrossing -> m (Maybe Gdk.Window.Window) getEventCrossingWindow s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 8) :: IO (Ptr Gdk.Window.Window) result <- SP.convertIfNonNull val $ \val' -> do val'' <- (newObject Gdk.Window.Window) val' return val'' return result {- | Set the value of the “@window@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' eventCrossing [ #window 'Data.GI.Base.Attributes.:=' value ] @ -} setEventCrossingWindow :: MonadIO m => EventCrossing -> Ptr Gdk.Window.Window -> m () setEventCrossingWindow s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 8) (val :: Ptr Gdk.Window.Window) {- | Set the value of the “@window@” field to `Nothing`. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.clear' #window @ -} clearEventCrossingWindow :: MonadIO m => EventCrossing -> m () clearEventCrossingWindow s = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 8) (FP.nullPtr :: Ptr Gdk.Window.Window) #if ENABLE_OVERLOADING data EventCrossingWindowFieldInfo instance AttrInfo EventCrossingWindowFieldInfo where type AttrAllowedOps EventCrossingWindowFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear] type AttrSetTypeConstraint EventCrossingWindowFieldInfo = (~) (Ptr Gdk.Window.Window) type AttrBaseTypeConstraint EventCrossingWindowFieldInfo = (~) EventCrossing type AttrGetType EventCrossingWindowFieldInfo = Maybe Gdk.Window.Window type AttrLabel EventCrossingWindowFieldInfo = "window" type AttrOrigin EventCrossingWindowFieldInfo = EventCrossing attrGet _ = getEventCrossingWindow attrSet _ = setEventCrossingWindow attrConstruct = undefined attrClear _ = clearEventCrossingWindow eventCrossing_window :: AttrLabelProxy "window" eventCrossing_window = AttrLabelProxy #endif {- | Get the value of the “@send_event@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' eventCrossing #sendEvent @ -} getEventCrossingSendEvent :: MonadIO m => EventCrossing -> m Int8 getEventCrossingSendEvent s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 16) :: IO Int8 return val {- | Set the value of the “@send_event@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' eventCrossing [ #sendEvent 'Data.GI.Base.Attributes.:=' value ] @ -} setEventCrossingSendEvent :: MonadIO m => EventCrossing -> Int8 -> m () setEventCrossingSendEvent s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 16) (val :: Int8) #if ENABLE_OVERLOADING 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" type AttrOrigin EventCrossingSendEventFieldInfo = EventCrossing attrGet _ = getEventCrossingSendEvent attrSet _ = setEventCrossingSendEvent attrConstruct = undefined attrClear _ = undefined eventCrossing_sendEvent :: AttrLabelProxy "sendEvent" eventCrossing_sendEvent = AttrLabelProxy #endif {- | Get the value of the “@subwindow@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' eventCrossing #subwindow @ -} getEventCrossingSubwindow :: MonadIO m => EventCrossing -> m (Maybe Gdk.Window.Window) getEventCrossingSubwindow s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 24) :: IO (Ptr Gdk.Window.Window) result <- SP.convertIfNonNull val $ \val' -> do val'' <- (newObject Gdk.Window.Window) val' return val'' return result {- | Set the value of the “@subwindow@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' eventCrossing [ #subwindow 'Data.GI.Base.Attributes.:=' value ] @ -} setEventCrossingSubwindow :: MonadIO m => EventCrossing -> Ptr Gdk.Window.Window -> m () setEventCrossingSubwindow s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 24) (val :: Ptr Gdk.Window.Window) {- | Set the value of the “@subwindow@” field to `Nothing`. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.clear' #subwindow @ -} clearEventCrossingSubwindow :: MonadIO m => EventCrossing -> m () clearEventCrossingSubwindow s = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 24) (FP.nullPtr :: Ptr Gdk.Window.Window) #if ENABLE_OVERLOADING data EventCrossingSubwindowFieldInfo instance AttrInfo EventCrossingSubwindowFieldInfo where type AttrAllowedOps EventCrossingSubwindowFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear] type AttrSetTypeConstraint EventCrossingSubwindowFieldInfo = (~) (Ptr Gdk.Window.Window) type AttrBaseTypeConstraint EventCrossingSubwindowFieldInfo = (~) EventCrossing type AttrGetType EventCrossingSubwindowFieldInfo = Maybe Gdk.Window.Window type AttrLabel EventCrossingSubwindowFieldInfo = "subwindow" type AttrOrigin EventCrossingSubwindowFieldInfo = EventCrossing attrGet _ = getEventCrossingSubwindow attrSet _ = setEventCrossingSubwindow attrConstruct = undefined attrClear _ = clearEventCrossingSubwindow eventCrossing_subwindow :: AttrLabelProxy "subwindow" eventCrossing_subwindow = AttrLabelProxy #endif {- | Get the value of the “@time@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' eventCrossing #time @ -} getEventCrossingTime :: MonadIO m => EventCrossing -> m Word32 getEventCrossingTime s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 32) :: IO Word32 return val {- | Set the value of the “@time@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' eventCrossing [ #time 'Data.GI.Base.Attributes.:=' value ] @ -} setEventCrossingTime :: MonadIO m => EventCrossing -> Word32 -> m () setEventCrossingTime s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 32) (val :: Word32) #if ENABLE_OVERLOADING 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" type AttrOrigin EventCrossingTimeFieldInfo = EventCrossing attrGet _ = getEventCrossingTime attrSet _ = setEventCrossingTime attrConstruct = undefined attrClear _ = undefined eventCrossing_time :: AttrLabelProxy "time" eventCrossing_time = AttrLabelProxy #endif {- | Get the value of the “@x@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' eventCrossing #x @ -} getEventCrossingX :: MonadIO m => EventCrossing -> m Double getEventCrossingX s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 40) :: IO CDouble let val' = realToFrac val return val' {- | Set the value of the “@x@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' eventCrossing [ #x 'Data.GI.Base.Attributes.:=' value ] @ -} setEventCrossingX :: MonadIO m => EventCrossing -> Double -> m () setEventCrossingX s val = liftIO $ withManagedPtr s $ \ptr -> do let val' = realToFrac val poke (ptr `plusPtr` 40) (val' :: CDouble) #if ENABLE_OVERLOADING 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" type AttrOrigin EventCrossingXFieldInfo = EventCrossing attrGet _ = getEventCrossingX attrSet _ = setEventCrossingX attrConstruct = undefined attrClear _ = undefined eventCrossing_x :: AttrLabelProxy "x" eventCrossing_x = AttrLabelProxy #endif {- | Get the value of the “@y@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' eventCrossing #y @ -} getEventCrossingY :: MonadIO m => EventCrossing -> m Double getEventCrossingY s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 48) :: IO CDouble let val' = realToFrac val return val' {- | Set the value of the “@y@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' eventCrossing [ #y 'Data.GI.Base.Attributes.:=' value ] @ -} setEventCrossingY :: MonadIO m => EventCrossing -> Double -> m () setEventCrossingY s val = liftIO $ withManagedPtr s $ \ptr -> do let val' = realToFrac val poke (ptr `plusPtr` 48) (val' :: CDouble) #if ENABLE_OVERLOADING 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" type AttrOrigin EventCrossingYFieldInfo = EventCrossing attrGet _ = getEventCrossingY attrSet _ = setEventCrossingY attrConstruct = undefined attrClear _ = undefined eventCrossing_y :: AttrLabelProxy "y" eventCrossing_y = AttrLabelProxy #endif {- | Get the value of the “@x_root@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' eventCrossing #xRoot @ -} getEventCrossingXRoot :: MonadIO m => EventCrossing -> m Double getEventCrossingXRoot s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 56) :: IO CDouble let val' = realToFrac val return val' {- | Set the value of the “@x_root@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' eventCrossing [ #xRoot 'Data.GI.Base.Attributes.:=' value ] @ -} setEventCrossingXRoot :: MonadIO m => EventCrossing -> Double -> m () setEventCrossingXRoot s val = liftIO $ withManagedPtr s $ \ptr -> do let val' = realToFrac val poke (ptr `plusPtr` 56) (val' :: CDouble) #if ENABLE_OVERLOADING 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" type AttrOrigin EventCrossingXRootFieldInfo = EventCrossing attrGet _ = getEventCrossingXRoot attrSet _ = setEventCrossingXRoot attrConstruct = undefined attrClear _ = undefined eventCrossing_xRoot :: AttrLabelProxy "xRoot" eventCrossing_xRoot = AttrLabelProxy #endif {- | Get the value of the “@y_root@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' eventCrossing #yRoot @ -} getEventCrossingYRoot :: MonadIO m => EventCrossing -> m Double getEventCrossingYRoot s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 64) :: IO CDouble let val' = realToFrac val return val' {- | Set the value of the “@y_root@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' eventCrossing [ #yRoot 'Data.GI.Base.Attributes.:=' value ] @ -} setEventCrossingYRoot :: MonadIO m => EventCrossing -> Double -> m () setEventCrossingYRoot s val = liftIO $ withManagedPtr s $ \ptr -> do let val' = realToFrac val poke (ptr `plusPtr` 64) (val' :: CDouble) #if ENABLE_OVERLOADING 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" type AttrOrigin EventCrossingYRootFieldInfo = EventCrossing attrGet _ = getEventCrossingYRoot attrSet _ = setEventCrossingYRoot attrConstruct = undefined attrClear _ = undefined eventCrossing_yRoot :: AttrLabelProxy "yRoot" eventCrossing_yRoot = AttrLabelProxy #endif {- | Get the value of the “@mode@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' eventCrossing #mode @ -} getEventCrossingMode :: MonadIO m => EventCrossing -> m Gdk.Enums.CrossingMode getEventCrossingMode s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 72) :: IO CUInt let val' = (toEnum . fromIntegral) val return val' {- | Set the value of the “@mode@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' eventCrossing [ #mode 'Data.GI.Base.Attributes.:=' value ] @ -} setEventCrossingMode :: MonadIO m => EventCrossing -> Gdk.Enums.CrossingMode -> m () setEventCrossingMode s val = liftIO $ withManagedPtr s $ \ptr -> do let val' = (fromIntegral . fromEnum) val poke (ptr `plusPtr` 72) (val' :: CUInt) #if ENABLE_OVERLOADING data EventCrossingModeFieldInfo instance AttrInfo EventCrossingModeFieldInfo where type AttrAllowedOps EventCrossingModeFieldInfo = '[ 'AttrSet, 'AttrGet] type AttrSetTypeConstraint EventCrossingModeFieldInfo = (~) Gdk.Enums.CrossingMode type AttrBaseTypeConstraint EventCrossingModeFieldInfo = (~) EventCrossing type AttrGetType EventCrossingModeFieldInfo = Gdk.Enums.CrossingMode type AttrLabel EventCrossingModeFieldInfo = "mode" type AttrOrigin EventCrossingModeFieldInfo = EventCrossing attrGet _ = getEventCrossingMode attrSet _ = setEventCrossingMode attrConstruct = undefined attrClear _ = undefined eventCrossing_mode :: AttrLabelProxy "mode" eventCrossing_mode = AttrLabelProxy #endif {- | Get the value of the “@detail@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' eventCrossing #detail @ -} getEventCrossingDetail :: MonadIO m => EventCrossing -> m Gdk.Enums.NotifyType getEventCrossingDetail s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 76) :: IO CUInt let val' = (toEnum . fromIntegral) val return val' {- | Set the value of the “@detail@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' eventCrossing [ #detail 'Data.GI.Base.Attributes.:=' value ] @ -} setEventCrossingDetail :: MonadIO m => EventCrossing -> Gdk.Enums.NotifyType -> m () setEventCrossingDetail s val = liftIO $ withManagedPtr s $ \ptr -> do let val' = (fromIntegral . fromEnum) val poke (ptr `plusPtr` 76) (val' :: CUInt) #if ENABLE_OVERLOADING data EventCrossingDetailFieldInfo instance AttrInfo EventCrossingDetailFieldInfo where type AttrAllowedOps EventCrossingDetailFieldInfo = '[ 'AttrSet, 'AttrGet] type AttrSetTypeConstraint EventCrossingDetailFieldInfo = (~) Gdk.Enums.NotifyType type AttrBaseTypeConstraint EventCrossingDetailFieldInfo = (~) EventCrossing type AttrGetType EventCrossingDetailFieldInfo = Gdk.Enums.NotifyType type AttrLabel EventCrossingDetailFieldInfo = "detail" type AttrOrigin EventCrossingDetailFieldInfo = EventCrossing attrGet _ = getEventCrossingDetail attrSet _ = setEventCrossingDetail attrConstruct = undefined attrClear _ = undefined eventCrossing_detail :: AttrLabelProxy "detail" eventCrossing_detail = AttrLabelProxy #endif {- | Get the value of the “@focus@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' eventCrossing #focus @ -} getEventCrossingFocus :: MonadIO m => EventCrossing -> m Bool getEventCrossingFocus s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 80) :: IO CInt let val' = (/= 0) val return val' {- | Set the value of the “@focus@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' eventCrossing [ #focus 'Data.GI.Base.Attributes.:=' value ] @ -} setEventCrossingFocus :: MonadIO m => EventCrossing -> Bool -> m () setEventCrossingFocus s val = liftIO $ withManagedPtr s $ \ptr -> do let val' = (fromIntegral . fromEnum) val poke (ptr `plusPtr` 80) (val' :: CInt) #if ENABLE_OVERLOADING 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" type AttrOrigin EventCrossingFocusFieldInfo = EventCrossing attrGet _ = getEventCrossingFocus attrSet _ = setEventCrossingFocus attrConstruct = undefined attrClear _ = undefined eventCrossing_focus :: AttrLabelProxy "focus" eventCrossing_focus = AttrLabelProxy #endif {- | Get the value of the “@state@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' eventCrossing #state @ -} getEventCrossingState :: MonadIO m => EventCrossing -> m [Gdk.Flags.ModifierType] getEventCrossingState s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 84) :: IO CUInt let val' = wordToGFlags val return val' {- | Set the value of the “@state@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' eventCrossing [ #state 'Data.GI.Base.Attributes.:=' value ] @ -} setEventCrossingState :: MonadIO m => EventCrossing -> [Gdk.Flags.ModifierType] -> m () setEventCrossingState s val = liftIO $ withManagedPtr s $ \ptr -> do let val' = gflagsToWord val poke (ptr `plusPtr` 84) (val' :: CUInt) #if ENABLE_OVERLOADING data EventCrossingStateFieldInfo instance AttrInfo EventCrossingStateFieldInfo where type AttrAllowedOps EventCrossingStateFieldInfo = '[ 'AttrSet, 'AttrGet] type AttrSetTypeConstraint EventCrossingStateFieldInfo = (~) [Gdk.Flags.ModifierType] type AttrBaseTypeConstraint EventCrossingStateFieldInfo = (~) EventCrossing type AttrGetType EventCrossingStateFieldInfo = [Gdk.Flags.ModifierType] type AttrLabel EventCrossingStateFieldInfo = "state" type AttrOrigin EventCrossingStateFieldInfo = EventCrossing attrGet _ = getEventCrossingState attrSet _ = setEventCrossingState attrConstruct = undefined attrClear _ = undefined eventCrossing_state :: AttrLabelProxy "state" eventCrossing_state = AttrLabelProxy #endif #if ENABLE_OVERLOADING instance O.HasAttributeList EventCrossing type instance O.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, *)]) #endif #if ENABLE_OVERLOADING type family ResolveEventCrossingMethod (t :: Symbol) (o :: *) :: * where ResolveEventCrossingMethod l o = O.MethodResolutionFailed l o instance (info ~ ResolveEventCrossingMethod t EventCrossing, O.MethodInfo info EventCrossing p) => OL.IsLabel t (EventCrossing -> 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