gi-gdk-0.3.18.15: GI/Gdk/Structs/EventVisibility.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 window visibility status has changed.
-}
module GI.Gdk.Structs.EventVisibility
(
-- * Exported types
EventVisibility(..) ,
newZeroEventVisibility ,
noEventVisibility ,
-- * Properties
-- ** SendEvent
eventVisibilityReadSendEvent ,
eventVisibilitySendEvent ,
eventVisibilityWriteSendEvent ,
-- ** State
eventVisibilityReadState ,
eventVisibilityState ,
eventVisibilityWriteState ,
-- ** Type
eventVisibilityReadType ,
eventVisibilityType ,
eventVisibilityWriteType ,
-- ** Window
eventVisibilityClearWindow ,
eventVisibilityReadWindow ,
eventVisibilityWindow ,
eventVisibilityWriteWindow ,
) 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 EventVisibility = EventVisibility (ForeignPtr EventVisibility)
instance WrappedPtr EventVisibility where
wrappedPtrCalloc = callocBytes 24
wrappedPtrCopy = copyPtr 24
wrappedPtrFree = Just ptr_to_g_free
-- | Construct a `EventVisibility` struct initialized to zero.
newZeroEventVisibility :: MonadIO m => m EventVisibility
newZeroEventVisibility = liftIO $ wrappedPtrCalloc >>= wrapPtr EventVisibility
instance tag ~ 'AttrSet => Constructible EventVisibility tag where
new _ attrs = do
o <- newZeroEventVisibility
GI.Attributes.set o attrs
return o
noEventVisibility :: Maybe EventVisibility
noEventVisibility = Nothing
eventVisibilityReadType :: MonadIO m => EventVisibility -> m EventType
eventVisibilityReadType s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO CUInt
let val' = (toEnum . fromIntegral) val
return val'
eventVisibilityWriteType :: MonadIO m => EventVisibility -> EventType -> m ()
eventVisibilityWriteType s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = (fromIntegral . fromEnum) val
poke (ptr `plusPtr` 0) (val' :: CUInt)
data EventVisibilityTypeFieldInfo
instance AttrInfo EventVisibilityTypeFieldInfo where
type AttrAllowedOps EventVisibilityTypeFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint EventVisibilityTypeFieldInfo = (~) EventType
type AttrBaseTypeConstraint EventVisibilityTypeFieldInfo = (~) EventVisibility
type AttrGetType EventVisibilityTypeFieldInfo = EventType
type AttrLabel EventVisibilityTypeFieldInfo = "type"
attrGet _ = eventVisibilityReadType
attrSet _ = eventVisibilityWriteType
attrConstruct = undefined
attrClear _ = undefined
eventVisibilityType :: AttrLabelProxy "type"
eventVisibilityType = AttrLabelProxy
eventVisibilityReadWindow :: MonadIO m => EventVisibility -> m (Maybe Window)
eventVisibilityReadWindow 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
eventVisibilityWriteWindow :: MonadIO m => EventVisibility -> Ptr Window -> m ()
eventVisibilityWriteWindow s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 8) (val :: Ptr Window)
eventVisibilityClearWindow :: MonadIO m => EventVisibility -> m ()
eventVisibilityClearWindow s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 8) (nullPtr :: Ptr Window)
data EventVisibilityWindowFieldInfo
instance AttrInfo EventVisibilityWindowFieldInfo where
type AttrAllowedOps EventVisibilityWindowFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint EventVisibilityWindowFieldInfo = (~) (Ptr Window)
type AttrBaseTypeConstraint EventVisibilityWindowFieldInfo = (~) EventVisibility
type AttrGetType EventVisibilityWindowFieldInfo = Maybe Window
type AttrLabel EventVisibilityWindowFieldInfo = "window"
attrGet _ = eventVisibilityReadWindow
attrSet _ = eventVisibilityWriteWindow
attrConstruct = undefined
attrClear _ = eventVisibilityClearWindow
eventVisibilityWindow :: AttrLabelProxy "window"
eventVisibilityWindow = AttrLabelProxy
eventVisibilityReadSendEvent :: MonadIO m => EventVisibility -> m Int8
eventVisibilityReadSendEvent s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 16) :: IO Int8
return val
eventVisibilityWriteSendEvent :: MonadIO m => EventVisibility -> Int8 -> m ()
eventVisibilityWriteSendEvent s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 16) (val :: Int8)
data EventVisibilitySendEventFieldInfo
instance AttrInfo EventVisibilitySendEventFieldInfo where
type AttrAllowedOps EventVisibilitySendEventFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint EventVisibilitySendEventFieldInfo = (~) Int8
type AttrBaseTypeConstraint EventVisibilitySendEventFieldInfo = (~) EventVisibility
type AttrGetType EventVisibilitySendEventFieldInfo = Int8
type AttrLabel EventVisibilitySendEventFieldInfo = "send_event"
attrGet _ = eventVisibilityReadSendEvent
attrSet _ = eventVisibilityWriteSendEvent
attrConstruct = undefined
attrClear _ = undefined
eventVisibilitySendEvent :: AttrLabelProxy "sendEvent"
eventVisibilitySendEvent = AttrLabelProxy
eventVisibilityReadState :: MonadIO m => EventVisibility -> m VisibilityState
eventVisibilityReadState s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 20) :: IO CUInt
let val' = (toEnum . fromIntegral) val
return val'
eventVisibilityWriteState :: MonadIO m => EventVisibility -> VisibilityState -> m ()
eventVisibilityWriteState s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = (fromIntegral . fromEnum) val
poke (ptr `plusPtr` 20) (val' :: CUInt)
data EventVisibilityStateFieldInfo
instance AttrInfo EventVisibilityStateFieldInfo where
type AttrAllowedOps EventVisibilityStateFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint EventVisibilityStateFieldInfo = (~) VisibilityState
type AttrBaseTypeConstraint EventVisibilityStateFieldInfo = (~) EventVisibility
type AttrGetType EventVisibilityStateFieldInfo = VisibilityState
type AttrLabel EventVisibilityStateFieldInfo = "state"
attrGet _ = eventVisibilityReadState
attrSet _ = eventVisibilityWriteState
attrConstruct = undefined
attrClear _ = undefined
eventVisibilityState :: AttrLabelProxy "state"
eventVisibilityState = AttrLabelProxy
type instance AttributeList EventVisibility = EventVisibilityAttributeList
type EventVisibilityAttributeList = ('[ '("type", EventVisibilityTypeFieldInfo), '("window", EventVisibilityWindowFieldInfo), '("sendEvent", EventVisibilitySendEventFieldInfo), '("state", EventVisibilityStateFieldInfo)] :: [(Symbol, *)])
type family ResolveEventVisibilityMethod (t :: Symbol) (o :: *) :: * where
ResolveEventVisibilityMethod l o = MethodResolutionFailed l o
instance (info ~ ResolveEventVisibilityMethod t EventVisibility, MethodInfo info EventVisibility p) => IsLabelProxy t (EventVisibility -> p) where
fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveEventVisibilityMethod t EventVisibility, MethodInfo info EventVisibility p) => IsLabel t (EventVisibility -> p) where
fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif