gi-gtk-0.3.18.15: GI/Gtk/Structs/ToggleActionEntry.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)
#GtkToggleActionEntry structs are used with
gtk_action_group_add_toggle_actions() to construct toggle actions.
-}
module GI.Gtk.Structs.ToggleActionEntry
(
-- * Exported types
ToggleActionEntry(..) ,
newZeroToggleActionEntry ,
noToggleActionEntry ,
-- * Properties
-- ** Accelerator
toggleActionEntryAccelerator ,
toggleActionEntryClearAccelerator ,
toggleActionEntryReadAccelerator ,
toggleActionEntryWriteAccelerator ,
-- ** IsActive
toggleActionEntryIsActive ,
toggleActionEntryReadIsActive ,
toggleActionEntryWriteIsActive ,
-- ** Label
toggleActionEntryClearLabel ,
toggleActionEntryLabel ,
toggleActionEntryReadLabel ,
toggleActionEntryWriteLabel ,
-- ** Name
toggleActionEntryClearName ,
toggleActionEntryName ,
toggleActionEntryReadName ,
toggleActionEntryWriteName ,
-- ** StockId
toggleActionEntryClearStockId ,
toggleActionEntryReadStockId ,
toggleActionEntryStockId ,
toggleActionEntryWriteStockId ,
-- ** Tooltip
toggleActionEntryClearTooltip ,
toggleActionEntryReadTooltip ,
toggleActionEntryTooltip ,
toggleActionEntryWriteTooltip ,
) 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 ToggleActionEntry = ToggleActionEntry (ForeignPtr ToggleActionEntry)
instance WrappedPtr ToggleActionEntry where
wrappedPtrCalloc = callocBytes 56
wrappedPtrCopy = copyPtr 56
wrappedPtrFree = Just ptr_to_g_free
-- | Construct a `ToggleActionEntry` struct initialized to zero.
newZeroToggleActionEntry :: MonadIO m => m ToggleActionEntry
newZeroToggleActionEntry = liftIO $ wrappedPtrCalloc >>= wrapPtr ToggleActionEntry
instance tag ~ 'AttrSet => Constructible ToggleActionEntry tag where
new _ attrs = do
o <- newZeroToggleActionEntry
GI.Attributes.set o attrs
return o
noToggleActionEntry :: Maybe ToggleActionEntry
noToggleActionEntry = Nothing
toggleActionEntryReadName :: MonadIO m => ToggleActionEntry -> m (Maybe T.Text)
toggleActionEntryReadName s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO CString
result <- convertIfNonNull val $ \val' -> do
val'' <- cstringToText val'
return val''
return result
toggleActionEntryWriteName :: MonadIO m => ToggleActionEntry -> CString -> m ()
toggleActionEntryWriteName s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 0) (val :: CString)
toggleActionEntryClearName :: MonadIO m => ToggleActionEntry -> m ()
toggleActionEntryClearName s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 0) (nullPtr :: CString)
data ToggleActionEntryNameFieldInfo
instance AttrInfo ToggleActionEntryNameFieldInfo where
type AttrAllowedOps ToggleActionEntryNameFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint ToggleActionEntryNameFieldInfo = (~) CString
type AttrBaseTypeConstraint ToggleActionEntryNameFieldInfo = (~) ToggleActionEntry
type AttrGetType ToggleActionEntryNameFieldInfo = Maybe T.Text
type AttrLabel ToggleActionEntryNameFieldInfo = "name"
attrGet _ = toggleActionEntryReadName
attrSet _ = toggleActionEntryWriteName
attrConstruct = undefined
attrClear _ = toggleActionEntryClearName
toggleActionEntryName :: AttrLabelProxy "name"
toggleActionEntryName = AttrLabelProxy
toggleActionEntryReadStockId :: MonadIO m => ToggleActionEntry -> m (Maybe T.Text)
toggleActionEntryReadStockId s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 8) :: IO CString
result <- convertIfNonNull val $ \val' -> do
val'' <- cstringToText val'
return val''
return result
toggleActionEntryWriteStockId :: MonadIO m => ToggleActionEntry -> CString -> m ()
toggleActionEntryWriteStockId s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 8) (val :: CString)
toggleActionEntryClearStockId :: MonadIO m => ToggleActionEntry -> m ()
toggleActionEntryClearStockId s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 8) (nullPtr :: CString)
data ToggleActionEntryStockIdFieldInfo
instance AttrInfo ToggleActionEntryStockIdFieldInfo where
type AttrAllowedOps ToggleActionEntryStockIdFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint ToggleActionEntryStockIdFieldInfo = (~) CString
type AttrBaseTypeConstraint ToggleActionEntryStockIdFieldInfo = (~) ToggleActionEntry
type AttrGetType ToggleActionEntryStockIdFieldInfo = Maybe T.Text
type AttrLabel ToggleActionEntryStockIdFieldInfo = "stock_id"
attrGet _ = toggleActionEntryReadStockId
attrSet _ = toggleActionEntryWriteStockId
attrConstruct = undefined
attrClear _ = toggleActionEntryClearStockId
toggleActionEntryStockId :: AttrLabelProxy "stockId"
toggleActionEntryStockId = AttrLabelProxy
toggleActionEntryReadLabel :: MonadIO m => ToggleActionEntry -> m (Maybe T.Text)
toggleActionEntryReadLabel s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 16) :: IO CString
result <- convertIfNonNull val $ \val' -> do
val'' <- cstringToText val'
return val''
return result
toggleActionEntryWriteLabel :: MonadIO m => ToggleActionEntry -> CString -> m ()
toggleActionEntryWriteLabel s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 16) (val :: CString)
toggleActionEntryClearLabel :: MonadIO m => ToggleActionEntry -> m ()
toggleActionEntryClearLabel s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 16) (nullPtr :: CString)
data ToggleActionEntryLabelFieldInfo
instance AttrInfo ToggleActionEntryLabelFieldInfo where
type AttrAllowedOps ToggleActionEntryLabelFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint ToggleActionEntryLabelFieldInfo = (~) CString
type AttrBaseTypeConstraint ToggleActionEntryLabelFieldInfo = (~) ToggleActionEntry
type AttrGetType ToggleActionEntryLabelFieldInfo = Maybe T.Text
type AttrLabel ToggleActionEntryLabelFieldInfo = "label"
attrGet _ = toggleActionEntryReadLabel
attrSet _ = toggleActionEntryWriteLabel
attrConstruct = undefined
attrClear _ = toggleActionEntryClearLabel
toggleActionEntryLabel :: AttrLabelProxy "label"
toggleActionEntryLabel = AttrLabelProxy
toggleActionEntryReadAccelerator :: MonadIO m => ToggleActionEntry -> m (Maybe T.Text)
toggleActionEntryReadAccelerator 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
toggleActionEntryWriteAccelerator :: MonadIO m => ToggleActionEntry -> CString -> m ()
toggleActionEntryWriteAccelerator s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 24) (val :: CString)
toggleActionEntryClearAccelerator :: MonadIO m => ToggleActionEntry -> m ()
toggleActionEntryClearAccelerator s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 24) (nullPtr :: CString)
data ToggleActionEntryAcceleratorFieldInfo
instance AttrInfo ToggleActionEntryAcceleratorFieldInfo where
type AttrAllowedOps ToggleActionEntryAcceleratorFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint ToggleActionEntryAcceleratorFieldInfo = (~) CString
type AttrBaseTypeConstraint ToggleActionEntryAcceleratorFieldInfo = (~) ToggleActionEntry
type AttrGetType ToggleActionEntryAcceleratorFieldInfo = Maybe T.Text
type AttrLabel ToggleActionEntryAcceleratorFieldInfo = "accelerator"
attrGet _ = toggleActionEntryReadAccelerator
attrSet _ = toggleActionEntryWriteAccelerator
attrConstruct = undefined
attrClear _ = toggleActionEntryClearAccelerator
toggleActionEntryAccelerator :: AttrLabelProxy "accelerator"
toggleActionEntryAccelerator = AttrLabelProxy
toggleActionEntryReadTooltip :: MonadIO m => ToggleActionEntry -> m (Maybe T.Text)
toggleActionEntryReadTooltip s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 32) :: IO CString
result <- convertIfNonNull val $ \val' -> do
val'' <- cstringToText val'
return val''
return result
toggleActionEntryWriteTooltip :: MonadIO m => ToggleActionEntry -> CString -> m ()
toggleActionEntryWriteTooltip s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 32) (val :: CString)
toggleActionEntryClearTooltip :: MonadIO m => ToggleActionEntry -> m ()
toggleActionEntryClearTooltip s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 32) (nullPtr :: CString)
data ToggleActionEntryTooltipFieldInfo
instance AttrInfo ToggleActionEntryTooltipFieldInfo where
type AttrAllowedOps ToggleActionEntryTooltipFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint ToggleActionEntryTooltipFieldInfo = (~) CString
type AttrBaseTypeConstraint ToggleActionEntryTooltipFieldInfo = (~) ToggleActionEntry
type AttrGetType ToggleActionEntryTooltipFieldInfo = Maybe T.Text
type AttrLabel ToggleActionEntryTooltipFieldInfo = "tooltip"
attrGet _ = toggleActionEntryReadTooltip
attrSet _ = toggleActionEntryWriteTooltip
attrConstruct = undefined
attrClear _ = toggleActionEntryClearTooltip
toggleActionEntryTooltip :: AttrLabelProxy "tooltip"
toggleActionEntryTooltip = AttrLabelProxy
-- XXX Skipped attribute for "ToggleActionEntry:callback" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
toggleActionEntryReadIsActive :: MonadIO m => ToggleActionEntry -> m Bool
toggleActionEntryReadIsActive s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 48) :: IO CInt
let val' = (/= 0) val
return val'
toggleActionEntryWriteIsActive :: MonadIO m => ToggleActionEntry -> Bool -> m ()
toggleActionEntryWriteIsActive s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = (fromIntegral . fromEnum) val
poke (ptr `plusPtr` 48) (val' :: CInt)
data ToggleActionEntryIsActiveFieldInfo
instance AttrInfo ToggleActionEntryIsActiveFieldInfo where
type AttrAllowedOps ToggleActionEntryIsActiveFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint ToggleActionEntryIsActiveFieldInfo = (~) Bool
type AttrBaseTypeConstraint ToggleActionEntryIsActiveFieldInfo = (~) ToggleActionEntry
type AttrGetType ToggleActionEntryIsActiveFieldInfo = Bool
type AttrLabel ToggleActionEntryIsActiveFieldInfo = "is_active"
attrGet _ = toggleActionEntryReadIsActive
attrSet _ = toggleActionEntryWriteIsActive
attrConstruct = undefined
attrClear _ = undefined
toggleActionEntryIsActive :: AttrLabelProxy "isActive"
toggleActionEntryIsActive = AttrLabelProxy
type instance AttributeList ToggleActionEntry = ToggleActionEntryAttributeList
type ToggleActionEntryAttributeList = ('[ '("name", ToggleActionEntryNameFieldInfo), '("stockId", ToggleActionEntryStockIdFieldInfo), '("label", ToggleActionEntryLabelFieldInfo), '("accelerator", ToggleActionEntryAcceleratorFieldInfo), '("tooltip", ToggleActionEntryTooltipFieldInfo), '("isActive", ToggleActionEntryIsActiveFieldInfo)] :: [(Symbol, *)])
type family ResolveToggleActionEntryMethod (t :: Symbol) (o :: *) :: * where
ResolveToggleActionEntryMethod l o = MethodResolutionFailed l o
instance (info ~ ResolveToggleActionEntryMethod t ToggleActionEntry, MethodInfo info ToggleActionEntry p) => IsLabelProxy t (ToggleActionEntry -> p) where
fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveToggleActionEntryMethod t ToggleActionEntry, MethodInfo info ToggleActionEntry p) => IsLabel t (ToggleActionEntry -> p) where
fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif