gi-gtk-0.3.18.15: GI/Gtk/Structs/AccelGroupEntry.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)
-}
module GI.Gtk.Structs.AccelGroupEntry
(
-- * Exported types
AccelGroupEntry(..) ,
newZeroAccelGroupEntry ,
noAccelGroupEntry ,
-- * Properties
-- ** AccelPathQuark
accelGroupEntryAccelPathQuark ,
accelGroupEntryReadAccelPathQuark ,
accelGroupEntryWriteAccelPathQuark ,
-- ** Closure
accelGroupEntryClearClosure ,
accelGroupEntryClosure ,
accelGroupEntryReadClosure ,
accelGroupEntryWriteClosure ,
-- ** Key
accelGroupEntryClearKey ,
accelGroupEntryKey ,
accelGroupEntryReadKey ,
accelGroupEntryWriteKey ,
) 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.Gtk.Types
import GI.Gtk.Callbacks
newtype AccelGroupEntry = AccelGroupEntry (ForeignPtr AccelGroupEntry)
instance WrappedPtr AccelGroupEntry where
wrappedPtrCalloc = callocBytes 32
wrappedPtrCopy = copyPtr 32
wrappedPtrFree = Just ptr_to_g_free
-- | Construct a `AccelGroupEntry` struct initialized to zero.
newZeroAccelGroupEntry :: MonadIO m => m AccelGroupEntry
newZeroAccelGroupEntry = liftIO $ wrappedPtrCalloc >>= wrapPtr AccelGroupEntry
instance tag ~ 'AttrSet => Constructible AccelGroupEntry tag where
new _ attrs = do
o <- newZeroAccelGroupEntry
GI.Attributes.set o attrs
return o
noAccelGroupEntry :: Maybe AccelGroupEntry
noAccelGroupEntry = Nothing
accelGroupEntryReadKey :: MonadIO m => AccelGroupEntry -> m (Maybe AccelKey)
accelGroupEntryReadKey s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO (Ptr AccelKey)
result <- convertIfNonNull val $ \val' -> do
val'' <- (newPtr AccelKey) val'
return val''
return result
accelGroupEntryWriteKey :: MonadIO m => AccelGroupEntry -> Ptr AccelKey -> m ()
accelGroupEntryWriteKey s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 0) (val :: Ptr AccelKey)
accelGroupEntryClearKey :: MonadIO m => AccelGroupEntry -> m ()
accelGroupEntryClearKey s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 0) (nullPtr :: Ptr AccelKey)
data AccelGroupEntryKeyFieldInfo
instance AttrInfo AccelGroupEntryKeyFieldInfo where
type AttrAllowedOps AccelGroupEntryKeyFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint AccelGroupEntryKeyFieldInfo = (~) (Ptr AccelKey)
type AttrBaseTypeConstraint AccelGroupEntryKeyFieldInfo = (~) AccelGroupEntry
type AttrGetType AccelGroupEntryKeyFieldInfo = Maybe AccelKey
type AttrLabel AccelGroupEntryKeyFieldInfo = "key"
attrGet _ = accelGroupEntryReadKey
attrSet _ = accelGroupEntryWriteKey
attrConstruct = undefined
attrClear _ = accelGroupEntryClearKey
accelGroupEntryKey :: AttrLabelProxy "key"
accelGroupEntryKey = AttrLabelProxy
accelGroupEntryReadClosure :: MonadIO m => AccelGroupEntry -> m (Maybe Closure)
accelGroupEntryReadClosure s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 16) :: IO (Ptr Closure)
result <- convertIfNonNull val $ \val' -> do
val'' <- (newBoxed Closure) val'
return val''
return result
accelGroupEntryWriteClosure :: MonadIO m => AccelGroupEntry -> Ptr Closure -> m ()
accelGroupEntryWriteClosure s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 16) (val :: Ptr Closure)
accelGroupEntryClearClosure :: MonadIO m => AccelGroupEntry -> m ()
accelGroupEntryClearClosure s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 16) (nullPtr :: Ptr Closure)
data AccelGroupEntryClosureFieldInfo
instance AttrInfo AccelGroupEntryClosureFieldInfo where
type AttrAllowedOps AccelGroupEntryClosureFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint AccelGroupEntryClosureFieldInfo = (~) (Ptr Closure)
type AttrBaseTypeConstraint AccelGroupEntryClosureFieldInfo = (~) AccelGroupEntry
type AttrGetType AccelGroupEntryClosureFieldInfo = Maybe Closure
type AttrLabel AccelGroupEntryClosureFieldInfo = "closure"
attrGet _ = accelGroupEntryReadClosure
attrSet _ = accelGroupEntryWriteClosure
attrConstruct = undefined
attrClear _ = accelGroupEntryClearClosure
accelGroupEntryClosure :: AttrLabelProxy "closure"
accelGroupEntryClosure = AttrLabelProxy
accelGroupEntryReadAccelPathQuark :: MonadIO m => AccelGroupEntry -> m Word32
accelGroupEntryReadAccelPathQuark s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 24) :: IO Word32
return val
accelGroupEntryWriteAccelPathQuark :: MonadIO m => AccelGroupEntry -> Word32 -> m ()
accelGroupEntryWriteAccelPathQuark s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 24) (val :: Word32)
data AccelGroupEntryAccelPathQuarkFieldInfo
instance AttrInfo AccelGroupEntryAccelPathQuarkFieldInfo where
type AttrAllowedOps AccelGroupEntryAccelPathQuarkFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint AccelGroupEntryAccelPathQuarkFieldInfo = (~) Word32
type AttrBaseTypeConstraint AccelGroupEntryAccelPathQuarkFieldInfo = (~) AccelGroupEntry
type AttrGetType AccelGroupEntryAccelPathQuarkFieldInfo = Word32
type AttrLabel AccelGroupEntryAccelPathQuarkFieldInfo = "accel_path_quark"
attrGet _ = accelGroupEntryReadAccelPathQuark
attrSet _ = accelGroupEntryWriteAccelPathQuark
attrConstruct = undefined
attrClear _ = undefined
accelGroupEntryAccelPathQuark :: AttrLabelProxy "accelPathQuark"
accelGroupEntryAccelPathQuark = AttrLabelProxy
type instance AttributeList AccelGroupEntry = AccelGroupEntryAttributeList
type AccelGroupEntryAttributeList = ('[ '("key", AccelGroupEntryKeyFieldInfo), '("closure", AccelGroupEntryClosureFieldInfo), '("accelPathQuark", AccelGroupEntryAccelPathQuarkFieldInfo)] :: [(Symbol, *)])
type family ResolveAccelGroupEntryMethod (t :: Symbol) (o :: *) :: * where
ResolveAccelGroupEntryMethod l o = MethodResolutionFailed l o
instance (info ~ ResolveAccelGroupEntryMethod t AccelGroupEntry, MethodInfo info AccelGroupEntry p) => IsLabelProxy t (AccelGroupEntry -> p) where
fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveAccelGroupEntryMethod t AccelGroupEntry, MethodInfo info AccelGroupEntry p) => IsLabel t (AccelGroupEntry -> p) where
fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif