gi-gdk-0.3.18.15: GI/Gdk/Structs/EventSetting.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 setting is modified.
-}
module GI.Gdk.Structs.EventSetting
(
-- * Exported types
EventSetting(..) ,
newZeroEventSetting ,
noEventSetting ,
-- * Properties
-- ** Action
eventSettingAction ,
eventSettingReadAction ,
eventSettingWriteAction ,
-- ** Name
eventSettingClearName ,
eventSettingName ,
eventSettingReadName ,
eventSettingWriteName ,
-- ** SendEvent
eventSettingReadSendEvent ,
eventSettingSendEvent ,
eventSettingWriteSendEvent ,
-- ** Type
eventSettingReadType ,
eventSettingType ,
eventSettingWriteType ,
-- ** Window
eventSettingClearWindow ,
eventSettingReadWindow ,
eventSettingWindow ,
eventSettingWriteWindow ,
) 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 EventSetting = EventSetting (ForeignPtr EventSetting)
instance WrappedPtr EventSetting where
wrappedPtrCalloc = callocBytes 32
wrappedPtrCopy = copyPtr 32
wrappedPtrFree = Just ptr_to_g_free
-- | Construct a `EventSetting` struct initialized to zero.
newZeroEventSetting :: MonadIO m => m EventSetting
newZeroEventSetting = liftIO $ wrappedPtrCalloc >>= wrapPtr EventSetting
instance tag ~ 'AttrSet => Constructible EventSetting tag where
new _ attrs = do
o <- newZeroEventSetting
GI.Attributes.set o attrs
return o
noEventSetting :: Maybe EventSetting
noEventSetting = Nothing
eventSettingReadType :: MonadIO m => EventSetting -> m EventType
eventSettingReadType s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO CUInt
let val' = (toEnum . fromIntegral) val
return val'
eventSettingWriteType :: MonadIO m => EventSetting -> EventType -> m ()
eventSettingWriteType s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = (fromIntegral . fromEnum) val
poke (ptr `plusPtr` 0) (val' :: CUInt)
data EventSettingTypeFieldInfo
instance AttrInfo EventSettingTypeFieldInfo where
type AttrAllowedOps EventSettingTypeFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint EventSettingTypeFieldInfo = (~) EventType
type AttrBaseTypeConstraint EventSettingTypeFieldInfo = (~) EventSetting
type AttrGetType EventSettingTypeFieldInfo = EventType
type AttrLabel EventSettingTypeFieldInfo = "type"
attrGet _ = eventSettingReadType
attrSet _ = eventSettingWriteType
attrConstruct = undefined
attrClear _ = undefined
eventSettingType :: AttrLabelProxy "type"
eventSettingType = AttrLabelProxy
eventSettingReadWindow :: MonadIO m => EventSetting -> m (Maybe Window)
eventSettingReadWindow 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
eventSettingWriteWindow :: MonadIO m => EventSetting -> Ptr Window -> m ()
eventSettingWriteWindow s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 8) (val :: Ptr Window)
eventSettingClearWindow :: MonadIO m => EventSetting -> m ()
eventSettingClearWindow s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 8) (nullPtr :: Ptr Window)
data EventSettingWindowFieldInfo
instance AttrInfo EventSettingWindowFieldInfo where
type AttrAllowedOps EventSettingWindowFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint EventSettingWindowFieldInfo = (~) (Ptr Window)
type AttrBaseTypeConstraint EventSettingWindowFieldInfo = (~) EventSetting
type AttrGetType EventSettingWindowFieldInfo = Maybe Window
type AttrLabel EventSettingWindowFieldInfo = "window"
attrGet _ = eventSettingReadWindow
attrSet _ = eventSettingWriteWindow
attrConstruct = undefined
attrClear _ = eventSettingClearWindow
eventSettingWindow :: AttrLabelProxy "window"
eventSettingWindow = AttrLabelProxy
eventSettingReadSendEvent :: MonadIO m => EventSetting -> m Int8
eventSettingReadSendEvent s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 16) :: IO Int8
return val
eventSettingWriteSendEvent :: MonadIO m => EventSetting -> Int8 -> m ()
eventSettingWriteSendEvent s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 16) (val :: Int8)
data EventSettingSendEventFieldInfo
instance AttrInfo EventSettingSendEventFieldInfo where
type AttrAllowedOps EventSettingSendEventFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint EventSettingSendEventFieldInfo = (~) Int8
type AttrBaseTypeConstraint EventSettingSendEventFieldInfo = (~) EventSetting
type AttrGetType EventSettingSendEventFieldInfo = Int8
type AttrLabel EventSettingSendEventFieldInfo = "send_event"
attrGet _ = eventSettingReadSendEvent
attrSet _ = eventSettingWriteSendEvent
attrConstruct = undefined
attrClear _ = undefined
eventSettingSendEvent :: AttrLabelProxy "sendEvent"
eventSettingSendEvent = AttrLabelProxy
eventSettingReadAction :: MonadIO m => EventSetting -> m SettingAction
eventSettingReadAction s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 20) :: IO CUInt
let val' = (toEnum . fromIntegral) val
return val'
eventSettingWriteAction :: MonadIO m => EventSetting -> SettingAction -> m ()
eventSettingWriteAction s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = (fromIntegral . fromEnum) val
poke (ptr `plusPtr` 20) (val' :: CUInt)
data EventSettingActionFieldInfo
instance AttrInfo EventSettingActionFieldInfo where
type AttrAllowedOps EventSettingActionFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint EventSettingActionFieldInfo = (~) SettingAction
type AttrBaseTypeConstraint EventSettingActionFieldInfo = (~) EventSetting
type AttrGetType EventSettingActionFieldInfo = SettingAction
type AttrLabel EventSettingActionFieldInfo = "action"
attrGet _ = eventSettingReadAction
attrSet _ = eventSettingWriteAction
attrConstruct = undefined
attrClear _ = undefined
eventSettingAction :: AttrLabelProxy "action"
eventSettingAction = AttrLabelProxy
eventSettingReadName :: MonadIO m => EventSetting -> m (Maybe T.Text)
eventSettingReadName s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 24) :: IO CString
result <- convertIfNonNull val $ \val' -> do
val'' <- cstringToText val'
return val''
return result
eventSettingWriteName :: MonadIO m => EventSetting -> CString -> m ()
eventSettingWriteName s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 24) (val :: CString)
eventSettingClearName :: MonadIO m => EventSetting -> m ()
eventSettingClearName s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 24) (nullPtr :: CString)
data EventSettingNameFieldInfo
instance AttrInfo EventSettingNameFieldInfo where
type AttrAllowedOps EventSettingNameFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint EventSettingNameFieldInfo = (~) CString
type AttrBaseTypeConstraint EventSettingNameFieldInfo = (~) EventSetting
type AttrGetType EventSettingNameFieldInfo = Maybe T.Text
type AttrLabel EventSettingNameFieldInfo = "name"
attrGet _ = eventSettingReadName
attrSet _ = eventSettingWriteName
attrConstruct = undefined
attrClear _ = eventSettingClearName
eventSettingName :: AttrLabelProxy "name"
eventSettingName = AttrLabelProxy
type instance AttributeList EventSetting = EventSettingAttributeList
type EventSettingAttributeList = ('[ '("type", EventSettingTypeFieldInfo), '("window", EventSettingWindowFieldInfo), '("sendEvent", EventSettingSendEventFieldInfo), '("action", EventSettingActionFieldInfo), '("name", EventSettingNameFieldInfo)] :: [(Symbol, *)])
type family ResolveEventSettingMethod (t :: Symbol) (o :: *) :: * where
ResolveEventSettingMethod l o = MethodResolutionFailed l o
instance (info ~ ResolveEventSettingMethod t EventSetting, MethodInfo info EventSetting p) => IsLabelProxy t (EventSetting -> p) where
fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveEventSettingMethod t EventSetting, MethodInfo info EventSetting p) => IsLabel t (EventSetting -> p) where
fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif