gi-pango-0.1.38.14: GI/Pango/Structs/LogAttr.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)
The #PangoLogAttr structure stores information
about the attributes of a single character.
-}
module GI.Pango.Structs.LogAttr
(
-- * Exported types
LogAttr(..) ,
newZeroLogAttr ,
noLogAttr ,
-- * Properties
-- ** BackspaceDeletesCharacter
logAttrBackspaceDeletesCharacter ,
logAttrReadBackspaceDeletesCharacter ,
logAttrWriteBackspaceDeletesCharacter ,
-- ** IsCharBreak
logAttrIsCharBreak ,
logAttrReadIsCharBreak ,
logAttrWriteIsCharBreak ,
-- ** IsCursorPosition
logAttrIsCursorPosition ,
logAttrReadIsCursorPosition ,
logAttrWriteIsCursorPosition ,
-- ** IsExpandableSpace
logAttrIsExpandableSpace ,
logAttrReadIsExpandableSpace ,
logAttrWriteIsExpandableSpace ,
-- ** IsLineBreak
logAttrIsLineBreak ,
logAttrReadIsLineBreak ,
logAttrWriteIsLineBreak ,
-- ** IsMandatoryBreak
logAttrIsMandatoryBreak ,
logAttrReadIsMandatoryBreak ,
logAttrWriteIsMandatoryBreak ,
-- ** IsSentenceBoundary
logAttrIsSentenceBoundary ,
logAttrReadIsSentenceBoundary ,
logAttrWriteIsSentenceBoundary ,
-- ** IsSentenceEnd
logAttrIsSentenceEnd ,
logAttrReadIsSentenceEnd ,
logAttrWriteIsSentenceEnd ,
-- ** IsSentenceStart
logAttrIsSentenceStart ,
logAttrReadIsSentenceStart ,
logAttrWriteIsSentenceStart ,
-- ** IsWhite
logAttrIsWhite ,
logAttrReadIsWhite ,
logAttrWriteIsWhite ,
-- ** IsWordBoundary
logAttrIsWordBoundary ,
logAttrReadIsWordBoundary ,
logAttrWriteIsWordBoundary ,
-- ** IsWordEnd
logAttrIsWordEnd ,
logAttrReadIsWordEnd ,
logAttrWriteIsWordEnd ,
-- ** IsWordStart
logAttrIsWordStart ,
logAttrReadIsWordStart ,
logAttrWriteIsWordStart ,
) 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.Pango.Types
import GI.Pango.Callbacks
newtype LogAttr = LogAttr (ForeignPtr LogAttr)
-- | Construct a `LogAttr` struct initialized to zero.
newZeroLogAttr :: MonadIO m => m LogAttr
newZeroLogAttr = liftIO $ callocBytes 52 >>= wrapPtr LogAttr
instance tag ~ 'AttrSet => Constructible LogAttr tag where
new _ attrs = do
o <- newZeroLogAttr
GI.Attributes.set o attrs
return o
noLogAttr :: Maybe LogAttr
noLogAttr = Nothing
logAttrReadIsLineBreak :: MonadIO m => LogAttr -> m Word32
logAttrReadIsLineBreak s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO Word32
return val
logAttrWriteIsLineBreak :: MonadIO m => LogAttr -> Word32 -> m ()
logAttrWriteIsLineBreak s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 0) (val :: Word32)
data LogAttrIsLineBreakFieldInfo
instance AttrInfo LogAttrIsLineBreakFieldInfo where
type AttrAllowedOps LogAttrIsLineBreakFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint LogAttrIsLineBreakFieldInfo = (~) Word32
type AttrBaseTypeConstraint LogAttrIsLineBreakFieldInfo = (~) LogAttr
type AttrGetType LogAttrIsLineBreakFieldInfo = Word32
type AttrLabel LogAttrIsLineBreakFieldInfo = "is_line_break"
attrGet _ = logAttrReadIsLineBreak
attrSet _ = logAttrWriteIsLineBreak
attrConstruct = undefined
attrClear _ = undefined
logAttrIsLineBreak :: AttrLabelProxy "isLineBreak"
logAttrIsLineBreak = AttrLabelProxy
logAttrReadIsMandatoryBreak :: MonadIO m => LogAttr -> m Word32
logAttrReadIsMandatoryBreak s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 4) :: IO Word32
return val
logAttrWriteIsMandatoryBreak :: MonadIO m => LogAttr -> Word32 -> m ()
logAttrWriteIsMandatoryBreak s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 4) (val :: Word32)
data LogAttrIsMandatoryBreakFieldInfo
instance AttrInfo LogAttrIsMandatoryBreakFieldInfo where
type AttrAllowedOps LogAttrIsMandatoryBreakFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint LogAttrIsMandatoryBreakFieldInfo = (~) Word32
type AttrBaseTypeConstraint LogAttrIsMandatoryBreakFieldInfo = (~) LogAttr
type AttrGetType LogAttrIsMandatoryBreakFieldInfo = Word32
type AttrLabel LogAttrIsMandatoryBreakFieldInfo = "is_mandatory_break"
attrGet _ = logAttrReadIsMandatoryBreak
attrSet _ = logAttrWriteIsMandatoryBreak
attrConstruct = undefined
attrClear _ = undefined
logAttrIsMandatoryBreak :: AttrLabelProxy "isMandatoryBreak"
logAttrIsMandatoryBreak = AttrLabelProxy
logAttrReadIsCharBreak :: MonadIO m => LogAttr -> m Word32
logAttrReadIsCharBreak s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 8) :: IO Word32
return val
logAttrWriteIsCharBreak :: MonadIO m => LogAttr -> Word32 -> m ()
logAttrWriteIsCharBreak s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 8) (val :: Word32)
data LogAttrIsCharBreakFieldInfo
instance AttrInfo LogAttrIsCharBreakFieldInfo where
type AttrAllowedOps LogAttrIsCharBreakFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint LogAttrIsCharBreakFieldInfo = (~) Word32
type AttrBaseTypeConstraint LogAttrIsCharBreakFieldInfo = (~) LogAttr
type AttrGetType LogAttrIsCharBreakFieldInfo = Word32
type AttrLabel LogAttrIsCharBreakFieldInfo = "is_char_break"
attrGet _ = logAttrReadIsCharBreak
attrSet _ = logAttrWriteIsCharBreak
attrConstruct = undefined
attrClear _ = undefined
logAttrIsCharBreak :: AttrLabelProxy "isCharBreak"
logAttrIsCharBreak = AttrLabelProxy
logAttrReadIsWhite :: MonadIO m => LogAttr -> m Word32
logAttrReadIsWhite s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 12) :: IO Word32
return val
logAttrWriteIsWhite :: MonadIO m => LogAttr -> Word32 -> m ()
logAttrWriteIsWhite s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 12) (val :: Word32)
data LogAttrIsWhiteFieldInfo
instance AttrInfo LogAttrIsWhiteFieldInfo where
type AttrAllowedOps LogAttrIsWhiteFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint LogAttrIsWhiteFieldInfo = (~) Word32
type AttrBaseTypeConstraint LogAttrIsWhiteFieldInfo = (~) LogAttr
type AttrGetType LogAttrIsWhiteFieldInfo = Word32
type AttrLabel LogAttrIsWhiteFieldInfo = "is_white"
attrGet _ = logAttrReadIsWhite
attrSet _ = logAttrWriteIsWhite
attrConstruct = undefined
attrClear _ = undefined
logAttrIsWhite :: AttrLabelProxy "isWhite"
logAttrIsWhite = AttrLabelProxy
logAttrReadIsCursorPosition :: MonadIO m => LogAttr -> m Word32
logAttrReadIsCursorPosition s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 16) :: IO Word32
return val
logAttrWriteIsCursorPosition :: MonadIO m => LogAttr -> Word32 -> m ()
logAttrWriteIsCursorPosition s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 16) (val :: Word32)
data LogAttrIsCursorPositionFieldInfo
instance AttrInfo LogAttrIsCursorPositionFieldInfo where
type AttrAllowedOps LogAttrIsCursorPositionFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint LogAttrIsCursorPositionFieldInfo = (~) Word32
type AttrBaseTypeConstraint LogAttrIsCursorPositionFieldInfo = (~) LogAttr
type AttrGetType LogAttrIsCursorPositionFieldInfo = Word32
type AttrLabel LogAttrIsCursorPositionFieldInfo = "is_cursor_position"
attrGet _ = logAttrReadIsCursorPosition
attrSet _ = logAttrWriteIsCursorPosition
attrConstruct = undefined
attrClear _ = undefined
logAttrIsCursorPosition :: AttrLabelProxy "isCursorPosition"
logAttrIsCursorPosition = AttrLabelProxy
logAttrReadIsWordStart :: MonadIO m => LogAttr -> m Word32
logAttrReadIsWordStart s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 20) :: IO Word32
return val
logAttrWriteIsWordStart :: MonadIO m => LogAttr -> Word32 -> m ()
logAttrWriteIsWordStart s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 20) (val :: Word32)
data LogAttrIsWordStartFieldInfo
instance AttrInfo LogAttrIsWordStartFieldInfo where
type AttrAllowedOps LogAttrIsWordStartFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint LogAttrIsWordStartFieldInfo = (~) Word32
type AttrBaseTypeConstraint LogAttrIsWordStartFieldInfo = (~) LogAttr
type AttrGetType LogAttrIsWordStartFieldInfo = Word32
type AttrLabel LogAttrIsWordStartFieldInfo = "is_word_start"
attrGet _ = logAttrReadIsWordStart
attrSet _ = logAttrWriteIsWordStart
attrConstruct = undefined
attrClear _ = undefined
logAttrIsWordStart :: AttrLabelProxy "isWordStart"
logAttrIsWordStart = AttrLabelProxy
logAttrReadIsWordEnd :: MonadIO m => LogAttr -> m Word32
logAttrReadIsWordEnd s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 24) :: IO Word32
return val
logAttrWriteIsWordEnd :: MonadIO m => LogAttr -> Word32 -> m ()
logAttrWriteIsWordEnd s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 24) (val :: Word32)
data LogAttrIsWordEndFieldInfo
instance AttrInfo LogAttrIsWordEndFieldInfo where
type AttrAllowedOps LogAttrIsWordEndFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint LogAttrIsWordEndFieldInfo = (~) Word32
type AttrBaseTypeConstraint LogAttrIsWordEndFieldInfo = (~) LogAttr
type AttrGetType LogAttrIsWordEndFieldInfo = Word32
type AttrLabel LogAttrIsWordEndFieldInfo = "is_word_end"
attrGet _ = logAttrReadIsWordEnd
attrSet _ = logAttrWriteIsWordEnd
attrConstruct = undefined
attrClear _ = undefined
logAttrIsWordEnd :: AttrLabelProxy "isWordEnd"
logAttrIsWordEnd = AttrLabelProxy
logAttrReadIsSentenceBoundary :: MonadIO m => LogAttr -> m Word32
logAttrReadIsSentenceBoundary s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 28) :: IO Word32
return val
logAttrWriteIsSentenceBoundary :: MonadIO m => LogAttr -> Word32 -> m ()
logAttrWriteIsSentenceBoundary s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 28) (val :: Word32)
data LogAttrIsSentenceBoundaryFieldInfo
instance AttrInfo LogAttrIsSentenceBoundaryFieldInfo where
type AttrAllowedOps LogAttrIsSentenceBoundaryFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint LogAttrIsSentenceBoundaryFieldInfo = (~) Word32
type AttrBaseTypeConstraint LogAttrIsSentenceBoundaryFieldInfo = (~) LogAttr
type AttrGetType LogAttrIsSentenceBoundaryFieldInfo = Word32
type AttrLabel LogAttrIsSentenceBoundaryFieldInfo = "is_sentence_boundary"
attrGet _ = logAttrReadIsSentenceBoundary
attrSet _ = logAttrWriteIsSentenceBoundary
attrConstruct = undefined
attrClear _ = undefined
logAttrIsSentenceBoundary :: AttrLabelProxy "isSentenceBoundary"
logAttrIsSentenceBoundary = AttrLabelProxy
logAttrReadIsSentenceStart :: MonadIO m => LogAttr -> m Word32
logAttrReadIsSentenceStart s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 32) :: IO Word32
return val
logAttrWriteIsSentenceStart :: MonadIO m => LogAttr -> Word32 -> m ()
logAttrWriteIsSentenceStart s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 32) (val :: Word32)
data LogAttrIsSentenceStartFieldInfo
instance AttrInfo LogAttrIsSentenceStartFieldInfo where
type AttrAllowedOps LogAttrIsSentenceStartFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint LogAttrIsSentenceStartFieldInfo = (~) Word32
type AttrBaseTypeConstraint LogAttrIsSentenceStartFieldInfo = (~) LogAttr
type AttrGetType LogAttrIsSentenceStartFieldInfo = Word32
type AttrLabel LogAttrIsSentenceStartFieldInfo = "is_sentence_start"
attrGet _ = logAttrReadIsSentenceStart
attrSet _ = logAttrWriteIsSentenceStart
attrConstruct = undefined
attrClear _ = undefined
logAttrIsSentenceStart :: AttrLabelProxy "isSentenceStart"
logAttrIsSentenceStart = AttrLabelProxy
logAttrReadIsSentenceEnd :: MonadIO m => LogAttr -> m Word32
logAttrReadIsSentenceEnd s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 36) :: IO Word32
return val
logAttrWriteIsSentenceEnd :: MonadIO m => LogAttr -> Word32 -> m ()
logAttrWriteIsSentenceEnd s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 36) (val :: Word32)
data LogAttrIsSentenceEndFieldInfo
instance AttrInfo LogAttrIsSentenceEndFieldInfo where
type AttrAllowedOps LogAttrIsSentenceEndFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint LogAttrIsSentenceEndFieldInfo = (~) Word32
type AttrBaseTypeConstraint LogAttrIsSentenceEndFieldInfo = (~) LogAttr
type AttrGetType LogAttrIsSentenceEndFieldInfo = Word32
type AttrLabel LogAttrIsSentenceEndFieldInfo = "is_sentence_end"
attrGet _ = logAttrReadIsSentenceEnd
attrSet _ = logAttrWriteIsSentenceEnd
attrConstruct = undefined
attrClear _ = undefined
logAttrIsSentenceEnd :: AttrLabelProxy "isSentenceEnd"
logAttrIsSentenceEnd = AttrLabelProxy
logAttrReadBackspaceDeletesCharacter :: MonadIO m => LogAttr -> m Word32
logAttrReadBackspaceDeletesCharacter s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 40) :: IO Word32
return val
logAttrWriteBackspaceDeletesCharacter :: MonadIO m => LogAttr -> Word32 -> m ()
logAttrWriteBackspaceDeletesCharacter s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 40) (val :: Word32)
data LogAttrBackspaceDeletesCharacterFieldInfo
instance AttrInfo LogAttrBackspaceDeletesCharacterFieldInfo where
type AttrAllowedOps LogAttrBackspaceDeletesCharacterFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint LogAttrBackspaceDeletesCharacterFieldInfo = (~) Word32
type AttrBaseTypeConstraint LogAttrBackspaceDeletesCharacterFieldInfo = (~) LogAttr
type AttrGetType LogAttrBackspaceDeletesCharacterFieldInfo = Word32
type AttrLabel LogAttrBackspaceDeletesCharacterFieldInfo = "backspace_deletes_character"
attrGet _ = logAttrReadBackspaceDeletesCharacter
attrSet _ = logAttrWriteBackspaceDeletesCharacter
attrConstruct = undefined
attrClear _ = undefined
logAttrBackspaceDeletesCharacter :: AttrLabelProxy "backspaceDeletesCharacter"
logAttrBackspaceDeletesCharacter = AttrLabelProxy
logAttrReadIsExpandableSpace :: MonadIO m => LogAttr -> m Word32
logAttrReadIsExpandableSpace s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 44) :: IO Word32
return val
logAttrWriteIsExpandableSpace :: MonadIO m => LogAttr -> Word32 -> m ()
logAttrWriteIsExpandableSpace s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 44) (val :: Word32)
data LogAttrIsExpandableSpaceFieldInfo
instance AttrInfo LogAttrIsExpandableSpaceFieldInfo where
type AttrAllowedOps LogAttrIsExpandableSpaceFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint LogAttrIsExpandableSpaceFieldInfo = (~) Word32
type AttrBaseTypeConstraint LogAttrIsExpandableSpaceFieldInfo = (~) LogAttr
type AttrGetType LogAttrIsExpandableSpaceFieldInfo = Word32
type AttrLabel LogAttrIsExpandableSpaceFieldInfo = "is_expandable_space"
attrGet _ = logAttrReadIsExpandableSpace
attrSet _ = logAttrWriteIsExpandableSpace
attrConstruct = undefined
attrClear _ = undefined
logAttrIsExpandableSpace :: AttrLabelProxy "isExpandableSpace"
logAttrIsExpandableSpace = AttrLabelProxy
logAttrReadIsWordBoundary :: MonadIO m => LogAttr -> m Word32
logAttrReadIsWordBoundary s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 48) :: IO Word32
return val
logAttrWriteIsWordBoundary :: MonadIO m => LogAttr -> Word32 -> m ()
logAttrWriteIsWordBoundary s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 48) (val :: Word32)
data LogAttrIsWordBoundaryFieldInfo
instance AttrInfo LogAttrIsWordBoundaryFieldInfo where
type AttrAllowedOps LogAttrIsWordBoundaryFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint LogAttrIsWordBoundaryFieldInfo = (~) Word32
type AttrBaseTypeConstraint LogAttrIsWordBoundaryFieldInfo = (~) LogAttr
type AttrGetType LogAttrIsWordBoundaryFieldInfo = Word32
type AttrLabel LogAttrIsWordBoundaryFieldInfo = "is_word_boundary"
attrGet _ = logAttrReadIsWordBoundary
attrSet _ = logAttrWriteIsWordBoundary
attrConstruct = undefined
attrClear _ = undefined
logAttrIsWordBoundary :: AttrLabelProxy "isWordBoundary"
logAttrIsWordBoundary = AttrLabelProxy
type instance AttributeList LogAttr = LogAttrAttributeList
type LogAttrAttributeList = ('[ '("isLineBreak", LogAttrIsLineBreakFieldInfo), '("isMandatoryBreak", LogAttrIsMandatoryBreakFieldInfo), '("isCharBreak", LogAttrIsCharBreakFieldInfo), '("isWhite", LogAttrIsWhiteFieldInfo), '("isCursorPosition", LogAttrIsCursorPositionFieldInfo), '("isWordStart", LogAttrIsWordStartFieldInfo), '("isWordEnd", LogAttrIsWordEndFieldInfo), '("isSentenceBoundary", LogAttrIsSentenceBoundaryFieldInfo), '("isSentenceStart", LogAttrIsSentenceStartFieldInfo), '("isSentenceEnd", LogAttrIsSentenceEndFieldInfo), '("backspaceDeletesCharacter", LogAttrBackspaceDeletesCharacterFieldInfo), '("isExpandableSpace", LogAttrIsExpandableSpaceFieldInfo), '("isWordBoundary", LogAttrIsWordBoundaryFieldInfo)] :: [(Symbol, *)])
type family ResolveLogAttrMethod (t :: Symbol) (o :: *) :: * where
ResolveLogAttrMethod l o = MethodResolutionFailed l o
instance (info ~ ResolveLogAttrMethod t LogAttr, MethodInfo info LogAttr p) => IsLabelProxy t (LogAttr -> p) where
fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveLogAttrMethod t LogAttr, MethodInfo info LogAttr p) => IsLabel t (LogAttr -> p) where
fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif