{- |
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.Objects.TextTag
    ( 

-- * Exported types
    TextTag(..)                             ,
    TextTagK                                ,
    toTextTag                               ,
    noTextTag                               ,


 -- * Methods
-- ** textTagEvent
    textTagEvent                            ,


-- ** textTagGetPriority
    textTagGetPriority                      ,


-- ** textTagNew
    textTagNew                              ,


-- ** textTagSetPriority
    textTagSetPriority                      ,




 -- * Properties
-- ** AccumulativeMargin
    TextTagAccumulativeMarginPropertyInfo   ,
    constructTextTagAccumulativeMargin      ,
    getTextTagAccumulativeMargin            ,
    setTextTagAccumulativeMargin            ,


-- ** Background
    TextTagBackgroundPropertyInfo           ,
    constructTextTagBackground              ,
    setTextTagBackground                    ,


-- ** BackgroundFullHeight
    TextTagBackgroundFullHeightPropertyInfo ,
    constructTextTagBackgroundFullHeight    ,
    getTextTagBackgroundFullHeight          ,
    setTextTagBackgroundFullHeight          ,


-- ** BackgroundFullHeightSet
    TextTagBackgroundFullHeightSetPropertyInfo,
    constructTextTagBackgroundFullHeightSet ,
    getTextTagBackgroundFullHeightSet       ,
    setTextTagBackgroundFullHeightSet       ,


-- ** BackgroundGdk
    TextTagBackgroundGdkPropertyInfo        ,
    constructTextTagBackgroundGdk           ,
    getTextTagBackgroundGdk                 ,
    setTextTagBackgroundGdk                 ,


-- ** BackgroundRgba
    TextTagBackgroundRgbaPropertyInfo       ,
    constructTextTagBackgroundRgba          ,
    getTextTagBackgroundRgba                ,
    setTextTagBackgroundRgba                ,


-- ** BackgroundSet
    TextTagBackgroundSetPropertyInfo        ,
    constructTextTagBackgroundSet           ,
    getTextTagBackgroundSet                 ,
    setTextTagBackgroundSet                 ,


-- ** Direction
    TextTagDirectionPropertyInfo            ,
    constructTextTagDirection               ,
    getTextTagDirection                     ,
    setTextTagDirection                     ,


-- ** Editable
    TextTagEditablePropertyInfo             ,
    constructTextTagEditable                ,
    getTextTagEditable                      ,
    setTextTagEditable                      ,


-- ** EditableSet
    TextTagEditableSetPropertyInfo          ,
    constructTextTagEditableSet             ,
    getTextTagEditableSet                   ,
    setTextTagEditableSet                   ,


-- ** Fallback
    TextTagFallbackPropertyInfo             ,
    constructTextTagFallback                ,
    getTextTagFallback                      ,
    setTextTagFallback                      ,


-- ** FallbackSet
    TextTagFallbackSetPropertyInfo          ,
    constructTextTagFallbackSet             ,
    getTextTagFallbackSet                   ,
    setTextTagFallbackSet                   ,


-- ** Family
    TextTagFamilyPropertyInfo               ,
    constructTextTagFamily                  ,
    getTextTagFamily                        ,
    setTextTagFamily                        ,


-- ** FamilySet
    TextTagFamilySetPropertyInfo            ,
    constructTextTagFamilySet               ,
    getTextTagFamilySet                     ,
    setTextTagFamilySet                     ,


-- ** Font
    TextTagFontPropertyInfo                 ,
    constructTextTagFont                    ,
    getTextTagFont                          ,
    setTextTagFont                          ,


-- ** FontDesc
    TextTagFontDescPropertyInfo             ,
    constructTextTagFontDesc                ,
    getTextTagFontDesc                      ,
    setTextTagFontDesc                      ,


-- ** Foreground
    TextTagForegroundPropertyInfo           ,
    constructTextTagForeground              ,
    setTextTagForeground                    ,


-- ** ForegroundGdk
    TextTagForegroundGdkPropertyInfo        ,
    constructTextTagForegroundGdk           ,
    getTextTagForegroundGdk                 ,
    setTextTagForegroundGdk                 ,


-- ** ForegroundRgba
    TextTagForegroundRgbaPropertyInfo       ,
    constructTextTagForegroundRgba          ,
    getTextTagForegroundRgba                ,
    setTextTagForegroundRgba                ,


-- ** ForegroundSet
    TextTagForegroundSetPropertyInfo        ,
    constructTextTagForegroundSet           ,
    getTextTagForegroundSet                 ,
    setTextTagForegroundSet                 ,


-- ** Indent
    TextTagIndentPropertyInfo               ,
    constructTextTagIndent                  ,
    getTextTagIndent                        ,
    setTextTagIndent                        ,


-- ** IndentSet
    TextTagIndentSetPropertyInfo            ,
    constructTextTagIndentSet               ,
    getTextTagIndentSet                     ,
    setTextTagIndentSet                     ,


-- ** Invisible
    TextTagInvisiblePropertyInfo            ,
    constructTextTagInvisible               ,
    getTextTagInvisible                     ,
    setTextTagInvisible                     ,


-- ** InvisibleSet
    TextTagInvisibleSetPropertyInfo         ,
    constructTextTagInvisibleSet            ,
    getTextTagInvisibleSet                  ,
    setTextTagInvisibleSet                  ,


-- ** Justification
    TextTagJustificationPropertyInfo        ,
    constructTextTagJustification           ,
    getTextTagJustification                 ,
    setTextTagJustification                 ,


-- ** JustificationSet
    TextTagJustificationSetPropertyInfo     ,
    constructTextTagJustificationSet        ,
    getTextTagJustificationSet              ,
    setTextTagJustificationSet              ,


-- ** Language
    TextTagLanguagePropertyInfo             ,
    constructTextTagLanguage                ,
    getTextTagLanguage                      ,
    setTextTagLanguage                      ,


-- ** LanguageSet
    TextTagLanguageSetPropertyInfo          ,
    constructTextTagLanguageSet             ,
    getTextTagLanguageSet                   ,
    setTextTagLanguageSet                   ,


-- ** LeftMargin
    TextTagLeftMarginPropertyInfo           ,
    constructTextTagLeftMargin              ,
    getTextTagLeftMargin                    ,
    setTextTagLeftMargin                    ,


-- ** LeftMarginSet
    TextTagLeftMarginSetPropertyInfo        ,
    constructTextTagLeftMarginSet           ,
    getTextTagLeftMarginSet                 ,
    setTextTagLeftMarginSet                 ,


-- ** LetterSpacing
    TextTagLetterSpacingPropertyInfo        ,
    constructTextTagLetterSpacing           ,
    getTextTagLetterSpacing                 ,
    setTextTagLetterSpacing                 ,


-- ** LetterSpacingSet
    TextTagLetterSpacingSetPropertyInfo     ,
    constructTextTagLetterSpacingSet        ,
    getTextTagLetterSpacingSet              ,
    setTextTagLetterSpacingSet              ,


-- ** Name
    TextTagNamePropertyInfo                 ,
    constructTextTagName                    ,
    getTextTagName                          ,


-- ** ParagraphBackground
    TextTagParagraphBackgroundPropertyInfo  ,
    constructTextTagParagraphBackground     ,
    setTextTagParagraphBackground           ,


-- ** ParagraphBackgroundGdk
    TextTagParagraphBackgroundGdkPropertyInfo,
    constructTextTagParagraphBackgroundGdk  ,
    getTextTagParagraphBackgroundGdk        ,
    setTextTagParagraphBackgroundGdk        ,


-- ** ParagraphBackgroundRgba
    TextTagParagraphBackgroundRgbaPropertyInfo,
    constructTextTagParagraphBackgroundRgba ,
    getTextTagParagraphBackgroundRgba       ,
    setTextTagParagraphBackgroundRgba       ,


-- ** ParagraphBackgroundSet
    TextTagParagraphBackgroundSetPropertyInfo,
    constructTextTagParagraphBackgroundSet  ,
    getTextTagParagraphBackgroundSet        ,
    setTextTagParagraphBackgroundSet        ,


-- ** PixelsAboveLines
    TextTagPixelsAboveLinesPropertyInfo     ,
    constructTextTagPixelsAboveLines        ,
    getTextTagPixelsAboveLines              ,
    setTextTagPixelsAboveLines              ,


-- ** PixelsAboveLinesSet
    TextTagPixelsAboveLinesSetPropertyInfo  ,
    constructTextTagPixelsAboveLinesSet     ,
    getTextTagPixelsAboveLinesSet           ,
    setTextTagPixelsAboveLinesSet           ,


-- ** PixelsBelowLines
    TextTagPixelsBelowLinesPropertyInfo     ,
    constructTextTagPixelsBelowLines        ,
    getTextTagPixelsBelowLines              ,
    setTextTagPixelsBelowLines              ,


-- ** PixelsBelowLinesSet
    TextTagPixelsBelowLinesSetPropertyInfo  ,
    constructTextTagPixelsBelowLinesSet     ,
    getTextTagPixelsBelowLinesSet           ,
    setTextTagPixelsBelowLinesSet           ,


-- ** PixelsInsideWrap
    TextTagPixelsInsideWrapPropertyInfo     ,
    constructTextTagPixelsInsideWrap        ,
    getTextTagPixelsInsideWrap              ,
    setTextTagPixelsInsideWrap              ,


-- ** PixelsInsideWrapSet
    TextTagPixelsInsideWrapSetPropertyInfo  ,
    constructTextTagPixelsInsideWrapSet     ,
    getTextTagPixelsInsideWrapSet           ,
    setTextTagPixelsInsideWrapSet           ,


-- ** RightMargin
    TextTagRightMarginPropertyInfo          ,
    constructTextTagRightMargin             ,
    getTextTagRightMargin                   ,
    setTextTagRightMargin                   ,


-- ** RightMarginSet
    TextTagRightMarginSetPropertyInfo       ,
    constructTextTagRightMarginSet          ,
    getTextTagRightMarginSet                ,
    setTextTagRightMarginSet                ,


-- ** Rise
    TextTagRisePropertyInfo                 ,
    constructTextTagRise                    ,
    getTextTagRise                          ,
    setTextTagRise                          ,


-- ** RiseSet
    TextTagRiseSetPropertyInfo              ,
    constructTextTagRiseSet                 ,
    getTextTagRiseSet                       ,
    setTextTagRiseSet                       ,


-- ** Scale
    TextTagScalePropertyInfo                ,
    constructTextTagScale                   ,
    getTextTagScale                         ,
    setTextTagScale                         ,


-- ** ScaleSet
    TextTagScaleSetPropertyInfo             ,
    constructTextTagScaleSet                ,
    getTextTagScaleSet                      ,
    setTextTagScaleSet                      ,


-- ** Size
    TextTagSizePropertyInfo                 ,
    constructTextTagSize                    ,
    getTextTagSize                          ,
    setTextTagSize                          ,


-- ** SizePoints
    TextTagSizePointsPropertyInfo           ,
    constructTextTagSizePoints              ,
    getTextTagSizePoints                    ,
    setTextTagSizePoints                    ,


-- ** SizeSet
    TextTagSizeSetPropertyInfo              ,
    constructTextTagSizeSet                 ,
    getTextTagSizeSet                       ,
    setTextTagSizeSet                       ,


-- ** Stretch
    TextTagStretchPropertyInfo              ,
    constructTextTagStretch                 ,
    getTextTagStretch                       ,
    setTextTagStretch                       ,


-- ** StretchSet
    TextTagStretchSetPropertyInfo           ,
    constructTextTagStretchSet              ,
    getTextTagStretchSet                    ,
    setTextTagStretchSet                    ,


-- ** Strikethrough
    TextTagStrikethroughPropertyInfo        ,
    constructTextTagStrikethrough           ,
    getTextTagStrikethrough                 ,
    setTextTagStrikethrough                 ,


-- ** StrikethroughRgba
    TextTagStrikethroughRgbaPropertyInfo    ,
    constructTextTagStrikethroughRgba       ,
    getTextTagStrikethroughRgba             ,
    setTextTagStrikethroughRgba             ,


-- ** StrikethroughRgbaSet
    TextTagStrikethroughRgbaSetPropertyInfo ,
    constructTextTagStrikethroughRgbaSet    ,
    getTextTagStrikethroughRgbaSet          ,
    setTextTagStrikethroughRgbaSet          ,


-- ** StrikethroughSet
    TextTagStrikethroughSetPropertyInfo     ,
    constructTextTagStrikethroughSet        ,
    getTextTagStrikethroughSet              ,
    setTextTagStrikethroughSet              ,


-- ** Style
    TextTagStylePropertyInfo                ,
    constructTextTagStyle                   ,
    getTextTagStyle                         ,
    setTextTagStyle                         ,


-- ** StyleSet
    TextTagStyleSetPropertyInfo             ,
    constructTextTagStyleSet                ,
    getTextTagStyleSet                      ,
    setTextTagStyleSet                      ,


-- ** Tabs
    TextTagTabsPropertyInfo                 ,
    constructTextTagTabs                    ,
    getTextTagTabs                          ,
    setTextTagTabs                          ,


-- ** TabsSet
    TextTagTabsSetPropertyInfo              ,
    constructTextTagTabsSet                 ,
    getTextTagTabsSet                       ,
    setTextTagTabsSet                       ,


-- ** Underline
    TextTagUnderlinePropertyInfo            ,
    constructTextTagUnderline               ,
    getTextTagUnderline                     ,
    setTextTagUnderline                     ,


-- ** UnderlineRgba
    TextTagUnderlineRgbaPropertyInfo        ,
    constructTextTagUnderlineRgba           ,
    getTextTagUnderlineRgba                 ,
    setTextTagUnderlineRgba                 ,


-- ** UnderlineRgbaSet
    TextTagUnderlineRgbaSetPropertyInfo     ,
    constructTextTagUnderlineRgbaSet        ,
    getTextTagUnderlineRgbaSet              ,
    setTextTagUnderlineRgbaSet              ,


-- ** UnderlineSet
    TextTagUnderlineSetPropertyInfo         ,
    constructTextTagUnderlineSet            ,
    getTextTagUnderlineSet                  ,
    setTextTagUnderlineSet                  ,


-- ** Variant
    TextTagVariantPropertyInfo              ,
    constructTextTagVariant                 ,
    getTextTagVariant                       ,
    setTextTagVariant                       ,


-- ** VariantSet
    TextTagVariantSetPropertyInfo           ,
    constructTextTagVariantSet              ,
    getTextTagVariantSet                    ,
    setTextTagVariantSet                    ,


-- ** Weight
    TextTagWeightPropertyInfo               ,
    constructTextTagWeight                  ,
    getTextTagWeight                        ,
    setTextTagWeight                        ,


-- ** WeightSet
    TextTagWeightSetPropertyInfo            ,
    constructTextTagWeightSet               ,
    getTextTagWeightSet                     ,
    setTextTagWeightSet                     ,


-- ** WrapMode
    TextTagWrapModePropertyInfo             ,
    constructTextTagWrapMode                ,
    getTextTagWrapMode                      ,
    setTextTagWrapMode                      ,


-- ** WrapModeSet
    TextTagWrapModeSetPropertyInfo          ,
    constructTextTagWrapModeSet             ,
    getTextTagWrapModeSet                   ,
    setTextTagWrapModeSet                   ,




 -- * Signals
-- ** Event
    TextTagEventCallback                    ,
    TextTagEventCallbackC                   ,
    TextTagEventSignalInfo                  ,
    afterTextTagEvent                       ,
    mkTextTagEventCallback                  ,
    noTextTagEventCallback                  ,
    onTextTagEvent                          ,
    textTagEventCallbackWrapper             ,
    textTagEventClosure                     ,




    ) where

import Prelude ()
import Data.GI.Base.ShortPrelude

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
import qualified GI.GObject as GObject
import qualified GI.Gdk as Gdk
import qualified GI.Pango as Pango

newtype TextTag = TextTag (ForeignPtr TextTag)
foreign import ccall "gtk_text_tag_get_type"
    c_gtk_text_tag_get_type :: IO GType

type instance ParentTypes TextTag = TextTagParentTypes
type TextTagParentTypes = '[GObject.Object]

instance GObject TextTag where
    gobjectIsInitiallyUnowned _ = False
    gobjectType _ = c_gtk_text_tag_get_type
    

class GObject o => TextTagK o
instance (GObject o, IsDescendantOf TextTag o) => TextTagK o

toTextTag :: TextTagK o => o -> IO TextTag
toTextTag = unsafeCastTo TextTag

noTextTag :: Maybe TextTag
noTextTag = Nothing

-- signal TextTag::event
type TextTagEventCallback =
    GObject.Object ->
    Gdk.Event ->
    TextIter ->
    IO Bool

noTextTagEventCallback :: Maybe TextTagEventCallback
noTextTagEventCallback = Nothing

type TextTagEventCallbackC =
    Ptr () ->                               -- object
    Ptr GObject.Object ->
    Ptr Gdk.Event ->
    Ptr TextIter ->
    Ptr () ->                               -- user_data
    IO CInt

foreign import ccall "wrapper"
    mkTextTagEventCallback :: TextTagEventCallbackC -> IO (FunPtr TextTagEventCallbackC)

textTagEventClosure :: TextTagEventCallback -> IO Closure
textTagEventClosure cb = newCClosure =<< mkTextTagEventCallback wrapped
    where wrapped = textTagEventCallbackWrapper cb

textTagEventCallbackWrapper ::
    TextTagEventCallback ->
    Ptr () ->
    Ptr GObject.Object ->
    Ptr Gdk.Event ->
    Ptr TextIter ->
    Ptr () ->
    IO CInt
textTagEventCallbackWrapper _cb _ object event iter _ = do
    object' <- (newObject GObject.Object) object
    event' <- (newBoxed Gdk.Event) event
    iter' <- (newBoxed TextIter) iter
    result <- _cb  object' event' iter'
    let result' = (fromIntegral . fromEnum) result
    return result'

onTextTagEvent :: (GObject a, MonadIO m) => a -> TextTagEventCallback -> m SignalHandlerId
onTextTagEvent obj cb = liftIO $ connectTextTagEvent obj cb SignalConnectBefore
afterTextTagEvent :: (GObject a, MonadIO m) => a -> TextTagEventCallback -> m SignalHandlerId
afterTextTagEvent obj cb = connectTextTagEvent obj cb SignalConnectAfter

connectTextTagEvent :: (GObject a, MonadIO m) =>
                       a -> TextTagEventCallback -> SignalConnectMode -> m SignalHandlerId
connectTextTagEvent obj cb after = liftIO $ do
    cb' <- mkTextTagEventCallback (textTagEventCallbackWrapper cb)
    connectSignalFunPtr obj "event" cb' after

-- VVV Prop "accumulative-margin"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagAccumulativeMargin :: (MonadIO m, TextTagK o) => o -> m Bool
getTextTagAccumulativeMargin obj = liftIO $ getObjectPropertyBool obj "accumulative-margin"

setTextTagAccumulativeMargin :: (MonadIO m, TextTagK o) => o -> Bool -> m ()
setTextTagAccumulativeMargin obj val = liftIO $ setObjectPropertyBool obj "accumulative-margin" val

constructTextTagAccumulativeMargin :: Bool -> IO ([Char], GValue)
constructTextTagAccumulativeMargin val = constructObjectPropertyBool "accumulative-margin" val

data TextTagAccumulativeMarginPropertyInfo
instance AttrInfo TextTagAccumulativeMarginPropertyInfo where
    type AttrAllowedOps TextTagAccumulativeMarginPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagAccumulativeMarginPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagAccumulativeMarginPropertyInfo = TextTagK
    type AttrGetType TextTagAccumulativeMarginPropertyInfo = Bool
    type AttrLabel TextTagAccumulativeMarginPropertyInfo = "TextTag::accumulative-margin"
    attrGet _ = getTextTagAccumulativeMargin
    attrSet _ = setTextTagAccumulativeMargin
    attrConstruct _ = constructTextTagAccumulativeMargin

-- VVV Prop "background"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyWritable]

setTextTagBackground :: (MonadIO m, TextTagK o) => o -> T.Text -> m ()
setTextTagBackground obj val = liftIO $ setObjectPropertyString obj "background" val

constructTextTagBackground :: T.Text -> IO ([Char], GValue)
constructTextTagBackground val = constructObjectPropertyString "background" val

data TextTagBackgroundPropertyInfo
instance AttrInfo TextTagBackgroundPropertyInfo where
    type AttrAllowedOps TextTagBackgroundPropertyInfo = '[ 'AttrSet, 'AttrConstruct]
    type AttrSetTypeConstraint TextTagBackgroundPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint TextTagBackgroundPropertyInfo = TextTagK
    type AttrGetType TextTagBackgroundPropertyInfo = ()
    type AttrLabel TextTagBackgroundPropertyInfo = "TextTag::background"
    attrGet _ = undefined
    attrSet _ = setTextTagBackground
    attrConstruct _ = constructTextTagBackground

-- VVV Prop "background-full-height"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagBackgroundFullHeight :: (MonadIO m, TextTagK o) => o -> m Bool
getTextTagBackgroundFullHeight obj = liftIO $ getObjectPropertyBool obj "background-full-height"

setTextTagBackgroundFullHeight :: (MonadIO m, TextTagK o) => o -> Bool -> m ()
setTextTagBackgroundFullHeight obj val = liftIO $ setObjectPropertyBool obj "background-full-height" val

constructTextTagBackgroundFullHeight :: Bool -> IO ([Char], GValue)
constructTextTagBackgroundFullHeight val = constructObjectPropertyBool "background-full-height" val

data TextTagBackgroundFullHeightPropertyInfo
instance AttrInfo TextTagBackgroundFullHeightPropertyInfo where
    type AttrAllowedOps TextTagBackgroundFullHeightPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagBackgroundFullHeightPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagBackgroundFullHeightPropertyInfo = TextTagK
    type AttrGetType TextTagBackgroundFullHeightPropertyInfo = Bool
    type AttrLabel TextTagBackgroundFullHeightPropertyInfo = "TextTag::background-full-height"
    attrGet _ = getTextTagBackgroundFullHeight
    attrSet _ = setTextTagBackgroundFullHeight
    attrConstruct _ = constructTextTagBackgroundFullHeight

-- VVV Prop "background-full-height-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagBackgroundFullHeightSet :: (MonadIO m, TextTagK o) => o -> m Bool
getTextTagBackgroundFullHeightSet obj = liftIO $ getObjectPropertyBool obj "background-full-height-set"

setTextTagBackgroundFullHeightSet :: (MonadIO m, TextTagK o) => o -> Bool -> m ()
setTextTagBackgroundFullHeightSet obj val = liftIO $ setObjectPropertyBool obj "background-full-height-set" val

constructTextTagBackgroundFullHeightSet :: Bool -> IO ([Char], GValue)
constructTextTagBackgroundFullHeightSet val = constructObjectPropertyBool "background-full-height-set" val

data TextTagBackgroundFullHeightSetPropertyInfo
instance AttrInfo TextTagBackgroundFullHeightSetPropertyInfo where
    type AttrAllowedOps TextTagBackgroundFullHeightSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagBackgroundFullHeightSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagBackgroundFullHeightSetPropertyInfo = TextTagK
    type AttrGetType TextTagBackgroundFullHeightSetPropertyInfo = Bool
    type AttrLabel TextTagBackgroundFullHeightSetPropertyInfo = "TextTag::background-full-height-set"
    attrGet _ = getTextTagBackgroundFullHeightSet
    attrSet _ = setTextTagBackgroundFullHeightSet
    attrConstruct _ = constructTextTagBackgroundFullHeightSet

-- VVV Prop "background-gdk"
   -- Type: TInterface "Gdk" "Color"
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagBackgroundGdk :: (MonadIO m, TextTagK o) => o -> m Gdk.Color
getTextTagBackgroundGdk obj = liftIO $ getObjectPropertyBoxed obj "background-gdk" Gdk.Color

setTextTagBackgroundGdk :: (MonadIO m, TextTagK o) => o -> Gdk.Color -> m ()
setTextTagBackgroundGdk obj val = liftIO $ setObjectPropertyBoxed obj "background-gdk" val

constructTextTagBackgroundGdk :: Gdk.Color -> IO ([Char], GValue)
constructTextTagBackgroundGdk val = constructObjectPropertyBoxed "background-gdk" val

data TextTagBackgroundGdkPropertyInfo
instance AttrInfo TextTagBackgroundGdkPropertyInfo where
    type AttrAllowedOps TextTagBackgroundGdkPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagBackgroundGdkPropertyInfo = (~) Gdk.Color
    type AttrBaseTypeConstraint TextTagBackgroundGdkPropertyInfo = TextTagK
    type AttrGetType TextTagBackgroundGdkPropertyInfo = Gdk.Color
    type AttrLabel TextTagBackgroundGdkPropertyInfo = "TextTag::background-gdk"
    attrGet _ = getTextTagBackgroundGdk
    attrSet _ = setTextTagBackgroundGdk
    attrConstruct _ = constructTextTagBackgroundGdk

-- VVV Prop "background-rgba"
   -- Type: TInterface "Gdk" "RGBA"
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagBackgroundRgba :: (MonadIO m, TextTagK o) => o -> m Gdk.RGBA
getTextTagBackgroundRgba obj = liftIO $ getObjectPropertyBoxed obj "background-rgba" Gdk.RGBA

setTextTagBackgroundRgba :: (MonadIO m, TextTagK o) => o -> Gdk.RGBA -> m ()
setTextTagBackgroundRgba obj val = liftIO $ setObjectPropertyBoxed obj "background-rgba" val

constructTextTagBackgroundRgba :: Gdk.RGBA -> IO ([Char], GValue)
constructTextTagBackgroundRgba val = constructObjectPropertyBoxed "background-rgba" val

data TextTagBackgroundRgbaPropertyInfo
instance AttrInfo TextTagBackgroundRgbaPropertyInfo where
    type AttrAllowedOps TextTagBackgroundRgbaPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagBackgroundRgbaPropertyInfo = (~) Gdk.RGBA
    type AttrBaseTypeConstraint TextTagBackgroundRgbaPropertyInfo = TextTagK
    type AttrGetType TextTagBackgroundRgbaPropertyInfo = Gdk.RGBA
    type AttrLabel TextTagBackgroundRgbaPropertyInfo = "TextTag::background-rgba"
    attrGet _ = getTextTagBackgroundRgba
    attrSet _ = setTextTagBackgroundRgba
    attrConstruct _ = constructTextTagBackgroundRgba

-- VVV Prop "background-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagBackgroundSet :: (MonadIO m, TextTagK o) => o -> m Bool
getTextTagBackgroundSet obj = liftIO $ getObjectPropertyBool obj "background-set"

setTextTagBackgroundSet :: (MonadIO m, TextTagK o) => o -> Bool -> m ()
setTextTagBackgroundSet obj val = liftIO $ setObjectPropertyBool obj "background-set" val

constructTextTagBackgroundSet :: Bool -> IO ([Char], GValue)
constructTextTagBackgroundSet val = constructObjectPropertyBool "background-set" val

data TextTagBackgroundSetPropertyInfo
instance AttrInfo TextTagBackgroundSetPropertyInfo where
    type AttrAllowedOps TextTagBackgroundSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagBackgroundSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagBackgroundSetPropertyInfo = TextTagK
    type AttrGetType TextTagBackgroundSetPropertyInfo = Bool
    type AttrLabel TextTagBackgroundSetPropertyInfo = "TextTag::background-set"
    attrGet _ = getTextTagBackgroundSet
    attrSet _ = setTextTagBackgroundSet
    attrConstruct _ = constructTextTagBackgroundSet

-- VVV Prop "direction"
   -- Type: TInterface "Gtk" "TextDirection"
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagDirection :: (MonadIO m, TextTagK o) => o -> m TextDirection
getTextTagDirection obj = liftIO $ getObjectPropertyEnum obj "direction"

setTextTagDirection :: (MonadIO m, TextTagK o) => o -> TextDirection -> m ()
setTextTagDirection obj val = liftIO $ setObjectPropertyEnum obj "direction" val

constructTextTagDirection :: TextDirection -> IO ([Char], GValue)
constructTextTagDirection val = constructObjectPropertyEnum "direction" val

data TextTagDirectionPropertyInfo
instance AttrInfo TextTagDirectionPropertyInfo where
    type AttrAllowedOps TextTagDirectionPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagDirectionPropertyInfo = (~) TextDirection
    type AttrBaseTypeConstraint TextTagDirectionPropertyInfo = TextTagK
    type AttrGetType TextTagDirectionPropertyInfo = TextDirection
    type AttrLabel TextTagDirectionPropertyInfo = "TextTag::direction"
    attrGet _ = getTextTagDirection
    attrSet _ = setTextTagDirection
    attrConstruct _ = constructTextTagDirection

-- VVV Prop "editable"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagEditable :: (MonadIO m, TextTagK o) => o -> m Bool
getTextTagEditable obj = liftIO $ getObjectPropertyBool obj "editable"

setTextTagEditable :: (MonadIO m, TextTagK o) => o -> Bool -> m ()
setTextTagEditable obj val = liftIO $ setObjectPropertyBool obj "editable" val

constructTextTagEditable :: Bool -> IO ([Char], GValue)
constructTextTagEditable val = constructObjectPropertyBool "editable" val

data TextTagEditablePropertyInfo
instance AttrInfo TextTagEditablePropertyInfo where
    type AttrAllowedOps TextTagEditablePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagEditablePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagEditablePropertyInfo = TextTagK
    type AttrGetType TextTagEditablePropertyInfo = Bool
    type AttrLabel TextTagEditablePropertyInfo = "TextTag::editable"
    attrGet _ = getTextTagEditable
    attrSet _ = setTextTagEditable
    attrConstruct _ = constructTextTagEditable

-- VVV Prop "editable-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagEditableSet :: (MonadIO m, TextTagK o) => o -> m Bool
getTextTagEditableSet obj = liftIO $ getObjectPropertyBool obj "editable-set"

setTextTagEditableSet :: (MonadIO m, TextTagK o) => o -> Bool -> m ()
setTextTagEditableSet obj val = liftIO $ setObjectPropertyBool obj "editable-set" val

constructTextTagEditableSet :: Bool -> IO ([Char], GValue)
constructTextTagEditableSet val = constructObjectPropertyBool "editable-set" val

data TextTagEditableSetPropertyInfo
instance AttrInfo TextTagEditableSetPropertyInfo where
    type AttrAllowedOps TextTagEditableSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagEditableSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagEditableSetPropertyInfo = TextTagK
    type AttrGetType TextTagEditableSetPropertyInfo = Bool
    type AttrLabel TextTagEditableSetPropertyInfo = "TextTag::editable-set"
    attrGet _ = getTextTagEditableSet
    attrSet _ = setTextTagEditableSet
    attrConstruct _ = constructTextTagEditableSet

-- VVV Prop "fallback"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagFallback :: (MonadIO m, TextTagK o) => o -> m Bool
getTextTagFallback obj = liftIO $ getObjectPropertyBool obj "fallback"

setTextTagFallback :: (MonadIO m, TextTagK o) => o -> Bool -> m ()
setTextTagFallback obj val = liftIO $ setObjectPropertyBool obj "fallback" val

constructTextTagFallback :: Bool -> IO ([Char], GValue)
constructTextTagFallback val = constructObjectPropertyBool "fallback" val

data TextTagFallbackPropertyInfo
instance AttrInfo TextTagFallbackPropertyInfo where
    type AttrAllowedOps TextTagFallbackPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagFallbackPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagFallbackPropertyInfo = TextTagK
    type AttrGetType TextTagFallbackPropertyInfo = Bool
    type AttrLabel TextTagFallbackPropertyInfo = "TextTag::fallback"
    attrGet _ = getTextTagFallback
    attrSet _ = setTextTagFallback
    attrConstruct _ = constructTextTagFallback

-- VVV Prop "fallback-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagFallbackSet :: (MonadIO m, TextTagK o) => o -> m Bool
getTextTagFallbackSet obj = liftIO $ getObjectPropertyBool obj "fallback-set"

setTextTagFallbackSet :: (MonadIO m, TextTagK o) => o -> Bool -> m ()
setTextTagFallbackSet obj val = liftIO $ setObjectPropertyBool obj "fallback-set" val

constructTextTagFallbackSet :: Bool -> IO ([Char], GValue)
constructTextTagFallbackSet val = constructObjectPropertyBool "fallback-set" val

data TextTagFallbackSetPropertyInfo
instance AttrInfo TextTagFallbackSetPropertyInfo where
    type AttrAllowedOps TextTagFallbackSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagFallbackSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagFallbackSetPropertyInfo = TextTagK
    type AttrGetType TextTagFallbackSetPropertyInfo = Bool
    type AttrLabel TextTagFallbackSetPropertyInfo = "TextTag::fallback-set"
    attrGet _ = getTextTagFallbackSet
    attrSet _ = setTextTagFallbackSet
    attrConstruct _ = constructTextTagFallbackSet

-- VVV Prop "family"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagFamily :: (MonadIO m, TextTagK o) => o -> m T.Text
getTextTagFamily obj = liftIO $ getObjectPropertyString obj "family"

setTextTagFamily :: (MonadIO m, TextTagK o) => o -> T.Text -> m ()
setTextTagFamily obj val = liftIO $ setObjectPropertyString obj "family" val

constructTextTagFamily :: T.Text -> IO ([Char], GValue)
constructTextTagFamily val = constructObjectPropertyString "family" val

data TextTagFamilyPropertyInfo
instance AttrInfo TextTagFamilyPropertyInfo where
    type AttrAllowedOps TextTagFamilyPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagFamilyPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint TextTagFamilyPropertyInfo = TextTagK
    type AttrGetType TextTagFamilyPropertyInfo = T.Text
    type AttrLabel TextTagFamilyPropertyInfo = "TextTag::family"
    attrGet _ = getTextTagFamily
    attrSet _ = setTextTagFamily
    attrConstruct _ = constructTextTagFamily

-- VVV Prop "family-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagFamilySet :: (MonadIO m, TextTagK o) => o -> m Bool
getTextTagFamilySet obj = liftIO $ getObjectPropertyBool obj "family-set"

setTextTagFamilySet :: (MonadIO m, TextTagK o) => o -> Bool -> m ()
setTextTagFamilySet obj val = liftIO $ setObjectPropertyBool obj "family-set" val

constructTextTagFamilySet :: Bool -> IO ([Char], GValue)
constructTextTagFamilySet val = constructObjectPropertyBool "family-set" val

data TextTagFamilySetPropertyInfo
instance AttrInfo TextTagFamilySetPropertyInfo where
    type AttrAllowedOps TextTagFamilySetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagFamilySetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagFamilySetPropertyInfo = TextTagK
    type AttrGetType TextTagFamilySetPropertyInfo = Bool
    type AttrLabel TextTagFamilySetPropertyInfo = "TextTag::family-set"
    attrGet _ = getTextTagFamilySet
    attrSet _ = setTextTagFamilySet
    attrConstruct _ = constructTextTagFamilySet

-- VVV Prop "font"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagFont :: (MonadIO m, TextTagK o) => o -> m T.Text
getTextTagFont obj = liftIO $ getObjectPropertyString obj "font"

setTextTagFont :: (MonadIO m, TextTagK o) => o -> T.Text -> m ()
setTextTagFont obj val = liftIO $ setObjectPropertyString obj "font" val

constructTextTagFont :: T.Text -> IO ([Char], GValue)
constructTextTagFont val = constructObjectPropertyString "font" val

data TextTagFontPropertyInfo
instance AttrInfo TextTagFontPropertyInfo where
    type AttrAllowedOps TextTagFontPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagFontPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint TextTagFontPropertyInfo = TextTagK
    type AttrGetType TextTagFontPropertyInfo = T.Text
    type AttrLabel TextTagFontPropertyInfo = "TextTag::font"
    attrGet _ = getTextTagFont
    attrSet _ = setTextTagFont
    attrConstruct _ = constructTextTagFont

-- VVV Prop "font-desc"
   -- Type: TInterface "Pango" "FontDescription"
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagFontDesc :: (MonadIO m, TextTagK o) => o -> m Pango.FontDescription
getTextTagFontDesc obj = liftIO $ getObjectPropertyBoxed obj "font-desc" Pango.FontDescription

setTextTagFontDesc :: (MonadIO m, TextTagK o) => o -> Pango.FontDescription -> m ()
setTextTagFontDesc obj val = liftIO $ setObjectPropertyBoxed obj "font-desc" val

constructTextTagFontDesc :: Pango.FontDescription -> IO ([Char], GValue)
constructTextTagFontDesc val = constructObjectPropertyBoxed "font-desc" val

data TextTagFontDescPropertyInfo
instance AttrInfo TextTagFontDescPropertyInfo where
    type AttrAllowedOps TextTagFontDescPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagFontDescPropertyInfo = (~) Pango.FontDescription
    type AttrBaseTypeConstraint TextTagFontDescPropertyInfo = TextTagK
    type AttrGetType TextTagFontDescPropertyInfo = Pango.FontDescription
    type AttrLabel TextTagFontDescPropertyInfo = "TextTag::font-desc"
    attrGet _ = getTextTagFontDesc
    attrSet _ = setTextTagFontDesc
    attrConstruct _ = constructTextTagFontDesc

-- VVV Prop "foreground"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyWritable]

setTextTagForeground :: (MonadIO m, TextTagK o) => o -> T.Text -> m ()
setTextTagForeground obj val = liftIO $ setObjectPropertyString obj "foreground" val

constructTextTagForeground :: T.Text -> IO ([Char], GValue)
constructTextTagForeground val = constructObjectPropertyString "foreground" val

data TextTagForegroundPropertyInfo
instance AttrInfo TextTagForegroundPropertyInfo where
    type AttrAllowedOps TextTagForegroundPropertyInfo = '[ 'AttrSet, 'AttrConstruct]
    type AttrSetTypeConstraint TextTagForegroundPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint TextTagForegroundPropertyInfo = TextTagK
    type AttrGetType TextTagForegroundPropertyInfo = ()
    type AttrLabel TextTagForegroundPropertyInfo = "TextTag::foreground"
    attrGet _ = undefined
    attrSet _ = setTextTagForeground
    attrConstruct _ = constructTextTagForeground

-- VVV Prop "foreground-gdk"
   -- Type: TInterface "Gdk" "Color"
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagForegroundGdk :: (MonadIO m, TextTagK o) => o -> m Gdk.Color
getTextTagForegroundGdk obj = liftIO $ getObjectPropertyBoxed obj "foreground-gdk" Gdk.Color

setTextTagForegroundGdk :: (MonadIO m, TextTagK o) => o -> Gdk.Color -> m ()
setTextTagForegroundGdk obj val = liftIO $ setObjectPropertyBoxed obj "foreground-gdk" val

constructTextTagForegroundGdk :: Gdk.Color -> IO ([Char], GValue)
constructTextTagForegroundGdk val = constructObjectPropertyBoxed "foreground-gdk" val

data TextTagForegroundGdkPropertyInfo
instance AttrInfo TextTagForegroundGdkPropertyInfo where
    type AttrAllowedOps TextTagForegroundGdkPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagForegroundGdkPropertyInfo = (~) Gdk.Color
    type AttrBaseTypeConstraint TextTagForegroundGdkPropertyInfo = TextTagK
    type AttrGetType TextTagForegroundGdkPropertyInfo = Gdk.Color
    type AttrLabel TextTagForegroundGdkPropertyInfo = "TextTag::foreground-gdk"
    attrGet _ = getTextTagForegroundGdk
    attrSet _ = setTextTagForegroundGdk
    attrConstruct _ = constructTextTagForegroundGdk

-- VVV Prop "foreground-rgba"
   -- Type: TInterface "Gdk" "RGBA"
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagForegroundRgba :: (MonadIO m, TextTagK o) => o -> m Gdk.RGBA
getTextTagForegroundRgba obj = liftIO $ getObjectPropertyBoxed obj "foreground-rgba" Gdk.RGBA

setTextTagForegroundRgba :: (MonadIO m, TextTagK o) => o -> Gdk.RGBA -> m ()
setTextTagForegroundRgba obj val = liftIO $ setObjectPropertyBoxed obj "foreground-rgba" val

constructTextTagForegroundRgba :: Gdk.RGBA -> IO ([Char], GValue)
constructTextTagForegroundRgba val = constructObjectPropertyBoxed "foreground-rgba" val

data TextTagForegroundRgbaPropertyInfo
instance AttrInfo TextTagForegroundRgbaPropertyInfo where
    type AttrAllowedOps TextTagForegroundRgbaPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagForegroundRgbaPropertyInfo = (~) Gdk.RGBA
    type AttrBaseTypeConstraint TextTagForegroundRgbaPropertyInfo = TextTagK
    type AttrGetType TextTagForegroundRgbaPropertyInfo = Gdk.RGBA
    type AttrLabel TextTagForegroundRgbaPropertyInfo = "TextTag::foreground-rgba"
    attrGet _ = getTextTagForegroundRgba
    attrSet _ = setTextTagForegroundRgba
    attrConstruct _ = constructTextTagForegroundRgba

-- VVV Prop "foreground-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagForegroundSet :: (MonadIO m, TextTagK o) => o -> m Bool
getTextTagForegroundSet obj = liftIO $ getObjectPropertyBool obj "foreground-set"

setTextTagForegroundSet :: (MonadIO m, TextTagK o) => o -> Bool -> m ()
setTextTagForegroundSet obj val = liftIO $ setObjectPropertyBool obj "foreground-set" val

constructTextTagForegroundSet :: Bool -> IO ([Char], GValue)
constructTextTagForegroundSet val = constructObjectPropertyBool "foreground-set" val

data TextTagForegroundSetPropertyInfo
instance AttrInfo TextTagForegroundSetPropertyInfo where
    type AttrAllowedOps TextTagForegroundSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagForegroundSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagForegroundSetPropertyInfo = TextTagK
    type AttrGetType TextTagForegroundSetPropertyInfo = Bool
    type AttrLabel TextTagForegroundSetPropertyInfo = "TextTag::foreground-set"
    attrGet _ = getTextTagForegroundSet
    attrSet _ = setTextTagForegroundSet
    attrConstruct _ = constructTextTagForegroundSet

-- VVV Prop "indent"
   -- Type: TBasicType TInt32
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagIndent :: (MonadIO m, TextTagK o) => o -> m Int32
getTextTagIndent obj = liftIO $ getObjectPropertyCInt obj "indent"

setTextTagIndent :: (MonadIO m, TextTagK o) => o -> Int32 -> m ()
setTextTagIndent obj val = liftIO $ setObjectPropertyCInt obj "indent" val

constructTextTagIndent :: Int32 -> IO ([Char], GValue)
constructTextTagIndent val = constructObjectPropertyCInt "indent" val

data TextTagIndentPropertyInfo
instance AttrInfo TextTagIndentPropertyInfo where
    type AttrAllowedOps TextTagIndentPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagIndentPropertyInfo = (~) Int32
    type AttrBaseTypeConstraint TextTagIndentPropertyInfo = TextTagK
    type AttrGetType TextTagIndentPropertyInfo = Int32
    type AttrLabel TextTagIndentPropertyInfo = "TextTag::indent"
    attrGet _ = getTextTagIndent
    attrSet _ = setTextTagIndent
    attrConstruct _ = constructTextTagIndent

-- VVV Prop "indent-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagIndentSet :: (MonadIO m, TextTagK o) => o -> m Bool
getTextTagIndentSet obj = liftIO $ getObjectPropertyBool obj "indent-set"

setTextTagIndentSet :: (MonadIO m, TextTagK o) => o -> Bool -> m ()
setTextTagIndentSet obj val = liftIO $ setObjectPropertyBool obj "indent-set" val

constructTextTagIndentSet :: Bool -> IO ([Char], GValue)
constructTextTagIndentSet val = constructObjectPropertyBool "indent-set" val

data TextTagIndentSetPropertyInfo
instance AttrInfo TextTagIndentSetPropertyInfo where
    type AttrAllowedOps TextTagIndentSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagIndentSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagIndentSetPropertyInfo = TextTagK
    type AttrGetType TextTagIndentSetPropertyInfo = Bool
    type AttrLabel TextTagIndentSetPropertyInfo = "TextTag::indent-set"
    attrGet _ = getTextTagIndentSet
    attrSet _ = setTextTagIndentSet
    attrConstruct _ = constructTextTagIndentSet

-- VVV Prop "invisible"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagInvisible :: (MonadIO m, TextTagK o) => o -> m Bool
getTextTagInvisible obj = liftIO $ getObjectPropertyBool obj "invisible"

setTextTagInvisible :: (MonadIO m, TextTagK o) => o -> Bool -> m ()
setTextTagInvisible obj val = liftIO $ setObjectPropertyBool obj "invisible" val

constructTextTagInvisible :: Bool -> IO ([Char], GValue)
constructTextTagInvisible val = constructObjectPropertyBool "invisible" val

data TextTagInvisiblePropertyInfo
instance AttrInfo TextTagInvisiblePropertyInfo where
    type AttrAllowedOps TextTagInvisiblePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagInvisiblePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagInvisiblePropertyInfo = TextTagK
    type AttrGetType TextTagInvisiblePropertyInfo = Bool
    type AttrLabel TextTagInvisiblePropertyInfo = "TextTag::invisible"
    attrGet _ = getTextTagInvisible
    attrSet _ = setTextTagInvisible
    attrConstruct _ = constructTextTagInvisible

-- VVV Prop "invisible-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagInvisibleSet :: (MonadIO m, TextTagK o) => o -> m Bool
getTextTagInvisibleSet obj = liftIO $ getObjectPropertyBool obj "invisible-set"

setTextTagInvisibleSet :: (MonadIO m, TextTagK o) => o -> Bool -> m ()
setTextTagInvisibleSet obj val = liftIO $ setObjectPropertyBool obj "invisible-set" val

constructTextTagInvisibleSet :: Bool -> IO ([Char], GValue)
constructTextTagInvisibleSet val = constructObjectPropertyBool "invisible-set" val

data TextTagInvisibleSetPropertyInfo
instance AttrInfo TextTagInvisibleSetPropertyInfo where
    type AttrAllowedOps TextTagInvisibleSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagInvisibleSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagInvisibleSetPropertyInfo = TextTagK
    type AttrGetType TextTagInvisibleSetPropertyInfo = Bool
    type AttrLabel TextTagInvisibleSetPropertyInfo = "TextTag::invisible-set"
    attrGet _ = getTextTagInvisibleSet
    attrSet _ = setTextTagInvisibleSet
    attrConstruct _ = constructTextTagInvisibleSet

-- VVV Prop "justification"
   -- Type: TInterface "Gtk" "Justification"
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagJustification :: (MonadIO m, TextTagK o) => o -> m Justification
getTextTagJustification obj = liftIO $ getObjectPropertyEnum obj "justification"

setTextTagJustification :: (MonadIO m, TextTagK o) => o -> Justification -> m ()
setTextTagJustification obj val = liftIO $ setObjectPropertyEnum obj "justification" val

constructTextTagJustification :: Justification -> IO ([Char], GValue)
constructTextTagJustification val = constructObjectPropertyEnum "justification" val

data TextTagJustificationPropertyInfo
instance AttrInfo TextTagJustificationPropertyInfo where
    type AttrAllowedOps TextTagJustificationPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagJustificationPropertyInfo = (~) Justification
    type AttrBaseTypeConstraint TextTagJustificationPropertyInfo = TextTagK
    type AttrGetType TextTagJustificationPropertyInfo = Justification
    type AttrLabel TextTagJustificationPropertyInfo = "TextTag::justification"
    attrGet _ = getTextTagJustification
    attrSet _ = setTextTagJustification
    attrConstruct _ = constructTextTagJustification

-- VVV Prop "justification-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagJustificationSet :: (MonadIO m, TextTagK o) => o -> m Bool
getTextTagJustificationSet obj = liftIO $ getObjectPropertyBool obj "justification-set"

setTextTagJustificationSet :: (MonadIO m, TextTagK o) => o -> Bool -> m ()
setTextTagJustificationSet obj val = liftIO $ setObjectPropertyBool obj "justification-set" val

constructTextTagJustificationSet :: Bool -> IO ([Char], GValue)
constructTextTagJustificationSet val = constructObjectPropertyBool "justification-set" val

data TextTagJustificationSetPropertyInfo
instance AttrInfo TextTagJustificationSetPropertyInfo where
    type AttrAllowedOps TextTagJustificationSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagJustificationSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagJustificationSetPropertyInfo = TextTagK
    type AttrGetType TextTagJustificationSetPropertyInfo = Bool
    type AttrLabel TextTagJustificationSetPropertyInfo = "TextTag::justification-set"
    attrGet _ = getTextTagJustificationSet
    attrSet _ = setTextTagJustificationSet
    attrConstruct _ = constructTextTagJustificationSet

-- VVV Prop "language"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagLanguage :: (MonadIO m, TextTagK o) => o -> m T.Text
getTextTagLanguage obj = liftIO $ getObjectPropertyString obj "language"

setTextTagLanguage :: (MonadIO m, TextTagK o) => o -> T.Text -> m ()
setTextTagLanguage obj val = liftIO $ setObjectPropertyString obj "language" val

constructTextTagLanguage :: T.Text -> IO ([Char], GValue)
constructTextTagLanguage val = constructObjectPropertyString "language" val

data TextTagLanguagePropertyInfo
instance AttrInfo TextTagLanguagePropertyInfo where
    type AttrAllowedOps TextTagLanguagePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagLanguagePropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint TextTagLanguagePropertyInfo = TextTagK
    type AttrGetType TextTagLanguagePropertyInfo = T.Text
    type AttrLabel TextTagLanguagePropertyInfo = "TextTag::language"
    attrGet _ = getTextTagLanguage
    attrSet _ = setTextTagLanguage
    attrConstruct _ = constructTextTagLanguage

-- VVV Prop "language-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagLanguageSet :: (MonadIO m, TextTagK o) => o -> m Bool
getTextTagLanguageSet obj = liftIO $ getObjectPropertyBool obj "language-set"

setTextTagLanguageSet :: (MonadIO m, TextTagK o) => o -> Bool -> m ()
setTextTagLanguageSet obj val = liftIO $ setObjectPropertyBool obj "language-set" val

constructTextTagLanguageSet :: Bool -> IO ([Char], GValue)
constructTextTagLanguageSet val = constructObjectPropertyBool "language-set" val

data TextTagLanguageSetPropertyInfo
instance AttrInfo TextTagLanguageSetPropertyInfo where
    type AttrAllowedOps TextTagLanguageSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagLanguageSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagLanguageSetPropertyInfo = TextTagK
    type AttrGetType TextTagLanguageSetPropertyInfo = Bool
    type AttrLabel TextTagLanguageSetPropertyInfo = "TextTag::language-set"
    attrGet _ = getTextTagLanguageSet
    attrSet _ = setTextTagLanguageSet
    attrConstruct _ = constructTextTagLanguageSet

-- VVV Prop "left-margin"
   -- Type: TBasicType TInt32
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagLeftMargin :: (MonadIO m, TextTagK o) => o -> m Int32
getTextTagLeftMargin obj = liftIO $ getObjectPropertyCInt obj "left-margin"

setTextTagLeftMargin :: (MonadIO m, TextTagK o) => o -> Int32 -> m ()
setTextTagLeftMargin obj val = liftIO $ setObjectPropertyCInt obj "left-margin" val

constructTextTagLeftMargin :: Int32 -> IO ([Char], GValue)
constructTextTagLeftMargin val = constructObjectPropertyCInt "left-margin" val

data TextTagLeftMarginPropertyInfo
instance AttrInfo TextTagLeftMarginPropertyInfo where
    type AttrAllowedOps TextTagLeftMarginPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagLeftMarginPropertyInfo = (~) Int32
    type AttrBaseTypeConstraint TextTagLeftMarginPropertyInfo = TextTagK
    type AttrGetType TextTagLeftMarginPropertyInfo = Int32
    type AttrLabel TextTagLeftMarginPropertyInfo = "TextTag::left-margin"
    attrGet _ = getTextTagLeftMargin
    attrSet _ = setTextTagLeftMargin
    attrConstruct _ = constructTextTagLeftMargin

-- VVV Prop "left-margin-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagLeftMarginSet :: (MonadIO m, TextTagK o) => o -> m Bool
getTextTagLeftMarginSet obj = liftIO $ getObjectPropertyBool obj "left-margin-set"

setTextTagLeftMarginSet :: (MonadIO m, TextTagK o) => o -> Bool -> m ()
setTextTagLeftMarginSet obj val = liftIO $ setObjectPropertyBool obj "left-margin-set" val

constructTextTagLeftMarginSet :: Bool -> IO ([Char], GValue)
constructTextTagLeftMarginSet val = constructObjectPropertyBool "left-margin-set" val

data TextTagLeftMarginSetPropertyInfo
instance AttrInfo TextTagLeftMarginSetPropertyInfo where
    type AttrAllowedOps TextTagLeftMarginSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagLeftMarginSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagLeftMarginSetPropertyInfo = TextTagK
    type AttrGetType TextTagLeftMarginSetPropertyInfo = Bool
    type AttrLabel TextTagLeftMarginSetPropertyInfo = "TextTag::left-margin-set"
    attrGet _ = getTextTagLeftMarginSet
    attrSet _ = setTextTagLeftMarginSet
    attrConstruct _ = constructTextTagLeftMarginSet

-- VVV Prop "letter-spacing"
   -- Type: TBasicType TInt32
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagLetterSpacing :: (MonadIO m, TextTagK o) => o -> m Int32
getTextTagLetterSpacing obj = liftIO $ getObjectPropertyCInt obj "letter-spacing"

setTextTagLetterSpacing :: (MonadIO m, TextTagK o) => o -> Int32 -> m ()
setTextTagLetterSpacing obj val = liftIO $ setObjectPropertyCInt obj "letter-spacing" val

constructTextTagLetterSpacing :: Int32 -> IO ([Char], GValue)
constructTextTagLetterSpacing val = constructObjectPropertyCInt "letter-spacing" val

data TextTagLetterSpacingPropertyInfo
instance AttrInfo TextTagLetterSpacingPropertyInfo where
    type AttrAllowedOps TextTagLetterSpacingPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagLetterSpacingPropertyInfo = (~) Int32
    type AttrBaseTypeConstraint TextTagLetterSpacingPropertyInfo = TextTagK
    type AttrGetType TextTagLetterSpacingPropertyInfo = Int32
    type AttrLabel TextTagLetterSpacingPropertyInfo = "TextTag::letter-spacing"
    attrGet _ = getTextTagLetterSpacing
    attrSet _ = setTextTagLetterSpacing
    attrConstruct _ = constructTextTagLetterSpacing

-- VVV Prop "letter-spacing-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagLetterSpacingSet :: (MonadIO m, TextTagK o) => o -> m Bool
getTextTagLetterSpacingSet obj = liftIO $ getObjectPropertyBool obj "letter-spacing-set"

setTextTagLetterSpacingSet :: (MonadIO m, TextTagK o) => o -> Bool -> m ()
setTextTagLetterSpacingSet obj val = liftIO $ setObjectPropertyBool obj "letter-spacing-set" val

constructTextTagLetterSpacingSet :: Bool -> IO ([Char], GValue)
constructTextTagLetterSpacingSet val = constructObjectPropertyBool "letter-spacing-set" val

data TextTagLetterSpacingSetPropertyInfo
instance AttrInfo TextTagLetterSpacingSetPropertyInfo where
    type AttrAllowedOps TextTagLetterSpacingSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagLetterSpacingSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagLetterSpacingSetPropertyInfo = TextTagK
    type AttrGetType TextTagLetterSpacingSetPropertyInfo = Bool
    type AttrLabel TextTagLetterSpacingSetPropertyInfo = "TextTag::letter-spacing-set"
    attrGet _ = getTextTagLetterSpacingSet
    attrSet _ = setTextTagLetterSpacingSet
    attrConstruct _ = constructTextTagLetterSpacingSet

-- VVV Prop "name"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]

getTextTagName :: (MonadIO m, TextTagK o) => o -> m T.Text
getTextTagName obj = liftIO $ getObjectPropertyString obj "name"

constructTextTagName :: T.Text -> IO ([Char], GValue)
constructTextTagName val = constructObjectPropertyString "name" val

data TextTagNamePropertyInfo
instance AttrInfo TextTagNamePropertyInfo where
    type AttrAllowedOps TextTagNamePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagNamePropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint TextTagNamePropertyInfo = TextTagK
    type AttrGetType TextTagNamePropertyInfo = T.Text
    type AttrLabel TextTagNamePropertyInfo = "TextTag::name"
    attrGet _ = getTextTagName
    attrSet _ = undefined
    attrConstruct _ = constructTextTagName

-- VVV Prop "paragraph-background"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyWritable]

setTextTagParagraphBackground :: (MonadIO m, TextTagK o) => o -> T.Text -> m ()
setTextTagParagraphBackground obj val = liftIO $ setObjectPropertyString obj "paragraph-background" val

constructTextTagParagraphBackground :: T.Text -> IO ([Char], GValue)
constructTextTagParagraphBackground val = constructObjectPropertyString "paragraph-background" val

data TextTagParagraphBackgroundPropertyInfo
instance AttrInfo TextTagParagraphBackgroundPropertyInfo where
    type AttrAllowedOps TextTagParagraphBackgroundPropertyInfo = '[ 'AttrSet, 'AttrConstruct]
    type AttrSetTypeConstraint TextTagParagraphBackgroundPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint TextTagParagraphBackgroundPropertyInfo = TextTagK
    type AttrGetType TextTagParagraphBackgroundPropertyInfo = ()
    type AttrLabel TextTagParagraphBackgroundPropertyInfo = "TextTag::paragraph-background"
    attrGet _ = undefined
    attrSet _ = setTextTagParagraphBackground
    attrConstruct _ = constructTextTagParagraphBackground

-- VVV Prop "paragraph-background-gdk"
   -- Type: TInterface "Gdk" "Color"
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagParagraphBackgroundGdk :: (MonadIO m, TextTagK o) => o -> m Gdk.Color
getTextTagParagraphBackgroundGdk obj = liftIO $ getObjectPropertyBoxed obj "paragraph-background-gdk" Gdk.Color

setTextTagParagraphBackgroundGdk :: (MonadIO m, TextTagK o) => o -> Gdk.Color -> m ()
setTextTagParagraphBackgroundGdk obj val = liftIO $ setObjectPropertyBoxed obj "paragraph-background-gdk" val

constructTextTagParagraphBackgroundGdk :: Gdk.Color -> IO ([Char], GValue)
constructTextTagParagraphBackgroundGdk val = constructObjectPropertyBoxed "paragraph-background-gdk" val

data TextTagParagraphBackgroundGdkPropertyInfo
instance AttrInfo TextTagParagraphBackgroundGdkPropertyInfo where
    type AttrAllowedOps TextTagParagraphBackgroundGdkPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagParagraphBackgroundGdkPropertyInfo = (~) Gdk.Color
    type AttrBaseTypeConstraint TextTagParagraphBackgroundGdkPropertyInfo = TextTagK
    type AttrGetType TextTagParagraphBackgroundGdkPropertyInfo = Gdk.Color
    type AttrLabel TextTagParagraphBackgroundGdkPropertyInfo = "TextTag::paragraph-background-gdk"
    attrGet _ = getTextTagParagraphBackgroundGdk
    attrSet _ = setTextTagParagraphBackgroundGdk
    attrConstruct _ = constructTextTagParagraphBackgroundGdk

-- VVV Prop "paragraph-background-rgba"
   -- Type: TInterface "Gdk" "RGBA"
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagParagraphBackgroundRgba :: (MonadIO m, TextTagK o) => o -> m Gdk.RGBA
getTextTagParagraphBackgroundRgba obj = liftIO $ getObjectPropertyBoxed obj "paragraph-background-rgba" Gdk.RGBA

setTextTagParagraphBackgroundRgba :: (MonadIO m, TextTagK o) => o -> Gdk.RGBA -> m ()
setTextTagParagraphBackgroundRgba obj val = liftIO $ setObjectPropertyBoxed obj "paragraph-background-rgba" val

constructTextTagParagraphBackgroundRgba :: Gdk.RGBA -> IO ([Char], GValue)
constructTextTagParagraphBackgroundRgba val = constructObjectPropertyBoxed "paragraph-background-rgba" val

data TextTagParagraphBackgroundRgbaPropertyInfo
instance AttrInfo TextTagParagraphBackgroundRgbaPropertyInfo where
    type AttrAllowedOps TextTagParagraphBackgroundRgbaPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagParagraphBackgroundRgbaPropertyInfo = (~) Gdk.RGBA
    type AttrBaseTypeConstraint TextTagParagraphBackgroundRgbaPropertyInfo = TextTagK
    type AttrGetType TextTagParagraphBackgroundRgbaPropertyInfo = Gdk.RGBA
    type AttrLabel TextTagParagraphBackgroundRgbaPropertyInfo = "TextTag::paragraph-background-rgba"
    attrGet _ = getTextTagParagraphBackgroundRgba
    attrSet _ = setTextTagParagraphBackgroundRgba
    attrConstruct _ = constructTextTagParagraphBackgroundRgba

-- VVV Prop "paragraph-background-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagParagraphBackgroundSet :: (MonadIO m, TextTagK o) => o -> m Bool
getTextTagParagraphBackgroundSet obj = liftIO $ getObjectPropertyBool obj "paragraph-background-set"

setTextTagParagraphBackgroundSet :: (MonadIO m, TextTagK o) => o -> Bool -> m ()
setTextTagParagraphBackgroundSet obj val = liftIO $ setObjectPropertyBool obj "paragraph-background-set" val

constructTextTagParagraphBackgroundSet :: Bool -> IO ([Char], GValue)
constructTextTagParagraphBackgroundSet val = constructObjectPropertyBool "paragraph-background-set" val

data TextTagParagraphBackgroundSetPropertyInfo
instance AttrInfo TextTagParagraphBackgroundSetPropertyInfo where
    type AttrAllowedOps TextTagParagraphBackgroundSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagParagraphBackgroundSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagParagraphBackgroundSetPropertyInfo = TextTagK
    type AttrGetType TextTagParagraphBackgroundSetPropertyInfo = Bool
    type AttrLabel TextTagParagraphBackgroundSetPropertyInfo = "TextTag::paragraph-background-set"
    attrGet _ = getTextTagParagraphBackgroundSet
    attrSet _ = setTextTagParagraphBackgroundSet
    attrConstruct _ = constructTextTagParagraphBackgroundSet

-- VVV Prop "pixels-above-lines"
   -- Type: TBasicType TInt32
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagPixelsAboveLines :: (MonadIO m, TextTagK o) => o -> m Int32
getTextTagPixelsAboveLines obj = liftIO $ getObjectPropertyCInt obj "pixels-above-lines"

setTextTagPixelsAboveLines :: (MonadIO m, TextTagK o) => o -> Int32 -> m ()
setTextTagPixelsAboveLines obj val = liftIO $ setObjectPropertyCInt obj "pixels-above-lines" val

constructTextTagPixelsAboveLines :: Int32 -> IO ([Char], GValue)
constructTextTagPixelsAboveLines val = constructObjectPropertyCInt "pixels-above-lines" val

data TextTagPixelsAboveLinesPropertyInfo
instance AttrInfo TextTagPixelsAboveLinesPropertyInfo where
    type AttrAllowedOps TextTagPixelsAboveLinesPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagPixelsAboveLinesPropertyInfo = (~) Int32
    type AttrBaseTypeConstraint TextTagPixelsAboveLinesPropertyInfo = TextTagK
    type AttrGetType TextTagPixelsAboveLinesPropertyInfo = Int32
    type AttrLabel TextTagPixelsAboveLinesPropertyInfo = "TextTag::pixels-above-lines"
    attrGet _ = getTextTagPixelsAboveLines
    attrSet _ = setTextTagPixelsAboveLines
    attrConstruct _ = constructTextTagPixelsAboveLines

-- VVV Prop "pixels-above-lines-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagPixelsAboveLinesSet :: (MonadIO m, TextTagK o) => o -> m Bool
getTextTagPixelsAboveLinesSet obj = liftIO $ getObjectPropertyBool obj "pixels-above-lines-set"

setTextTagPixelsAboveLinesSet :: (MonadIO m, TextTagK o) => o -> Bool -> m ()
setTextTagPixelsAboveLinesSet obj val = liftIO $ setObjectPropertyBool obj "pixels-above-lines-set" val

constructTextTagPixelsAboveLinesSet :: Bool -> IO ([Char], GValue)
constructTextTagPixelsAboveLinesSet val = constructObjectPropertyBool "pixels-above-lines-set" val

data TextTagPixelsAboveLinesSetPropertyInfo
instance AttrInfo TextTagPixelsAboveLinesSetPropertyInfo where
    type AttrAllowedOps TextTagPixelsAboveLinesSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagPixelsAboveLinesSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagPixelsAboveLinesSetPropertyInfo = TextTagK
    type AttrGetType TextTagPixelsAboveLinesSetPropertyInfo = Bool
    type AttrLabel TextTagPixelsAboveLinesSetPropertyInfo = "TextTag::pixels-above-lines-set"
    attrGet _ = getTextTagPixelsAboveLinesSet
    attrSet _ = setTextTagPixelsAboveLinesSet
    attrConstruct _ = constructTextTagPixelsAboveLinesSet

-- VVV Prop "pixels-below-lines"
   -- Type: TBasicType TInt32
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagPixelsBelowLines :: (MonadIO m, TextTagK o) => o -> m Int32
getTextTagPixelsBelowLines obj = liftIO $ getObjectPropertyCInt obj "pixels-below-lines"

setTextTagPixelsBelowLines :: (MonadIO m, TextTagK o) => o -> Int32 -> m ()
setTextTagPixelsBelowLines obj val = liftIO $ setObjectPropertyCInt obj "pixels-below-lines" val

constructTextTagPixelsBelowLines :: Int32 -> IO ([Char], GValue)
constructTextTagPixelsBelowLines val = constructObjectPropertyCInt "pixels-below-lines" val

data TextTagPixelsBelowLinesPropertyInfo
instance AttrInfo TextTagPixelsBelowLinesPropertyInfo where
    type AttrAllowedOps TextTagPixelsBelowLinesPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagPixelsBelowLinesPropertyInfo = (~) Int32
    type AttrBaseTypeConstraint TextTagPixelsBelowLinesPropertyInfo = TextTagK
    type AttrGetType TextTagPixelsBelowLinesPropertyInfo = Int32
    type AttrLabel TextTagPixelsBelowLinesPropertyInfo = "TextTag::pixels-below-lines"
    attrGet _ = getTextTagPixelsBelowLines
    attrSet _ = setTextTagPixelsBelowLines
    attrConstruct _ = constructTextTagPixelsBelowLines

-- VVV Prop "pixels-below-lines-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagPixelsBelowLinesSet :: (MonadIO m, TextTagK o) => o -> m Bool
getTextTagPixelsBelowLinesSet obj = liftIO $ getObjectPropertyBool obj "pixels-below-lines-set"

setTextTagPixelsBelowLinesSet :: (MonadIO m, TextTagK o) => o -> Bool -> m ()
setTextTagPixelsBelowLinesSet obj val = liftIO $ setObjectPropertyBool obj "pixels-below-lines-set" val

constructTextTagPixelsBelowLinesSet :: Bool -> IO ([Char], GValue)
constructTextTagPixelsBelowLinesSet val = constructObjectPropertyBool "pixels-below-lines-set" val

data TextTagPixelsBelowLinesSetPropertyInfo
instance AttrInfo TextTagPixelsBelowLinesSetPropertyInfo where
    type AttrAllowedOps TextTagPixelsBelowLinesSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagPixelsBelowLinesSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagPixelsBelowLinesSetPropertyInfo = TextTagK
    type AttrGetType TextTagPixelsBelowLinesSetPropertyInfo = Bool
    type AttrLabel TextTagPixelsBelowLinesSetPropertyInfo = "TextTag::pixels-below-lines-set"
    attrGet _ = getTextTagPixelsBelowLinesSet
    attrSet _ = setTextTagPixelsBelowLinesSet
    attrConstruct _ = constructTextTagPixelsBelowLinesSet

-- VVV Prop "pixels-inside-wrap"
   -- Type: TBasicType TInt32
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagPixelsInsideWrap :: (MonadIO m, TextTagK o) => o -> m Int32
getTextTagPixelsInsideWrap obj = liftIO $ getObjectPropertyCInt obj "pixels-inside-wrap"

setTextTagPixelsInsideWrap :: (MonadIO m, TextTagK o) => o -> Int32 -> m ()
setTextTagPixelsInsideWrap obj val = liftIO $ setObjectPropertyCInt obj "pixels-inside-wrap" val

constructTextTagPixelsInsideWrap :: Int32 -> IO ([Char], GValue)
constructTextTagPixelsInsideWrap val = constructObjectPropertyCInt "pixels-inside-wrap" val

data TextTagPixelsInsideWrapPropertyInfo
instance AttrInfo TextTagPixelsInsideWrapPropertyInfo where
    type AttrAllowedOps TextTagPixelsInsideWrapPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagPixelsInsideWrapPropertyInfo = (~) Int32
    type AttrBaseTypeConstraint TextTagPixelsInsideWrapPropertyInfo = TextTagK
    type AttrGetType TextTagPixelsInsideWrapPropertyInfo = Int32
    type AttrLabel TextTagPixelsInsideWrapPropertyInfo = "TextTag::pixels-inside-wrap"
    attrGet _ = getTextTagPixelsInsideWrap
    attrSet _ = setTextTagPixelsInsideWrap
    attrConstruct _ = constructTextTagPixelsInsideWrap

-- VVV Prop "pixels-inside-wrap-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagPixelsInsideWrapSet :: (MonadIO m, TextTagK o) => o -> m Bool
getTextTagPixelsInsideWrapSet obj = liftIO $ getObjectPropertyBool obj "pixels-inside-wrap-set"

setTextTagPixelsInsideWrapSet :: (MonadIO m, TextTagK o) => o -> Bool -> m ()
setTextTagPixelsInsideWrapSet obj val = liftIO $ setObjectPropertyBool obj "pixels-inside-wrap-set" val

constructTextTagPixelsInsideWrapSet :: Bool -> IO ([Char], GValue)
constructTextTagPixelsInsideWrapSet val = constructObjectPropertyBool "pixels-inside-wrap-set" val

data TextTagPixelsInsideWrapSetPropertyInfo
instance AttrInfo TextTagPixelsInsideWrapSetPropertyInfo where
    type AttrAllowedOps TextTagPixelsInsideWrapSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagPixelsInsideWrapSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagPixelsInsideWrapSetPropertyInfo = TextTagK
    type AttrGetType TextTagPixelsInsideWrapSetPropertyInfo = Bool
    type AttrLabel TextTagPixelsInsideWrapSetPropertyInfo = "TextTag::pixels-inside-wrap-set"
    attrGet _ = getTextTagPixelsInsideWrapSet
    attrSet _ = setTextTagPixelsInsideWrapSet
    attrConstruct _ = constructTextTagPixelsInsideWrapSet

-- VVV Prop "right-margin"
   -- Type: TBasicType TInt32
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagRightMargin :: (MonadIO m, TextTagK o) => o -> m Int32
getTextTagRightMargin obj = liftIO $ getObjectPropertyCInt obj "right-margin"

setTextTagRightMargin :: (MonadIO m, TextTagK o) => o -> Int32 -> m ()
setTextTagRightMargin obj val = liftIO $ setObjectPropertyCInt obj "right-margin" val

constructTextTagRightMargin :: Int32 -> IO ([Char], GValue)
constructTextTagRightMargin val = constructObjectPropertyCInt "right-margin" val

data TextTagRightMarginPropertyInfo
instance AttrInfo TextTagRightMarginPropertyInfo where
    type AttrAllowedOps TextTagRightMarginPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagRightMarginPropertyInfo = (~) Int32
    type AttrBaseTypeConstraint TextTagRightMarginPropertyInfo = TextTagK
    type AttrGetType TextTagRightMarginPropertyInfo = Int32
    type AttrLabel TextTagRightMarginPropertyInfo = "TextTag::right-margin"
    attrGet _ = getTextTagRightMargin
    attrSet _ = setTextTagRightMargin
    attrConstruct _ = constructTextTagRightMargin

-- VVV Prop "right-margin-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagRightMarginSet :: (MonadIO m, TextTagK o) => o -> m Bool
getTextTagRightMarginSet obj = liftIO $ getObjectPropertyBool obj "right-margin-set"

setTextTagRightMarginSet :: (MonadIO m, TextTagK o) => o -> Bool -> m ()
setTextTagRightMarginSet obj val = liftIO $ setObjectPropertyBool obj "right-margin-set" val

constructTextTagRightMarginSet :: Bool -> IO ([Char], GValue)
constructTextTagRightMarginSet val = constructObjectPropertyBool "right-margin-set" val

data TextTagRightMarginSetPropertyInfo
instance AttrInfo TextTagRightMarginSetPropertyInfo where
    type AttrAllowedOps TextTagRightMarginSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagRightMarginSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagRightMarginSetPropertyInfo = TextTagK
    type AttrGetType TextTagRightMarginSetPropertyInfo = Bool
    type AttrLabel TextTagRightMarginSetPropertyInfo = "TextTag::right-margin-set"
    attrGet _ = getTextTagRightMarginSet
    attrSet _ = setTextTagRightMarginSet
    attrConstruct _ = constructTextTagRightMarginSet

-- VVV Prop "rise"
   -- Type: TBasicType TInt32
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagRise :: (MonadIO m, TextTagK o) => o -> m Int32
getTextTagRise obj = liftIO $ getObjectPropertyCInt obj "rise"

setTextTagRise :: (MonadIO m, TextTagK o) => o -> Int32 -> m ()
setTextTagRise obj val = liftIO $ setObjectPropertyCInt obj "rise" val

constructTextTagRise :: Int32 -> IO ([Char], GValue)
constructTextTagRise val = constructObjectPropertyCInt "rise" val

data TextTagRisePropertyInfo
instance AttrInfo TextTagRisePropertyInfo where
    type AttrAllowedOps TextTagRisePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagRisePropertyInfo = (~) Int32
    type AttrBaseTypeConstraint TextTagRisePropertyInfo = TextTagK
    type AttrGetType TextTagRisePropertyInfo = Int32
    type AttrLabel TextTagRisePropertyInfo = "TextTag::rise"
    attrGet _ = getTextTagRise
    attrSet _ = setTextTagRise
    attrConstruct _ = constructTextTagRise

-- VVV Prop "rise-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagRiseSet :: (MonadIO m, TextTagK o) => o -> m Bool
getTextTagRiseSet obj = liftIO $ getObjectPropertyBool obj "rise-set"

setTextTagRiseSet :: (MonadIO m, TextTagK o) => o -> Bool -> m ()
setTextTagRiseSet obj val = liftIO $ setObjectPropertyBool obj "rise-set" val

constructTextTagRiseSet :: Bool -> IO ([Char], GValue)
constructTextTagRiseSet val = constructObjectPropertyBool "rise-set" val

data TextTagRiseSetPropertyInfo
instance AttrInfo TextTagRiseSetPropertyInfo where
    type AttrAllowedOps TextTagRiseSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagRiseSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagRiseSetPropertyInfo = TextTagK
    type AttrGetType TextTagRiseSetPropertyInfo = Bool
    type AttrLabel TextTagRiseSetPropertyInfo = "TextTag::rise-set"
    attrGet _ = getTextTagRiseSet
    attrSet _ = setTextTagRiseSet
    attrConstruct _ = constructTextTagRiseSet

-- VVV Prop "scale"
   -- Type: TBasicType TDouble
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagScale :: (MonadIO m, TextTagK o) => o -> m Double
getTextTagScale obj = liftIO $ getObjectPropertyDouble obj "scale"

setTextTagScale :: (MonadIO m, TextTagK o) => o -> Double -> m ()
setTextTagScale obj val = liftIO $ setObjectPropertyDouble obj "scale" val

constructTextTagScale :: Double -> IO ([Char], GValue)
constructTextTagScale val = constructObjectPropertyDouble "scale" val

data TextTagScalePropertyInfo
instance AttrInfo TextTagScalePropertyInfo where
    type AttrAllowedOps TextTagScalePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagScalePropertyInfo = (~) Double
    type AttrBaseTypeConstraint TextTagScalePropertyInfo = TextTagK
    type AttrGetType TextTagScalePropertyInfo = Double
    type AttrLabel TextTagScalePropertyInfo = "TextTag::scale"
    attrGet _ = getTextTagScale
    attrSet _ = setTextTagScale
    attrConstruct _ = constructTextTagScale

-- VVV Prop "scale-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagScaleSet :: (MonadIO m, TextTagK o) => o -> m Bool
getTextTagScaleSet obj = liftIO $ getObjectPropertyBool obj "scale-set"

setTextTagScaleSet :: (MonadIO m, TextTagK o) => o -> Bool -> m ()
setTextTagScaleSet obj val = liftIO $ setObjectPropertyBool obj "scale-set" val

constructTextTagScaleSet :: Bool -> IO ([Char], GValue)
constructTextTagScaleSet val = constructObjectPropertyBool "scale-set" val

data TextTagScaleSetPropertyInfo
instance AttrInfo TextTagScaleSetPropertyInfo where
    type AttrAllowedOps TextTagScaleSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagScaleSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagScaleSetPropertyInfo = TextTagK
    type AttrGetType TextTagScaleSetPropertyInfo = Bool
    type AttrLabel TextTagScaleSetPropertyInfo = "TextTag::scale-set"
    attrGet _ = getTextTagScaleSet
    attrSet _ = setTextTagScaleSet
    attrConstruct _ = constructTextTagScaleSet

-- VVV Prop "size"
   -- Type: TBasicType TInt32
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagSize :: (MonadIO m, TextTagK o) => o -> m Int32
getTextTagSize obj = liftIO $ getObjectPropertyCInt obj "size"

setTextTagSize :: (MonadIO m, TextTagK o) => o -> Int32 -> m ()
setTextTagSize obj val = liftIO $ setObjectPropertyCInt obj "size" val

constructTextTagSize :: Int32 -> IO ([Char], GValue)
constructTextTagSize val = constructObjectPropertyCInt "size" val

data TextTagSizePropertyInfo
instance AttrInfo TextTagSizePropertyInfo where
    type AttrAllowedOps TextTagSizePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagSizePropertyInfo = (~) Int32
    type AttrBaseTypeConstraint TextTagSizePropertyInfo = TextTagK
    type AttrGetType TextTagSizePropertyInfo = Int32
    type AttrLabel TextTagSizePropertyInfo = "TextTag::size"
    attrGet _ = getTextTagSize
    attrSet _ = setTextTagSize
    attrConstruct _ = constructTextTagSize

-- VVV Prop "size-points"
   -- Type: TBasicType TDouble
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagSizePoints :: (MonadIO m, TextTagK o) => o -> m Double
getTextTagSizePoints obj = liftIO $ getObjectPropertyDouble obj "size-points"

setTextTagSizePoints :: (MonadIO m, TextTagK o) => o -> Double -> m ()
setTextTagSizePoints obj val = liftIO $ setObjectPropertyDouble obj "size-points" val

constructTextTagSizePoints :: Double -> IO ([Char], GValue)
constructTextTagSizePoints val = constructObjectPropertyDouble "size-points" val

data TextTagSizePointsPropertyInfo
instance AttrInfo TextTagSizePointsPropertyInfo where
    type AttrAllowedOps TextTagSizePointsPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagSizePointsPropertyInfo = (~) Double
    type AttrBaseTypeConstraint TextTagSizePointsPropertyInfo = TextTagK
    type AttrGetType TextTagSizePointsPropertyInfo = Double
    type AttrLabel TextTagSizePointsPropertyInfo = "TextTag::size-points"
    attrGet _ = getTextTagSizePoints
    attrSet _ = setTextTagSizePoints
    attrConstruct _ = constructTextTagSizePoints

-- VVV Prop "size-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagSizeSet :: (MonadIO m, TextTagK o) => o -> m Bool
getTextTagSizeSet obj = liftIO $ getObjectPropertyBool obj "size-set"

setTextTagSizeSet :: (MonadIO m, TextTagK o) => o -> Bool -> m ()
setTextTagSizeSet obj val = liftIO $ setObjectPropertyBool obj "size-set" val

constructTextTagSizeSet :: Bool -> IO ([Char], GValue)
constructTextTagSizeSet val = constructObjectPropertyBool "size-set" val

data TextTagSizeSetPropertyInfo
instance AttrInfo TextTagSizeSetPropertyInfo where
    type AttrAllowedOps TextTagSizeSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagSizeSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagSizeSetPropertyInfo = TextTagK
    type AttrGetType TextTagSizeSetPropertyInfo = Bool
    type AttrLabel TextTagSizeSetPropertyInfo = "TextTag::size-set"
    attrGet _ = getTextTagSizeSet
    attrSet _ = setTextTagSizeSet
    attrConstruct _ = constructTextTagSizeSet

-- VVV Prop "stretch"
   -- Type: TInterface "Pango" "Stretch"
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagStretch :: (MonadIO m, TextTagK o) => o -> m Pango.Stretch
getTextTagStretch obj = liftIO $ getObjectPropertyEnum obj "stretch"

setTextTagStretch :: (MonadIO m, TextTagK o) => o -> Pango.Stretch -> m ()
setTextTagStretch obj val = liftIO $ setObjectPropertyEnum obj "stretch" val

constructTextTagStretch :: Pango.Stretch -> IO ([Char], GValue)
constructTextTagStretch val = constructObjectPropertyEnum "stretch" val

data TextTagStretchPropertyInfo
instance AttrInfo TextTagStretchPropertyInfo where
    type AttrAllowedOps TextTagStretchPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagStretchPropertyInfo = (~) Pango.Stretch
    type AttrBaseTypeConstraint TextTagStretchPropertyInfo = TextTagK
    type AttrGetType TextTagStretchPropertyInfo = Pango.Stretch
    type AttrLabel TextTagStretchPropertyInfo = "TextTag::stretch"
    attrGet _ = getTextTagStretch
    attrSet _ = setTextTagStretch
    attrConstruct _ = constructTextTagStretch

-- VVV Prop "stretch-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagStretchSet :: (MonadIO m, TextTagK o) => o -> m Bool
getTextTagStretchSet obj = liftIO $ getObjectPropertyBool obj "stretch-set"

setTextTagStretchSet :: (MonadIO m, TextTagK o) => o -> Bool -> m ()
setTextTagStretchSet obj val = liftIO $ setObjectPropertyBool obj "stretch-set" val

constructTextTagStretchSet :: Bool -> IO ([Char], GValue)
constructTextTagStretchSet val = constructObjectPropertyBool "stretch-set" val

data TextTagStretchSetPropertyInfo
instance AttrInfo TextTagStretchSetPropertyInfo where
    type AttrAllowedOps TextTagStretchSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagStretchSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagStretchSetPropertyInfo = TextTagK
    type AttrGetType TextTagStretchSetPropertyInfo = Bool
    type AttrLabel TextTagStretchSetPropertyInfo = "TextTag::stretch-set"
    attrGet _ = getTextTagStretchSet
    attrSet _ = setTextTagStretchSet
    attrConstruct _ = constructTextTagStretchSet

-- VVV Prop "strikethrough"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagStrikethrough :: (MonadIO m, TextTagK o) => o -> m Bool
getTextTagStrikethrough obj = liftIO $ getObjectPropertyBool obj "strikethrough"

setTextTagStrikethrough :: (MonadIO m, TextTagK o) => o -> Bool -> m ()
setTextTagStrikethrough obj val = liftIO $ setObjectPropertyBool obj "strikethrough" val

constructTextTagStrikethrough :: Bool -> IO ([Char], GValue)
constructTextTagStrikethrough val = constructObjectPropertyBool "strikethrough" val

data TextTagStrikethroughPropertyInfo
instance AttrInfo TextTagStrikethroughPropertyInfo where
    type AttrAllowedOps TextTagStrikethroughPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagStrikethroughPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagStrikethroughPropertyInfo = TextTagK
    type AttrGetType TextTagStrikethroughPropertyInfo = Bool
    type AttrLabel TextTagStrikethroughPropertyInfo = "TextTag::strikethrough"
    attrGet _ = getTextTagStrikethrough
    attrSet _ = setTextTagStrikethrough
    attrConstruct _ = constructTextTagStrikethrough

-- VVV Prop "strikethrough-rgba"
   -- Type: TInterface "Gdk" "RGBA"
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagStrikethroughRgba :: (MonadIO m, TextTagK o) => o -> m Gdk.RGBA
getTextTagStrikethroughRgba obj = liftIO $ getObjectPropertyBoxed obj "strikethrough-rgba" Gdk.RGBA

setTextTagStrikethroughRgba :: (MonadIO m, TextTagK o) => o -> Gdk.RGBA -> m ()
setTextTagStrikethroughRgba obj val = liftIO $ setObjectPropertyBoxed obj "strikethrough-rgba" val

constructTextTagStrikethroughRgba :: Gdk.RGBA -> IO ([Char], GValue)
constructTextTagStrikethroughRgba val = constructObjectPropertyBoxed "strikethrough-rgba" val

data TextTagStrikethroughRgbaPropertyInfo
instance AttrInfo TextTagStrikethroughRgbaPropertyInfo where
    type AttrAllowedOps TextTagStrikethroughRgbaPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagStrikethroughRgbaPropertyInfo = (~) Gdk.RGBA
    type AttrBaseTypeConstraint TextTagStrikethroughRgbaPropertyInfo = TextTagK
    type AttrGetType TextTagStrikethroughRgbaPropertyInfo = Gdk.RGBA
    type AttrLabel TextTagStrikethroughRgbaPropertyInfo = "TextTag::strikethrough-rgba"
    attrGet _ = getTextTagStrikethroughRgba
    attrSet _ = setTextTagStrikethroughRgba
    attrConstruct _ = constructTextTagStrikethroughRgba

-- VVV Prop "strikethrough-rgba-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagStrikethroughRgbaSet :: (MonadIO m, TextTagK o) => o -> m Bool
getTextTagStrikethroughRgbaSet obj = liftIO $ getObjectPropertyBool obj "strikethrough-rgba-set"

setTextTagStrikethroughRgbaSet :: (MonadIO m, TextTagK o) => o -> Bool -> m ()
setTextTagStrikethroughRgbaSet obj val = liftIO $ setObjectPropertyBool obj "strikethrough-rgba-set" val

constructTextTagStrikethroughRgbaSet :: Bool -> IO ([Char], GValue)
constructTextTagStrikethroughRgbaSet val = constructObjectPropertyBool "strikethrough-rgba-set" val

data TextTagStrikethroughRgbaSetPropertyInfo
instance AttrInfo TextTagStrikethroughRgbaSetPropertyInfo where
    type AttrAllowedOps TextTagStrikethroughRgbaSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagStrikethroughRgbaSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagStrikethroughRgbaSetPropertyInfo = TextTagK
    type AttrGetType TextTagStrikethroughRgbaSetPropertyInfo = Bool
    type AttrLabel TextTagStrikethroughRgbaSetPropertyInfo = "TextTag::strikethrough-rgba-set"
    attrGet _ = getTextTagStrikethroughRgbaSet
    attrSet _ = setTextTagStrikethroughRgbaSet
    attrConstruct _ = constructTextTagStrikethroughRgbaSet

-- VVV Prop "strikethrough-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagStrikethroughSet :: (MonadIO m, TextTagK o) => o -> m Bool
getTextTagStrikethroughSet obj = liftIO $ getObjectPropertyBool obj "strikethrough-set"

setTextTagStrikethroughSet :: (MonadIO m, TextTagK o) => o -> Bool -> m ()
setTextTagStrikethroughSet obj val = liftIO $ setObjectPropertyBool obj "strikethrough-set" val

constructTextTagStrikethroughSet :: Bool -> IO ([Char], GValue)
constructTextTagStrikethroughSet val = constructObjectPropertyBool "strikethrough-set" val

data TextTagStrikethroughSetPropertyInfo
instance AttrInfo TextTagStrikethroughSetPropertyInfo where
    type AttrAllowedOps TextTagStrikethroughSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagStrikethroughSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagStrikethroughSetPropertyInfo = TextTagK
    type AttrGetType TextTagStrikethroughSetPropertyInfo = Bool
    type AttrLabel TextTagStrikethroughSetPropertyInfo = "TextTag::strikethrough-set"
    attrGet _ = getTextTagStrikethroughSet
    attrSet _ = setTextTagStrikethroughSet
    attrConstruct _ = constructTextTagStrikethroughSet

-- VVV Prop "style"
   -- Type: TInterface "Pango" "Style"
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagStyle :: (MonadIO m, TextTagK o) => o -> m Pango.Style
getTextTagStyle obj = liftIO $ getObjectPropertyEnum obj "style"

setTextTagStyle :: (MonadIO m, TextTagK o) => o -> Pango.Style -> m ()
setTextTagStyle obj val = liftIO $ setObjectPropertyEnum obj "style" val

constructTextTagStyle :: Pango.Style -> IO ([Char], GValue)
constructTextTagStyle val = constructObjectPropertyEnum "style" val

data TextTagStylePropertyInfo
instance AttrInfo TextTagStylePropertyInfo where
    type AttrAllowedOps TextTagStylePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagStylePropertyInfo = (~) Pango.Style
    type AttrBaseTypeConstraint TextTagStylePropertyInfo = TextTagK
    type AttrGetType TextTagStylePropertyInfo = Pango.Style
    type AttrLabel TextTagStylePropertyInfo = "TextTag::style"
    attrGet _ = getTextTagStyle
    attrSet _ = setTextTagStyle
    attrConstruct _ = constructTextTagStyle

-- VVV Prop "style-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagStyleSet :: (MonadIO m, TextTagK o) => o -> m Bool
getTextTagStyleSet obj = liftIO $ getObjectPropertyBool obj "style-set"

setTextTagStyleSet :: (MonadIO m, TextTagK o) => o -> Bool -> m ()
setTextTagStyleSet obj val = liftIO $ setObjectPropertyBool obj "style-set" val

constructTextTagStyleSet :: Bool -> IO ([Char], GValue)
constructTextTagStyleSet val = constructObjectPropertyBool "style-set" val

data TextTagStyleSetPropertyInfo
instance AttrInfo TextTagStyleSetPropertyInfo where
    type AttrAllowedOps TextTagStyleSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagStyleSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagStyleSetPropertyInfo = TextTagK
    type AttrGetType TextTagStyleSetPropertyInfo = Bool
    type AttrLabel TextTagStyleSetPropertyInfo = "TextTag::style-set"
    attrGet _ = getTextTagStyleSet
    attrSet _ = setTextTagStyleSet
    attrConstruct _ = constructTextTagStyleSet

-- VVV Prop "tabs"
   -- Type: TInterface "Pango" "TabArray"
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagTabs :: (MonadIO m, TextTagK o) => o -> m Pango.TabArray
getTextTagTabs obj = liftIO $ getObjectPropertyBoxed obj "tabs" Pango.TabArray

setTextTagTabs :: (MonadIO m, TextTagK o) => o -> Pango.TabArray -> m ()
setTextTagTabs obj val = liftIO $ setObjectPropertyBoxed obj "tabs" val

constructTextTagTabs :: Pango.TabArray -> IO ([Char], GValue)
constructTextTagTabs val = constructObjectPropertyBoxed "tabs" val

data TextTagTabsPropertyInfo
instance AttrInfo TextTagTabsPropertyInfo where
    type AttrAllowedOps TextTagTabsPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagTabsPropertyInfo = (~) Pango.TabArray
    type AttrBaseTypeConstraint TextTagTabsPropertyInfo = TextTagK
    type AttrGetType TextTagTabsPropertyInfo = Pango.TabArray
    type AttrLabel TextTagTabsPropertyInfo = "TextTag::tabs"
    attrGet _ = getTextTagTabs
    attrSet _ = setTextTagTabs
    attrConstruct _ = constructTextTagTabs

-- VVV Prop "tabs-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagTabsSet :: (MonadIO m, TextTagK o) => o -> m Bool
getTextTagTabsSet obj = liftIO $ getObjectPropertyBool obj "tabs-set"

setTextTagTabsSet :: (MonadIO m, TextTagK o) => o -> Bool -> m ()
setTextTagTabsSet obj val = liftIO $ setObjectPropertyBool obj "tabs-set" val

constructTextTagTabsSet :: Bool -> IO ([Char], GValue)
constructTextTagTabsSet val = constructObjectPropertyBool "tabs-set" val

data TextTagTabsSetPropertyInfo
instance AttrInfo TextTagTabsSetPropertyInfo where
    type AttrAllowedOps TextTagTabsSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagTabsSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagTabsSetPropertyInfo = TextTagK
    type AttrGetType TextTagTabsSetPropertyInfo = Bool
    type AttrLabel TextTagTabsSetPropertyInfo = "TextTag::tabs-set"
    attrGet _ = getTextTagTabsSet
    attrSet _ = setTextTagTabsSet
    attrConstruct _ = constructTextTagTabsSet

-- VVV Prop "underline"
   -- Type: TInterface "Pango" "Underline"
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagUnderline :: (MonadIO m, TextTagK o) => o -> m Pango.Underline
getTextTagUnderline obj = liftIO $ getObjectPropertyEnum obj "underline"

setTextTagUnderline :: (MonadIO m, TextTagK o) => o -> Pango.Underline -> m ()
setTextTagUnderline obj val = liftIO $ setObjectPropertyEnum obj "underline" val

constructTextTagUnderline :: Pango.Underline -> IO ([Char], GValue)
constructTextTagUnderline val = constructObjectPropertyEnum "underline" val

data TextTagUnderlinePropertyInfo
instance AttrInfo TextTagUnderlinePropertyInfo where
    type AttrAllowedOps TextTagUnderlinePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagUnderlinePropertyInfo = (~) Pango.Underline
    type AttrBaseTypeConstraint TextTagUnderlinePropertyInfo = TextTagK
    type AttrGetType TextTagUnderlinePropertyInfo = Pango.Underline
    type AttrLabel TextTagUnderlinePropertyInfo = "TextTag::underline"
    attrGet _ = getTextTagUnderline
    attrSet _ = setTextTagUnderline
    attrConstruct _ = constructTextTagUnderline

-- VVV Prop "underline-rgba"
   -- Type: TInterface "Gdk" "RGBA"
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagUnderlineRgba :: (MonadIO m, TextTagK o) => o -> m Gdk.RGBA
getTextTagUnderlineRgba obj = liftIO $ getObjectPropertyBoxed obj "underline-rgba" Gdk.RGBA

setTextTagUnderlineRgba :: (MonadIO m, TextTagK o) => o -> Gdk.RGBA -> m ()
setTextTagUnderlineRgba obj val = liftIO $ setObjectPropertyBoxed obj "underline-rgba" val

constructTextTagUnderlineRgba :: Gdk.RGBA -> IO ([Char], GValue)
constructTextTagUnderlineRgba val = constructObjectPropertyBoxed "underline-rgba" val

data TextTagUnderlineRgbaPropertyInfo
instance AttrInfo TextTagUnderlineRgbaPropertyInfo where
    type AttrAllowedOps TextTagUnderlineRgbaPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagUnderlineRgbaPropertyInfo = (~) Gdk.RGBA
    type AttrBaseTypeConstraint TextTagUnderlineRgbaPropertyInfo = TextTagK
    type AttrGetType TextTagUnderlineRgbaPropertyInfo = Gdk.RGBA
    type AttrLabel TextTagUnderlineRgbaPropertyInfo = "TextTag::underline-rgba"
    attrGet _ = getTextTagUnderlineRgba
    attrSet _ = setTextTagUnderlineRgba
    attrConstruct _ = constructTextTagUnderlineRgba

-- VVV Prop "underline-rgba-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagUnderlineRgbaSet :: (MonadIO m, TextTagK o) => o -> m Bool
getTextTagUnderlineRgbaSet obj = liftIO $ getObjectPropertyBool obj "underline-rgba-set"

setTextTagUnderlineRgbaSet :: (MonadIO m, TextTagK o) => o -> Bool -> m ()
setTextTagUnderlineRgbaSet obj val = liftIO $ setObjectPropertyBool obj "underline-rgba-set" val

constructTextTagUnderlineRgbaSet :: Bool -> IO ([Char], GValue)
constructTextTagUnderlineRgbaSet val = constructObjectPropertyBool "underline-rgba-set" val

data TextTagUnderlineRgbaSetPropertyInfo
instance AttrInfo TextTagUnderlineRgbaSetPropertyInfo where
    type AttrAllowedOps TextTagUnderlineRgbaSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagUnderlineRgbaSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagUnderlineRgbaSetPropertyInfo = TextTagK
    type AttrGetType TextTagUnderlineRgbaSetPropertyInfo = Bool
    type AttrLabel TextTagUnderlineRgbaSetPropertyInfo = "TextTag::underline-rgba-set"
    attrGet _ = getTextTagUnderlineRgbaSet
    attrSet _ = setTextTagUnderlineRgbaSet
    attrConstruct _ = constructTextTagUnderlineRgbaSet

-- VVV Prop "underline-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagUnderlineSet :: (MonadIO m, TextTagK o) => o -> m Bool
getTextTagUnderlineSet obj = liftIO $ getObjectPropertyBool obj "underline-set"

setTextTagUnderlineSet :: (MonadIO m, TextTagK o) => o -> Bool -> m ()
setTextTagUnderlineSet obj val = liftIO $ setObjectPropertyBool obj "underline-set" val

constructTextTagUnderlineSet :: Bool -> IO ([Char], GValue)
constructTextTagUnderlineSet val = constructObjectPropertyBool "underline-set" val

data TextTagUnderlineSetPropertyInfo
instance AttrInfo TextTagUnderlineSetPropertyInfo where
    type AttrAllowedOps TextTagUnderlineSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagUnderlineSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagUnderlineSetPropertyInfo = TextTagK
    type AttrGetType TextTagUnderlineSetPropertyInfo = Bool
    type AttrLabel TextTagUnderlineSetPropertyInfo = "TextTag::underline-set"
    attrGet _ = getTextTagUnderlineSet
    attrSet _ = setTextTagUnderlineSet
    attrConstruct _ = constructTextTagUnderlineSet

-- VVV Prop "variant"
   -- Type: TInterface "Pango" "Variant"
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagVariant :: (MonadIO m, TextTagK o) => o -> m Pango.Variant
getTextTagVariant obj = liftIO $ getObjectPropertyEnum obj "variant"

setTextTagVariant :: (MonadIO m, TextTagK o) => o -> Pango.Variant -> m ()
setTextTagVariant obj val = liftIO $ setObjectPropertyEnum obj "variant" val

constructTextTagVariant :: Pango.Variant -> IO ([Char], GValue)
constructTextTagVariant val = constructObjectPropertyEnum "variant" val

data TextTagVariantPropertyInfo
instance AttrInfo TextTagVariantPropertyInfo where
    type AttrAllowedOps TextTagVariantPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagVariantPropertyInfo = (~) Pango.Variant
    type AttrBaseTypeConstraint TextTagVariantPropertyInfo = TextTagK
    type AttrGetType TextTagVariantPropertyInfo = Pango.Variant
    type AttrLabel TextTagVariantPropertyInfo = "TextTag::variant"
    attrGet _ = getTextTagVariant
    attrSet _ = setTextTagVariant
    attrConstruct _ = constructTextTagVariant

-- VVV Prop "variant-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagVariantSet :: (MonadIO m, TextTagK o) => o -> m Bool
getTextTagVariantSet obj = liftIO $ getObjectPropertyBool obj "variant-set"

setTextTagVariantSet :: (MonadIO m, TextTagK o) => o -> Bool -> m ()
setTextTagVariantSet obj val = liftIO $ setObjectPropertyBool obj "variant-set" val

constructTextTagVariantSet :: Bool -> IO ([Char], GValue)
constructTextTagVariantSet val = constructObjectPropertyBool "variant-set" val

data TextTagVariantSetPropertyInfo
instance AttrInfo TextTagVariantSetPropertyInfo where
    type AttrAllowedOps TextTagVariantSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagVariantSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagVariantSetPropertyInfo = TextTagK
    type AttrGetType TextTagVariantSetPropertyInfo = Bool
    type AttrLabel TextTagVariantSetPropertyInfo = "TextTag::variant-set"
    attrGet _ = getTextTagVariantSet
    attrSet _ = setTextTagVariantSet
    attrConstruct _ = constructTextTagVariantSet

-- VVV Prop "weight"
   -- Type: TBasicType TInt32
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagWeight :: (MonadIO m, TextTagK o) => o -> m Int32
getTextTagWeight obj = liftIO $ getObjectPropertyCInt obj "weight"

setTextTagWeight :: (MonadIO m, TextTagK o) => o -> Int32 -> m ()
setTextTagWeight obj val = liftIO $ setObjectPropertyCInt obj "weight" val

constructTextTagWeight :: Int32 -> IO ([Char], GValue)
constructTextTagWeight val = constructObjectPropertyCInt "weight" val

data TextTagWeightPropertyInfo
instance AttrInfo TextTagWeightPropertyInfo where
    type AttrAllowedOps TextTagWeightPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagWeightPropertyInfo = (~) Int32
    type AttrBaseTypeConstraint TextTagWeightPropertyInfo = TextTagK
    type AttrGetType TextTagWeightPropertyInfo = Int32
    type AttrLabel TextTagWeightPropertyInfo = "TextTag::weight"
    attrGet _ = getTextTagWeight
    attrSet _ = setTextTagWeight
    attrConstruct _ = constructTextTagWeight

-- VVV Prop "weight-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagWeightSet :: (MonadIO m, TextTagK o) => o -> m Bool
getTextTagWeightSet obj = liftIO $ getObjectPropertyBool obj "weight-set"

setTextTagWeightSet :: (MonadIO m, TextTagK o) => o -> Bool -> m ()
setTextTagWeightSet obj val = liftIO $ setObjectPropertyBool obj "weight-set" val

constructTextTagWeightSet :: Bool -> IO ([Char], GValue)
constructTextTagWeightSet val = constructObjectPropertyBool "weight-set" val

data TextTagWeightSetPropertyInfo
instance AttrInfo TextTagWeightSetPropertyInfo where
    type AttrAllowedOps TextTagWeightSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagWeightSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagWeightSetPropertyInfo = TextTagK
    type AttrGetType TextTagWeightSetPropertyInfo = Bool
    type AttrLabel TextTagWeightSetPropertyInfo = "TextTag::weight-set"
    attrGet _ = getTextTagWeightSet
    attrSet _ = setTextTagWeightSet
    attrConstruct _ = constructTextTagWeightSet

-- VVV Prop "wrap-mode"
   -- Type: TInterface "Gtk" "WrapMode"
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagWrapMode :: (MonadIO m, TextTagK o) => o -> m WrapMode
getTextTagWrapMode obj = liftIO $ getObjectPropertyEnum obj "wrap-mode"

setTextTagWrapMode :: (MonadIO m, TextTagK o) => o -> WrapMode -> m ()
setTextTagWrapMode obj val = liftIO $ setObjectPropertyEnum obj "wrap-mode" val

constructTextTagWrapMode :: WrapMode -> IO ([Char], GValue)
constructTextTagWrapMode val = constructObjectPropertyEnum "wrap-mode" val

data TextTagWrapModePropertyInfo
instance AttrInfo TextTagWrapModePropertyInfo where
    type AttrAllowedOps TextTagWrapModePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagWrapModePropertyInfo = (~) WrapMode
    type AttrBaseTypeConstraint TextTagWrapModePropertyInfo = TextTagK
    type AttrGetType TextTagWrapModePropertyInfo = WrapMode
    type AttrLabel TextTagWrapModePropertyInfo = "TextTag::wrap-mode"
    attrGet _ = getTextTagWrapMode
    attrSet _ = setTextTagWrapMode
    attrConstruct _ = constructTextTagWrapMode

-- VVV Prop "wrap-mode-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTextTagWrapModeSet :: (MonadIO m, TextTagK o) => o -> m Bool
getTextTagWrapModeSet obj = liftIO $ getObjectPropertyBool obj "wrap-mode-set"

setTextTagWrapModeSet :: (MonadIO m, TextTagK o) => o -> Bool -> m ()
setTextTagWrapModeSet obj val = liftIO $ setObjectPropertyBool obj "wrap-mode-set" val

constructTextTagWrapModeSet :: Bool -> IO ([Char], GValue)
constructTextTagWrapModeSet val = constructObjectPropertyBool "wrap-mode-set" val

data TextTagWrapModeSetPropertyInfo
instance AttrInfo TextTagWrapModeSetPropertyInfo where
    type AttrAllowedOps TextTagWrapModeSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagWrapModeSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagWrapModeSetPropertyInfo = TextTagK
    type AttrGetType TextTagWrapModeSetPropertyInfo = Bool
    type AttrLabel TextTagWrapModeSetPropertyInfo = "TextTag::wrap-mode-set"
    attrGet _ = getTextTagWrapModeSet
    attrSet _ = setTextTagWrapModeSet
    attrConstruct _ = constructTextTagWrapModeSet

type instance AttributeList TextTag = TextTagAttributeList
type TextTagAttributeList = ('[ '("accumulative-margin", TextTagAccumulativeMarginPropertyInfo), '("background", TextTagBackgroundPropertyInfo), '("background-full-height", TextTagBackgroundFullHeightPropertyInfo), '("background-full-height-set", TextTagBackgroundFullHeightSetPropertyInfo), '("background-gdk", TextTagBackgroundGdkPropertyInfo), '("background-rgba", TextTagBackgroundRgbaPropertyInfo), '("background-set", TextTagBackgroundSetPropertyInfo), '("direction", TextTagDirectionPropertyInfo), '("editable", TextTagEditablePropertyInfo), '("editable-set", TextTagEditableSetPropertyInfo), '("fallback", TextTagFallbackPropertyInfo), '("fallback-set", TextTagFallbackSetPropertyInfo), '("family", TextTagFamilyPropertyInfo), '("family-set", TextTagFamilySetPropertyInfo), '("font", TextTagFontPropertyInfo), '("font-desc", TextTagFontDescPropertyInfo), '("foreground", TextTagForegroundPropertyInfo), '("foreground-gdk", TextTagForegroundGdkPropertyInfo), '("foreground-rgba", TextTagForegroundRgbaPropertyInfo), '("foreground-set", TextTagForegroundSetPropertyInfo), '("indent", TextTagIndentPropertyInfo), '("indent-set", TextTagIndentSetPropertyInfo), '("invisible", TextTagInvisiblePropertyInfo), '("invisible-set", TextTagInvisibleSetPropertyInfo), '("justification", TextTagJustificationPropertyInfo), '("justification-set", TextTagJustificationSetPropertyInfo), '("language", TextTagLanguagePropertyInfo), '("language-set", TextTagLanguageSetPropertyInfo), '("left-margin", TextTagLeftMarginPropertyInfo), '("left-margin-set", TextTagLeftMarginSetPropertyInfo), '("letter-spacing", TextTagLetterSpacingPropertyInfo), '("letter-spacing-set", TextTagLetterSpacingSetPropertyInfo), '("name", TextTagNamePropertyInfo), '("paragraph-background", TextTagParagraphBackgroundPropertyInfo), '("paragraph-background-gdk", TextTagParagraphBackgroundGdkPropertyInfo), '("paragraph-background-rgba", TextTagParagraphBackgroundRgbaPropertyInfo), '("paragraph-background-set", TextTagParagraphBackgroundSetPropertyInfo), '("pixels-above-lines", TextTagPixelsAboveLinesPropertyInfo), '("pixels-above-lines-set", TextTagPixelsAboveLinesSetPropertyInfo), '("pixels-below-lines", TextTagPixelsBelowLinesPropertyInfo), '("pixels-below-lines-set", TextTagPixelsBelowLinesSetPropertyInfo), '("pixels-inside-wrap", TextTagPixelsInsideWrapPropertyInfo), '("pixels-inside-wrap-set", TextTagPixelsInsideWrapSetPropertyInfo), '("right-margin", TextTagRightMarginPropertyInfo), '("right-margin-set", TextTagRightMarginSetPropertyInfo), '("rise", TextTagRisePropertyInfo), '("rise-set", TextTagRiseSetPropertyInfo), '("scale", TextTagScalePropertyInfo), '("scale-set", TextTagScaleSetPropertyInfo), '("size", TextTagSizePropertyInfo), '("size-points", TextTagSizePointsPropertyInfo), '("size-set", TextTagSizeSetPropertyInfo), '("stretch", TextTagStretchPropertyInfo), '("stretch-set", TextTagStretchSetPropertyInfo), '("strikethrough", TextTagStrikethroughPropertyInfo), '("strikethrough-rgba", TextTagStrikethroughRgbaPropertyInfo), '("strikethrough-rgba-set", TextTagStrikethroughRgbaSetPropertyInfo), '("strikethrough-set", TextTagStrikethroughSetPropertyInfo), '("style", TextTagStylePropertyInfo), '("style-set", TextTagStyleSetPropertyInfo), '("tabs", TextTagTabsPropertyInfo), '("tabs-set", TextTagTabsSetPropertyInfo), '("underline", TextTagUnderlinePropertyInfo), '("underline-rgba", TextTagUnderlineRgbaPropertyInfo), '("underline-rgba-set", TextTagUnderlineRgbaSetPropertyInfo), '("underline-set", TextTagUnderlineSetPropertyInfo), '("variant", TextTagVariantPropertyInfo), '("variant-set", TextTagVariantSetPropertyInfo), '("weight", TextTagWeightPropertyInfo), '("weight-set", TextTagWeightSetPropertyInfo), '("wrap-mode", TextTagWrapModePropertyInfo), '("wrap-mode-set", TextTagWrapModeSetPropertyInfo)] :: [(Symbol, *)])

data TextTagEventSignalInfo
instance SignalInfo TextTagEventSignalInfo where
    type HaskellCallbackType TextTagEventSignalInfo = TextTagEventCallback
    connectSignal _ = connectTextTagEvent

type instance SignalList TextTag = TextTagSignalList
type TextTagSignalList = ('[ '("event", TextTagEventSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])

-- method TextTag::new
-- method type : Constructor
-- Args : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gtk" "TextTag"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_tag_new" gtk_text_tag_new :: 
    CString ->                              -- name : TBasicType TUTF8
    IO (Ptr TextTag)


textTagNew ::
    (MonadIO m) =>
    Maybe (T.Text) ->                       -- name
    m TextTag
textTagNew name = liftIO $ do
    maybeName <- case name of
        Nothing -> return nullPtr
        Just jName -> do
            jName' <- textToCString jName
            return jName'
    result <- gtk_text_tag_new maybeName
    checkUnexpectedReturnNULL "gtk_text_tag_new" result
    result' <- (wrapObject TextTag) result
    freeMem maybeName
    return result'

-- method TextTag::event
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TextTag", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_object", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "iter", argType = TInterface "Gtk" "TextIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TextTag", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_object", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "iter", argType = TInterface "Gtk" "TextIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_tag_event" gtk_text_tag_event :: 
    Ptr TextTag ->                          -- _obj : TInterface "Gtk" "TextTag"
    Ptr GObject.Object ->                   -- event_object : TInterface "GObject" "Object"
    Ptr Gdk.Event ->                        -- event : TInterface "Gdk" "Event"
    Ptr TextIter ->                         -- iter : TInterface "Gtk" "TextIter"
    IO CInt


textTagEvent ::
    (MonadIO m, TextTagK a, GObject.ObjectK b) =>
    a ->                                    -- _obj
    b ->                                    -- event_object
    Gdk.Event ->                            -- event
    TextIter ->                             -- iter
    m Bool
textTagEvent _obj event_object event iter = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let event_object' = unsafeManagedPtrCastPtr event_object
    let event' = unsafeManagedPtrGetPtr event
    let iter' = unsafeManagedPtrGetPtr iter
    result <- gtk_text_tag_event _obj' event_object' event' iter'
    let result' = (/= 0) result
    touchManagedPtr _obj
    touchManagedPtr event_object
    touchManagedPtr event
    touchManagedPtr iter
    return result'

-- method TextTag::get_priority
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TextTag", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TextTag", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TInt32
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_tag_get_priority" gtk_text_tag_get_priority :: 
    Ptr TextTag ->                          -- _obj : TInterface "Gtk" "TextTag"
    IO Int32


textTagGetPriority ::
    (MonadIO m, TextTagK a) =>
    a ->                                    -- _obj
    m Int32
textTagGetPriority _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_text_tag_get_priority _obj'
    touchManagedPtr _obj
    return result

-- method TextTag::set_priority
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TextTag", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TextTag", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_tag_set_priority" gtk_text_tag_set_priority :: 
    Ptr TextTag ->                          -- _obj : TInterface "Gtk" "TextTag"
    Int32 ->                                -- priority : TBasicType TInt32
    IO ()


textTagSetPriority ::
    (MonadIO m, TextTagK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- priority
    m ()
textTagSetPriority _obj priority = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_text_tag_set_priority _obj' priority
    touchManagedPtr _obj
    return ()