{- | 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 a setting is modified. -} #define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \ && !defined(__HADDOCK_VERSION__)) module GI.Gdk.Structs.EventSetting ( -- * Exported types EventSetting(..) , newZeroEventSetting , noEventSetting , -- * Properties -- ** action #attr:action# {- | what happened to the setting ('GI.Gdk.Enums.SettingActionNew', 'GI.Gdk.Enums.SettingActionChanged' or 'GI.Gdk.Enums.SettingActionDeleted'). -} #if ENABLE_OVERLOADING eventSetting_action , #endif getEventSettingAction , setEventSettingAction , -- ** name #attr:name# {- | the name of the setting. -} clearEventSettingName , #if ENABLE_OVERLOADING eventSetting_name , #endif getEventSettingName , setEventSettingName , -- ** sendEvent #attr:sendEvent# {- | 'True' if the event was sent explicitly. -} #if ENABLE_OVERLOADING eventSetting_sendEvent , #endif getEventSettingSendEvent , setEventSettingSendEvent , -- ** type #attr:type# {- | the type of the event ('GI.Gdk.Enums.EventTypeSetting'). -} #if ENABLE_OVERLOADING eventSetting_type , #endif getEventSettingType , setEventSettingType , -- ** window #attr:window# {- | the window which received the event. -} clearEventSettingWindow , #if ENABLE_OVERLOADING eventSetting_window , #endif getEventSettingWindow , setEventSettingWindow , ) 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.Objects.Window as Gdk.Window -- | Memory-managed wrapper type. newtype EventSetting = EventSetting (ManagedPtr EventSetting) instance WrappedPtr EventSetting where wrappedPtrCalloc = callocBytes 32 wrappedPtrCopy = \p -> withManagedPtr p (copyBytes 32 >=> wrapPtr EventSetting) 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 -- | A convenience alias for `Nothing` :: `Maybe` `EventSetting`. noEventSetting :: Maybe EventSetting noEventSetting = Nothing {- | Get the value of the “@type@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' eventSetting #type @ -} getEventSettingType :: MonadIO m => EventSetting -> m Gdk.Enums.EventType getEventSettingType 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' eventSetting [ #type 'Data.GI.Base.Attributes.:=' value ] @ -} setEventSettingType :: MonadIO m => EventSetting -> Gdk.Enums.EventType -> m () setEventSettingType s val = liftIO $ withManagedPtr s $ \ptr -> do let val' = (fromIntegral . fromEnum) val poke (ptr `plusPtr` 0) (val' :: CInt) #if ENABLE_OVERLOADING data EventSettingTypeFieldInfo instance AttrInfo EventSettingTypeFieldInfo where type AttrAllowedOps EventSettingTypeFieldInfo = '[ 'AttrSet, 'AttrGet] type AttrSetTypeConstraint EventSettingTypeFieldInfo = (~) Gdk.Enums.EventType type AttrBaseTypeConstraint EventSettingTypeFieldInfo = (~) EventSetting type AttrGetType EventSettingTypeFieldInfo = Gdk.Enums.EventType type AttrLabel EventSettingTypeFieldInfo = "type" type AttrOrigin EventSettingTypeFieldInfo = EventSetting attrGet _ = getEventSettingType attrSet _ = setEventSettingType attrConstruct = undefined attrClear _ = undefined eventSetting_type :: AttrLabelProxy "type" eventSetting_type = AttrLabelProxy #endif {- | Get the value of the “@window@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' eventSetting #window @ -} getEventSettingWindow :: MonadIO m => EventSetting -> m (Maybe Gdk.Window.Window) getEventSettingWindow 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' eventSetting [ #window 'Data.GI.Base.Attributes.:=' value ] @ -} setEventSettingWindow :: MonadIO m => EventSetting -> Ptr Gdk.Window.Window -> m () setEventSettingWindow 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 @ -} clearEventSettingWindow :: MonadIO m => EventSetting -> m () clearEventSettingWindow s = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 8) (FP.nullPtr :: Ptr Gdk.Window.Window) #if ENABLE_OVERLOADING data EventSettingWindowFieldInfo instance AttrInfo EventSettingWindowFieldInfo where type AttrAllowedOps EventSettingWindowFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear] type AttrSetTypeConstraint EventSettingWindowFieldInfo = (~) (Ptr Gdk.Window.Window) type AttrBaseTypeConstraint EventSettingWindowFieldInfo = (~) EventSetting type AttrGetType EventSettingWindowFieldInfo = Maybe Gdk.Window.Window type AttrLabel EventSettingWindowFieldInfo = "window" type AttrOrigin EventSettingWindowFieldInfo = EventSetting attrGet _ = getEventSettingWindow attrSet _ = setEventSettingWindow attrConstruct = undefined attrClear _ = clearEventSettingWindow eventSetting_window :: AttrLabelProxy "window" eventSetting_window = AttrLabelProxy #endif {- | Get the value of the “@send_event@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' eventSetting #sendEvent @ -} getEventSettingSendEvent :: MonadIO m => EventSetting -> m Int8 getEventSettingSendEvent 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' eventSetting [ #sendEvent 'Data.GI.Base.Attributes.:=' value ] @ -} setEventSettingSendEvent :: MonadIO m => EventSetting -> Int8 -> m () setEventSettingSendEvent s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 16) (val :: Int8) #if ENABLE_OVERLOADING 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" type AttrOrigin EventSettingSendEventFieldInfo = EventSetting attrGet _ = getEventSettingSendEvent attrSet _ = setEventSettingSendEvent attrConstruct = undefined attrClear _ = undefined eventSetting_sendEvent :: AttrLabelProxy "sendEvent" eventSetting_sendEvent = AttrLabelProxy #endif {- | Get the value of the “@action@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' eventSetting #action @ -} getEventSettingAction :: MonadIO m => EventSetting -> m Gdk.Enums.SettingAction getEventSettingAction s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 20) :: IO CUInt let val' = (toEnum . fromIntegral) val return val' {- | Set the value of the “@action@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' eventSetting [ #action 'Data.GI.Base.Attributes.:=' value ] @ -} setEventSettingAction :: MonadIO m => EventSetting -> Gdk.Enums.SettingAction -> m () setEventSettingAction s val = liftIO $ withManagedPtr s $ \ptr -> do let val' = (fromIntegral . fromEnum) val poke (ptr `plusPtr` 20) (val' :: CUInt) #if ENABLE_OVERLOADING data EventSettingActionFieldInfo instance AttrInfo EventSettingActionFieldInfo where type AttrAllowedOps EventSettingActionFieldInfo = '[ 'AttrSet, 'AttrGet] type AttrSetTypeConstraint EventSettingActionFieldInfo = (~) Gdk.Enums.SettingAction type AttrBaseTypeConstraint EventSettingActionFieldInfo = (~) EventSetting type AttrGetType EventSettingActionFieldInfo = Gdk.Enums.SettingAction type AttrLabel EventSettingActionFieldInfo = "action" type AttrOrigin EventSettingActionFieldInfo = EventSetting attrGet _ = getEventSettingAction attrSet _ = setEventSettingAction attrConstruct = undefined attrClear _ = undefined eventSetting_action :: AttrLabelProxy "action" eventSetting_action = AttrLabelProxy #endif {- | Get the value of the “@name@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' eventSetting #name @ -} getEventSettingName :: MonadIO m => EventSetting -> m (Maybe T.Text) getEventSettingName s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 24) :: IO CString result <- SP.convertIfNonNull val $ \val' -> do val'' <- cstringToText val' return val'' return result {- | Set the value of the “@name@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' eventSetting [ #name 'Data.GI.Base.Attributes.:=' value ] @ -} setEventSettingName :: MonadIO m => EventSetting -> CString -> m () setEventSettingName s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 24) (val :: CString) {- | Set the value of the “@name@” field to `Nothing`. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.clear' #name @ -} clearEventSettingName :: MonadIO m => EventSetting -> m () clearEventSettingName s = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 24) (FP.nullPtr :: CString) #if ENABLE_OVERLOADING 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" type AttrOrigin EventSettingNameFieldInfo = EventSetting attrGet _ = getEventSettingName attrSet _ = setEventSettingName attrConstruct = undefined attrClear _ = clearEventSettingName eventSetting_name :: AttrLabelProxy "name" eventSetting_name = AttrLabelProxy #endif #if ENABLE_OVERLOADING instance O.HasAttributeList EventSetting type instance O.AttributeList EventSetting = EventSettingAttributeList type EventSettingAttributeList = ('[ '("type", EventSettingTypeFieldInfo), '("window", EventSettingWindowFieldInfo), '("sendEvent", EventSettingSendEventFieldInfo), '("action", EventSettingActionFieldInfo), '("name", EventSettingNameFieldInfo)] :: [(Symbol, *)]) #endif #if ENABLE_OVERLOADING type family ResolveEventSettingMethod (t :: Symbol) (o :: *) :: * where ResolveEventSettingMethod l o = O.MethodResolutionFailed l o instance (info ~ ResolveEventSettingMethod t EventSetting, O.MethodInfo info EventSetting p) => OL.IsLabel t (EventSetting -> 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