{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)

You may wish to begin by reading the
[text widget conceptual overview][TextWidget]
which gives an overview of all the objects and
data types related to the text widget and how they work together.

Tags should be in the 'GI.Gtk.Objects.TextTagTable.TextTagTable' for a given 'GI.Gtk.Objects.TextBuffer.TextBuffer'
before using them with that buffer.

@/gtk_text_buffer_create_tag()/@ is the best way to create tags.
See “gtk3-demo” for numerous examples.

For each property of 'GI.Gtk.Objects.TextTag.TextTag', there is a “set” property, e.g.
“font-set” corresponds to “font”. These “set” properties reflect
whether a property has been set or not.
They are maintained by GTK+ and you should not set them independently.
-}

module GI.Gtk.Objects.TextTag
    ( 

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


 -- * Methods
-- ** changed #method:changed#
    TextTagChangedMethodInfo                ,
    textTagChanged                          ,


-- ** event #method:event#
    TextTagEventMethodInfo                  ,
    textTagEvent                            ,


-- ** getPriority #method:getPriority#
    TextTagGetPriorityMethodInfo            ,
    textTagGetPriority                      ,


-- ** new #method:new#
    textTagNew                              ,


-- ** setPriority #method:setPriority#
    TextTagSetPriorityMethodInfo            ,
    textTagSetPriority                      ,




 -- * Properties
-- ** accumulativeMargin #attr:accumulativeMargin#
    TextTagAccumulativeMarginPropertyInfo   ,
    constructTextTagAccumulativeMargin      ,
    getTextTagAccumulativeMargin            ,
    setTextTagAccumulativeMargin            ,
    textTagAccumulativeMargin               ,


-- ** background #attr:background#
    TextTagBackgroundPropertyInfo           ,
    clearTextTagBackground                  ,
    constructTextTagBackground              ,
    setTextTagBackground                    ,
    textTagBackground                       ,


-- ** backgroundFullHeight #attr:backgroundFullHeight#
    TextTagBackgroundFullHeightPropertyInfo ,
    constructTextTagBackgroundFullHeight    ,
    getTextTagBackgroundFullHeight          ,
    setTextTagBackgroundFullHeight          ,
    textTagBackgroundFullHeight             ,


-- ** backgroundFullHeightSet #attr:backgroundFullHeightSet#
    TextTagBackgroundFullHeightSetPropertyInfo,
    constructTextTagBackgroundFullHeightSet ,
    getTextTagBackgroundFullHeightSet       ,
    setTextTagBackgroundFullHeightSet       ,
    textTagBackgroundFullHeightSet          ,


-- ** backgroundGdk #attr:backgroundGdk#
    TextTagBackgroundGdkPropertyInfo        ,
    clearTextTagBackgroundGdk               ,
    constructTextTagBackgroundGdk           ,
    getTextTagBackgroundGdk                 ,
    setTextTagBackgroundGdk                 ,
    textTagBackgroundGdk                    ,


-- ** backgroundRgba #attr:backgroundRgba#
    TextTagBackgroundRgbaPropertyInfo       ,
    clearTextTagBackgroundRgba              ,
    constructTextTagBackgroundRgba          ,
    getTextTagBackgroundRgba                ,
    setTextTagBackgroundRgba                ,
    textTagBackgroundRgba                   ,


-- ** backgroundSet #attr:backgroundSet#
    TextTagBackgroundSetPropertyInfo        ,
    constructTextTagBackgroundSet           ,
    getTextTagBackgroundSet                 ,
    setTextTagBackgroundSet                 ,
    textTagBackgroundSet                    ,


-- ** direction #attr:direction#
    TextTagDirectionPropertyInfo            ,
    constructTextTagDirection               ,
    getTextTagDirection                     ,
    setTextTagDirection                     ,
    textTagDirection                        ,


-- ** editable #attr:editable#
    TextTagEditablePropertyInfo             ,
    constructTextTagEditable                ,
    getTextTagEditable                      ,
    setTextTagEditable                      ,
    textTagEditable                         ,


-- ** editableSet #attr:editableSet#
    TextTagEditableSetPropertyInfo          ,
    constructTextTagEditableSet             ,
    getTextTagEditableSet                   ,
    setTextTagEditableSet                   ,
    textTagEditableSet                      ,


-- ** fallback #attr:fallback#
    TextTagFallbackPropertyInfo             ,
    constructTextTagFallback                ,
    getTextTagFallback                      ,
    setTextTagFallback                      ,
    textTagFallback                         ,


-- ** fallbackSet #attr:fallbackSet#
    TextTagFallbackSetPropertyInfo          ,
    constructTextTagFallbackSet             ,
    getTextTagFallbackSet                   ,
    setTextTagFallbackSet                   ,
    textTagFallbackSet                      ,


-- ** family #attr:family#
    TextTagFamilyPropertyInfo               ,
    clearTextTagFamily                      ,
    constructTextTagFamily                  ,
    getTextTagFamily                        ,
    setTextTagFamily                        ,
    textTagFamily                           ,


-- ** familySet #attr:familySet#
    TextTagFamilySetPropertyInfo            ,
    constructTextTagFamilySet               ,
    getTextTagFamilySet                     ,
    setTextTagFamilySet                     ,
    textTagFamilySet                        ,


-- ** font #attr:font#
    TextTagFontPropertyInfo                 ,
    clearTextTagFont                        ,
    constructTextTagFont                    ,
    getTextTagFont                          ,
    setTextTagFont                          ,
    textTagFont                             ,


-- ** fontDesc #attr:fontDesc#
    TextTagFontDescPropertyInfo             ,
    clearTextTagFontDesc                    ,
    constructTextTagFontDesc                ,
    getTextTagFontDesc                      ,
    setTextTagFontDesc                      ,
    textTagFontDesc                         ,


-- ** fontFeatures #attr:fontFeatures#
    TextTagFontFeaturesPropertyInfo         ,
    clearTextTagFontFeatures                ,
    constructTextTagFontFeatures            ,
    getTextTagFontFeatures                  ,
    setTextTagFontFeatures                  ,
    textTagFontFeatures                     ,


-- ** fontFeaturesSet #attr:fontFeaturesSet#
    TextTagFontFeaturesSetPropertyInfo      ,
    constructTextTagFontFeaturesSet         ,
    getTextTagFontFeaturesSet               ,
    setTextTagFontFeaturesSet               ,
    textTagFontFeaturesSet                  ,


-- ** foreground #attr:foreground#
    TextTagForegroundPropertyInfo           ,
    clearTextTagForeground                  ,
    constructTextTagForeground              ,
    setTextTagForeground                    ,
    textTagForeground                       ,


-- ** foregroundGdk #attr:foregroundGdk#
    TextTagForegroundGdkPropertyInfo        ,
    clearTextTagForegroundGdk               ,
    constructTextTagForegroundGdk           ,
    getTextTagForegroundGdk                 ,
    setTextTagForegroundGdk                 ,
    textTagForegroundGdk                    ,


-- ** foregroundRgba #attr:foregroundRgba#
    TextTagForegroundRgbaPropertyInfo       ,
    clearTextTagForegroundRgba              ,
    constructTextTagForegroundRgba          ,
    getTextTagForegroundRgba                ,
    setTextTagForegroundRgba                ,
    textTagForegroundRgba                   ,


-- ** foregroundSet #attr:foregroundSet#
    TextTagForegroundSetPropertyInfo        ,
    constructTextTagForegroundSet           ,
    getTextTagForegroundSet                 ,
    setTextTagForegroundSet                 ,
    textTagForegroundSet                    ,


-- ** indent #attr:indent#
    TextTagIndentPropertyInfo               ,
    constructTextTagIndent                  ,
    getTextTagIndent                        ,
    setTextTagIndent                        ,
    textTagIndent                           ,


-- ** indentSet #attr:indentSet#
    TextTagIndentSetPropertyInfo            ,
    constructTextTagIndentSet               ,
    getTextTagIndentSet                     ,
    setTextTagIndentSet                     ,
    textTagIndentSet                        ,


-- ** invisible #attr:invisible#
    TextTagInvisiblePropertyInfo            ,
    constructTextTagInvisible               ,
    getTextTagInvisible                     ,
    setTextTagInvisible                     ,
    textTagInvisible                        ,


-- ** invisibleSet #attr:invisibleSet#
    TextTagInvisibleSetPropertyInfo         ,
    constructTextTagInvisibleSet            ,
    getTextTagInvisibleSet                  ,
    setTextTagInvisibleSet                  ,
    textTagInvisibleSet                     ,


-- ** justification #attr:justification#
    TextTagJustificationPropertyInfo        ,
    constructTextTagJustification           ,
    getTextTagJustification                 ,
    setTextTagJustification                 ,
    textTagJustification                    ,


-- ** justificationSet #attr:justificationSet#
    TextTagJustificationSetPropertyInfo     ,
    constructTextTagJustificationSet        ,
    getTextTagJustificationSet              ,
    setTextTagJustificationSet              ,
    textTagJustificationSet                 ,


-- ** language #attr:language#
    TextTagLanguagePropertyInfo             ,
    clearTextTagLanguage                    ,
    constructTextTagLanguage                ,
    getTextTagLanguage                      ,
    setTextTagLanguage                      ,
    textTagLanguage                         ,


-- ** languageSet #attr:languageSet#
    TextTagLanguageSetPropertyInfo          ,
    constructTextTagLanguageSet             ,
    getTextTagLanguageSet                   ,
    setTextTagLanguageSet                   ,
    textTagLanguageSet                      ,


-- ** leftMargin #attr:leftMargin#
    TextTagLeftMarginPropertyInfo           ,
    constructTextTagLeftMargin              ,
    getTextTagLeftMargin                    ,
    setTextTagLeftMargin                    ,
    textTagLeftMargin                       ,


-- ** leftMarginSet #attr:leftMarginSet#
    TextTagLeftMarginSetPropertyInfo        ,
    constructTextTagLeftMarginSet           ,
    getTextTagLeftMarginSet                 ,
    setTextTagLeftMarginSet                 ,
    textTagLeftMarginSet                    ,


-- ** letterSpacing #attr:letterSpacing#
    TextTagLetterSpacingPropertyInfo        ,
    constructTextTagLetterSpacing           ,
    getTextTagLetterSpacing                 ,
    setTextTagLetterSpacing                 ,
    textTagLetterSpacing                    ,


-- ** letterSpacingSet #attr:letterSpacingSet#
    TextTagLetterSpacingSetPropertyInfo     ,
    constructTextTagLetterSpacingSet        ,
    getTextTagLetterSpacingSet              ,
    setTextTagLetterSpacingSet              ,
    textTagLetterSpacingSet                 ,


-- ** name #attr:name#
    TextTagNamePropertyInfo                 ,
    constructTextTagName                    ,
    getTextTagName                          ,
    textTagName                             ,


-- ** paragraphBackground #attr:paragraphBackground#
    TextTagParagraphBackgroundPropertyInfo  ,
    clearTextTagParagraphBackground         ,
    constructTextTagParagraphBackground     ,
    setTextTagParagraphBackground           ,
    textTagParagraphBackground              ,


-- ** paragraphBackgroundGdk #attr:paragraphBackgroundGdk#
    TextTagParagraphBackgroundGdkPropertyInfo,
    clearTextTagParagraphBackgroundGdk      ,
    constructTextTagParagraphBackgroundGdk  ,
    getTextTagParagraphBackgroundGdk        ,
    setTextTagParagraphBackgroundGdk        ,
    textTagParagraphBackgroundGdk           ,


-- ** paragraphBackgroundRgba #attr:paragraphBackgroundRgba#
    TextTagParagraphBackgroundRgbaPropertyInfo,
    clearTextTagParagraphBackgroundRgba     ,
    constructTextTagParagraphBackgroundRgba ,
    getTextTagParagraphBackgroundRgba       ,
    setTextTagParagraphBackgroundRgba       ,
    textTagParagraphBackgroundRgba          ,


-- ** paragraphBackgroundSet #attr:paragraphBackgroundSet#
    TextTagParagraphBackgroundSetPropertyInfo,
    constructTextTagParagraphBackgroundSet  ,
    getTextTagParagraphBackgroundSet        ,
    setTextTagParagraphBackgroundSet        ,
    textTagParagraphBackgroundSet           ,


-- ** pixelsAboveLines #attr:pixelsAboveLines#
    TextTagPixelsAboveLinesPropertyInfo     ,
    constructTextTagPixelsAboveLines        ,
    getTextTagPixelsAboveLines              ,
    setTextTagPixelsAboveLines              ,
    textTagPixelsAboveLines                 ,


-- ** pixelsAboveLinesSet #attr:pixelsAboveLinesSet#
    TextTagPixelsAboveLinesSetPropertyInfo  ,
    constructTextTagPixelsAboveLinesSet     ,
    getTextTagPixelsAboveLinesSet           ,
    setTextTagPixelsAboveLinesSet           ,
    textTagPixelsAboveLinesSet              ,


-- ** pixelsBelowLines #attr:pixelsBelowLines#
    TextTagPixelsBelowLinesPropertyInfo     ,
    constructTextTagPixelsBelowLines        ,
    getTextTagPixelsBelowLines              ,
    setTextTagPixelsBelowLines              ,
    textTagPixelsBelowLines                 ,


-- ** pixelsBelowLinesSet #attr:pixelsBelowLinesSet#
    TextTagPixelsBelowLinesSetPropertyInfo  ,
    constructTextTagPixelsBelowLinesSet     ,
    getTextTagPixelsBelowLinesSet           ,
    setTextTagPixelsBelowLinesSet           ,
    textTagPixelsBelowLinesSet              ,


-- ** pixelsInsideWrap #attr:pixelsInsideWrap#
    TextTagPixelsInsideWrapPropertyInfo     ,
    constructTextTagPixelsInsideWrap        ,
    getTextTagPixelsInsideWrap              ,
    setTextTagPixelsInsideWrap              ,
    textTagPixelsInsideWrap                 ,


-- ** pixelsInsideWrapSet #attr:pixelsInsideWrapSet#
    TextTagPixelsInsideWrapSetPropertyInfo  ,
    constructTextTagPixelsInsideWrapSet     ,
    getTextTagPixelsInsideWrapSet           ,
    setTextTagPixelsInsideWrapSet           ,
    textTagPixelsInsideWrapSet              ,


-- ** rightMargin #attr:rightMargin#
    TextTagRightMarginPropertyInfo          ,
    constructTextTagRightMargin             ,
    getTextTagRightMargin                   ,
    setTextTagRightMargin                   ,
    textTagRightMargin                      ,


-- ** rightMarginSet #attr:rightMarginSet#
    TextTagRightMarginSetPropertyInfo       ,
    constructTextTagRightMarginSet          ,
    getTextTagRightMarginSet                ,
    setTextTagRightMarginSet                ,
    textTagRightMarginSet                   ,


-- ** rise #attr:rise#
    TextTagRisePropertyInfo                 ,
    constructTextTagRise                    ,
    getTextTagRise                          ,
    setTextTagRise                          ,
    textTagRise                             ,


-- ** riseSet #attr:riseSet#
    TextTagRiseSetPropertyInfo              ,
    constructTextTagRiseSet                 ,
    getTextTagRiseSet                       ,
    setTextTagRiseSet                       ,
    textTagRiseSet                          ,


-- ** scale #attr:scale#
    TextTagScalePropertyInfo                ,
    constructTextTagScale                   ,
    getTextTagScale                         ,
    setTextTagScale                         ,
    textTagScale                            ,


-- ** scaleSet #attr:scaleSet#
    TextTagScaleSetPropertyInfo             ,
    constructTextTagScaleSet                ,
    getTextTagScaleSet                      ,
    setTextTagScaleSet                      ,
    textTagScaleSet                         ,


-- ** size #attr:size#
    TextTagSizePropertyInfo                 ,
    constructTextTagSize                    ,
    getTextTagSize                          ,
    setTextTagSize                          ,
    textTagSize                             ,


-- ** sizePoints #attr:sizePoints#
    TextTagSizePointsPropertyInfo           ,
    constructTextTagSizePoints              ,
    getTextTagSizePoints                    ,
    setTextTagSizePoints                    ,
    textTagSizePoints                       ,


-- ** sizeSet #attr:sizeSet#
    TextTagSizeSetPropertyInfo              ,
    constructTextTagSizeSet                 ,
    getTextTagSizeSet                       ,
    setTextTagSizeSet                       ,
    textTagSizeSet                          ,


-- ** stretch #attr:stretch#
    TextTagStretchPropertyInfo              ,
    constructTextTagStretch                 ,
    getTextTagStretch                       ,
    setTextTagStretch                       ,
    textTagStretch                          ,


-- ** stretchSet #attr:stretchSet#
    TextTagStretchSetPropertyInfo           ,
    constructTextTagStretchSet              ,
    getTextTagStretchSet                    ,
    setTextTagStretchSet                    ,
    textTagStretchSet                       ,


-- ** strikethrough #attr:strikethrough#
    TextTagStrikethroughPropertyInfo        ,
    constructTextTagStrikethrough           ,
    getTextTagStrikethrough                 ,
    setTextTagStrikethrough                 ,
    textTagStrikethrough                    ,


-- ** strikethroughRgba #attr:strikethroughRgba#
    TextTagStrikethroughRgbaPropertyInfo    ,
    clearTextTagStrikethroughRgba           ,
    constructTextTagStrikethroughRgba       ,
    getTextTagStrikethroughRgba             ,
    setTextTagStrikethroughRgba             ,
    textTagStrikethroughRgba                ,


-- ** strikethroughRgbaSet #attr:strikethroughRgbaSet#
    TextTagStrikethroughRgbaSetPropertyInfo ,
    constructTextTagStrikethroughRgbaSet    ,
    getTextTagStrikethroughRgbaSet          ,
    setTextTagStrikethroughRgbaSet          ,
    textTagStrikethroughRgbaSet             ,


-- ** strikethroughSet #attr:strikethroughSet#
    TextTagStrikethroughSetPropertyInfo     ,
    constructTextTagStrikethroughSet        ,
    getTextTagStrikethroughSet              ,
    setTextTagStrikethroughSet              ,
    textTagStrikethroughSet                 ,


-- ** style #attr:style#
    TextTagStylePropertyInfo                ,
    constructTextTagStyle                   ,
    getTextTagStyle                         ,
    setTextTagStyle                         ,
    textTagStyle                            ,


-- ** styleSet #attr:styleSet#
    TextTagStyleSetPropertyInfo             ,
    constructTextTagStyleSet                ,
    getTextTagStyleSet                      ,
    setTextTagStyleSet                      ,
    textTagStyleSet                         ,


-- ** tabs #attr:tabs#
    TextTagTabsPropertyInfo                 ,
    clearTextTagTabs                        ,
    constructTextTagTabs                    ,
    getTextTagTabs                          ,
    setTextTagTabs                          ,
    textTagTabs                             ,


-- ** tabsSet #attr:tabsSet#
    TextTagTabsSetPropertyInfo              ,
    constructTextTagTabsSet                 ,
    getTextTagTabsSet                       ,
    setTextTagTabsSet                       ,
    textTagTabsSet                          ,


-- ** underline #attr:underline#
    TextTagUnderlinePropertyInfo            ,
    constructTextTagUnderline               ,
    getTextTagUnderline                     ,
    setTextTagUnderline                     ,
    textTagUnderline                        ,


-- ** underlineRgba #attr:underlineRgba#
    TextTagUnderlineRgbaPropertyInfo        ,
    clearTextTagUnderlineRgba               ,
    constructTextTagUnderlineRgba           ,
    getTextTagUnderlineRgba                 ,
    setTextTagUnderlineRgba                 ,
    textTagUnderlineRgba                    ,


-- ** underlineRgbaSet #attr:underlineRgbaSet#
    TextTagUnderlineRgbaSetPropertyInfo     ,
    constructTextTagUnderlineRgbaSet        ,
    getTextTagUnderlineRgbaSet              ,
    setTextTagUnderlineRgbaSet              ,
    textTagUnderlineRgbaSet                 ,


-- ** underlineSet #attr:underlineSet#
    TextTagUnderlineSetPropertyInfo         ,
    constructTextTagUnderlineSet            ,
    getTextTagUnderlineSet                  ,
    setTextTagUnderlineSet                  ,
    textTagUnderlineSet                     ,


-- ** variant #attr:variant#
    TextTagVariantPropertyInfo              ,
    constructTextTagVariant                 ,
    getTextTagVariant                       ,
    setTextTagVariant                       ,
    textTagVariant                          ,


-- ** variantSet #attr:variantSet#
    TextTagVariantSetPropertyInfo           ,
    constructTextTagVariantSet              ,
    getTextTagVariantSet                    ,
    setTextTagVariantSet                    ,
    textTagVariantSet                       ,


-- ** weight #attr:weight#
    TextTagWeightPropertyInfo               ,
    constructTextTagWeight                  ,
    getTextTagWeight                        ,
    setTextTagWeight                        ,
    textTagWeight                           ,


-- ** weightSet #attr:weightSet#
    TextTagWeightSetPropertyInfo            ,
    constructTextTagWeightSet               ,
    getTextTagWeightSet                     ,
    setTextTagWeightSet                     ,
    textTagWeightSet                        ,


-- ** wrapMode #attr:wrapMode#
    TextTagWrapModePropertyInfo             ,
    constructTextTagWrapMode                ,
    getTextTagWrapMode                      ,
    setTextTagWrapMode                      ,
    textTagWrapMode                         ,


-- ** wrapModeSet #attr:wrapModeSet#
    TextTagWrapModeSetPropertyInfo          ,
    constructTextTagWrapModeSet             ,
    getTextTagWrapModeSet                   ,
    setTextTagWrapModeSet                   ,
    textTagWrapModeSet                      ,




 -- * Signals
-- ** event #signal:event#
    C_TextTagEventCallback                  ,
    TextTagEventCallback                    ,
    TextTagEventSignalInfo                  ,
    afterTextTagEvent                       ,
    genClosure_TextTagEvent                 ,
    mk_TextTagEventCallback                 ,
    noTextTagEventCallback                  ,
    onTextTagEvent                          ,
    wrap_TextTagEventCallback               ,




    ) where

import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P

import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP

import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.Gdk.Structs.Color as Gdk.Color
import qualified GI.Gdk.Structs.RGBA as Gdk.RGBA
import qualified GI.Gdk.Unions.Event as Gdk.Event
import {-# SOURCE #-} qualified GI.Gtk.Enums as Gtk.Enums
import {-# SOURCE #-} qualified GI.Gtk.Structs.TextIter as Gtk.TextIter
import qualified GI.Pango.Enums as Pango.Enums
import qualified GI.Pango.Structs.FontDescription as Pango.FontDescription
import qualified GI.Pango.Structs.TabArray as Pango.TabArray

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

instance GObject TextTag where
    gobjectType _ = c_gtk_text_tag_get_type
    

class GObject o => IsTextTag o
#if MIN_VERSION_base(4,9,0)
instance {-# OVERLAPPABLE #-} (GObject a, O.UnknownAncestorError TextTag a) =>
    IsTextTag a
#endif
instance IsTextTag TextTag
instance GObject.Object.IsObject TextTag

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

noTextTag :: Maybe TextTag
noTextTag = Nothing

type family ResolveTextTagMethod (t :: Symbol) (o :: *) :: * where
    ResolveTextTagMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveTextTagMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveTextTagMethod "changed" o = TextTagChangedMethodInfo
    ResolveTextTagMethod "event" o = TextTagEventMethodInfo
    ResolveTextTagMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveTextTagMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveTextTagMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveTextTagMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveTextTagMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveTextTagMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveTextTagMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveTextTagMethod "replaceData" o = GObject.Object.ObjectReplaceDataMethodInfo
    ResolveTextTagMethod "replaceQdata" o = GObject.Object.ObjectReplaceQdataMethodInfo
    ResolveTextTagMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveTextTagMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveTextTagMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveTextTagMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveTextTagMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveTextTagMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveTextTagMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveTextTagMethod "getPriority" o = TextTagGetPriorityMethodInfo
    ResolveTextTagMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveTextTagMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveTextTagMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveTextTagMethod "setPriority" o = TextTagSetPriorityMethodInfo
    ResolveTextTagMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveTextTagMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveTextTagMethod t TextTag, O.MethodInfo info TextTag p) => O.IsLabelProxy t (TextTag -> p) where
    fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)

#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveTextTagMethod t TextTag, O.MethodInfo info TextTag p) => O.IsLabel t (TextTag -> p) where
    fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif

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

noTextTagEventCallback :: Maybe TextTagEventCallback
noTextTagEventCallback = Nothing

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

foreign import ccall "wrapper"
    mk_TextTagEventCallback :: C_TextTagEventCallback -> IO (FunPtr C_TextTagEventCallback)

genClosure_TextTagEvent :: TextTagEventCallback -> IO Closure
genClosure_TextTagEvent cb = do
    let cb' = wrap_TextTagEventCallback cb
    mk_TextTagEventCallback cb' >>= newCClosure


wrap_TextTagEventCallback ::
    TextTagEventCallback ->
    Ptr () ->
    Ptr GObject.Object.Object ->
    Ptr Gdk.Event.Event ->
    Ptr Gtk.TextIter.TextIter ->
    Ptr () ->
    IO CInt
wrap_TextTagEventCallback _cb _ object event iter _ = do
    object' <- (newObject GObject.Object.Object) object
    event' <- (newBoxed Gdk.Event.Event) event
    iter' <- (newBoxed Gtk.TextIter.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
    let cb' = wrap_TextTagEventCallback cb
    cb'' <- mk_TextTagEventCallback cb'
    connectSignalFunPtr obj "event" cb'' after

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

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

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

constructTextTagAccumulativeMargin :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
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 = IsTextTag
    type AttrGetType TextTagAccumulativeMarginPropertyInfo = Bool
    type AttrLabel TextTagAccumulativeMarginPropertyInfo = "accumulative-margin"
    type AttrOrigin TextTagAccumulativeMarginPropertyInfo = TextTag
    attrGet _ = getTextTagAccumulativeMargin
    attrSet _ = setTextTagAccumulativeMargin
    attrConstruct _ = constructTextTagAccumulativeMargin
    attrClear _ = undefined

-- VVV Prop "background"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

constructTextTagBackground :: (IsTextTag o) => T.Text -> IO (GValueConstruct o)
constructTextTagBackground val = constructObjectPropertyString "background" (Just val)

clearTextTagBackground :: (MonadIO m, IsTextTag o) => o -> m ()
clearTextTagBackground obj = liftIO $ setObjectPropertyString obj "background" (Nothing :: Maybe T.Text)

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

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

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

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

constructTextTagBackgroundFullHeight :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
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 = IsTextTag
    type AttrGetType TextTagBackgroundFullHeightPropertyInfo = Bool
    type AttrLabel TextTagBackgroundFullHeightPropertyInfo = "background-full-height"
    type AttrOrigin TextTagBackgroundFullHeightPropertyInfo = TextTag
    attrGet _ = getTextTagBackgroundFullHeight
    attrSet _ = setTextTagBackgroundFullHeight
    attrConstruct _ = constructTextTagBackgroundFullHeight
    attrClear _ = undefined

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

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

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

constructTextTagBackgroundFullHeightSet :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
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 = IsTextTag
    type AttrGetType TextTagBackgroundFullHeightSetPropertyInfo = Bool
    type AttrLabel TextTagBackgroundFullHeightSetPropertyInfo = "background-full-height-set"
    type AttrOrigin TextTagBackgroundFullHeightSetPropertyInfo = TextTag
    attrGet _ = getTextTagBackgroundFullHeightSet
    attrSet _ = setTextTagBackgroundFullHeightSet
    attrConstruct _ = constructTextTagBackgroundFullHeightSet
    attrClear _ = undefined

-- VVV Prop "background-gdk"
   -- Type: TInterface (Name {namespace = "Gdk", name = "Color"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

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

constructTextTagBackgroundGdk :: (IsTextTag o) => Gdk.Color.Color -> IO (GValueConstruct o)
constructTextTagBackgroundGdk val = constructObjectPropertyBoxed "background-gdk" (Just val)

clearTextTagBackgroundGdk :: (MonadIO m, IsTextTag o) => o -> m ()
clearTextTagBackgroundGdk obj = liftIO $ setObjectPropertyBoxed obj "background-gdk" (Nothing :: Maybe Gdk.Color.Color)

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

-- VVV Prop "background-rgba"
   -- Type: TInterface (Name {namespace = "Gdk", name = "RGBA"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

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

constructTextTagBackgroundRgba :: (IsTextTag o) => Gdk.RGBA.RGBA -> IO (GValueConstruct o)
constructTextTagBackgroundRgba val = constructObjectPropertyBoxed "background-rgba" (Just val)

clearTextTagBackgroundRgba :: (MonadIO m, IsTextTag o) => o -> m ()
clearTextTagBackgroundRgba obj = liftIO $ setObjectPropertyBoxed obj "background-rgba" (Nothing :: Maybe Gdk.RGBA.RGBA)

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

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

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

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

constructTextTagBackgroundSet :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
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 = IsTextTag
    type AttrGetType TextTagBackgroundSetPropertyInfo = Bool
    type AttrLabel TextTagBackgroundSetPropertyInfo = "background-set"
    type AttrOrigin TextTagBackgroundSetPropertyInfo = TextTag
    attrGet _ = getTextTagBackgroundSet
    attrSet _ = setTextTagBackgroundSet
    attrConstruct _ = constructTextTagBackgroundSet
    attrClear _ = undefined

-- VVV Prop "direction"
   -- Type: TInterface (Name {namespace = "Gtk", name = "TextDirection"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

getTextTagDirection :: (MonadIO m, IsTextTag o) => o -> m Gtk.Enums.TextDirection
getTextTagDirection obj = liftIO $ getObjectPropertyEnum obj "direction"

setTextTagDirection :: (MonadIO m, IsTextTag o) => o -> Gtk.Enums.TextDirection -> m ()
setTextTagDirection obj val = liftIO $ setObjectPropertyEnum obj "direction" val

constructTextTagDirection :: (IsTextTag o) => Gtk.Enums.TextDirection -> IO (GValueConstruct o)
constructTextTagDirection val = constructObjectPropertyEnum "direction" val

data TextTagDirectionPropertyInfo
instance AttrInfo TextTagDirectionPropertyInfo where
    type AttrAllowedOps TextTagDirectionPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagDirectionPropertyInfo = (~) Gtk.Enums.TextDirection
    type AttrBaseTypeConstraint TextTagDirectionPropertyInfo = IsTextTag
    type AttrGetType TextTagDirectionPropertyInfo = Gtk.Enums.TextDirection
    type AttrLabel TextTagDirectionPropertyInfo = "direction"
    type AttrOrigin TextTagDirectionPropertyInfo = TextTag
    attrGet _ = getTextTagDirection
    attrSet _ = setTextTagDirection
    attrConstruct _ = constructTextTagDirection
    attrClear _ = undefined

-- VVV Prop "editable"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

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

constructTextTagEditable :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
constructTextTagEditable val = constructObjectPropertyBool "editable" val

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

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

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

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

constructTextTagEditableSet :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
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 = IsTextTag
    type AttrGetType TextTagEditableSetPropertyInfo = Bool
    type AttrLabel TextTagEditableSetPropertyInfo = "editable-set"
    type AttrOrigin TextTagEditableSetPropertyInfo = TextTag
    attrGet _ = getTextTagEditableSet
    attrSet _ = setTextTagEditableSet
    attrConstruct _ = constructTextTagEditableSet
    attrClear _ = undefined

-- VVV Prop "fallback"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

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

constructTextTagFallback :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
constructTextTagFallback val = constructObjectPropertyBool "fallback" val

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

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

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

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

constructTextTagFallbackSet :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
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 = IsTextTag
    type AttrGetType TextTagFallbackSetPropertyInfo = Bool
    type AttrLabel TextTagFallbackSetPropertyInfo = "fallback-set"
    type AttrOrigin TextTagFallbackSetPropertyInfo = TextTag
    attrGet _ = getTextTagFallbackSet
    attrSet _ = setTextTagFallbackSet
    attrConstruct _ = constructTextTagFallbackSet
    attrClear _ = undefined

-- VVV Prop "family"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

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

constructTextTagFamily :: (IsTextTag o) => T.Text -> IO (GValueConstruct o)
constructTextTagFamily val = constructObjectPropertyString "family" (Just val)

clearTextTagFamily :: (MonadIO m, IsTextTag o) => o -> m ()
clearTextTagFamily obj = liftIO $ setObjectPropertyString obj "family" (Nothing :: Maybe T.Text)

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

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

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

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

constructTextTagFamilySet :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
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 = IsTextTag
    type AttrGetType TextTagFamilySetPropertyInfo = Bool
    type AttrLabel TextTagFamilySetPropertyInfo = "family-set"
    type AttrOrigin TextTagFamilySetPropertyInfo = TextTag
    attrGet _ = getTextTagFamilySet
    attrSet _ = setTextTagFamilySet
    attrConstruct _ = constructTextTagFamilySet
    attrClear _ = undefined

-- VVV Prop "font"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

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

constructTextTagFont :: (IsTextTag o) => T.Text -> IO (GValueConstruct o)
constructTextTagFont val = constructObjectPropertyString "font" (Just val)

clearTextTagFont :: (MonadIO m, IsTextTag o) => o -> m ()
clearTextTagFont obj = liftIO $ setObjectPropertyString obj "font" (Nothing :: Maybe T.Text)

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

-- VVV Prop "font-desc"
   -- Type: TInterface (Name {namespace = "Pango", name = "FontDescription"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

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

constructTextTagFontDesc :: (IsTextTag o) => Pango.FontDescription.FontDescription -> IO (GValueConstruct o)
constructTextTagFontDesc val = constructObjectPropertyBoxed "font-desc" (Just val)

clearTextTagFontDesc :: (MonadIO m, IsTextTag o) => o -> m ()
clearTextTagFontDesc obj = liftIO $ setObjectPropertyBoxed obj "font-desc" (Nothing :: Maybe Pango.FontDescription.FontDescription)

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

-- VVV Prop "font-features"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

getTextTagFontFeatures :: (MonadIO m, IsTextTag o) => o -> m (Maybe T.Text)
getTextTagFontFeatures obj = liftIO $ getObjectPropertyString obj "font-features"

setTextTagFontFeatures :: (MonadIO m, IsTextTag o) => o -> T.Text -> m ()
setTextTagFontFeatures obj val = liftIO $ setObjectPropertyString obj "font-features" (Just val)

constructTextTagFontFeatures :: (IsTextTag o) => T.Text -> IO (GValueConstruct o)
constructTextTagFontFeatures val = constructObjectPropertyString "font-features" (Just val)

clearTextTagFontFeatures :: (MonadIO m, IsTextTag o) => o -> m ()
clearTextTagFontFeatures obj = liftIO $ setObjectPropertyString obj "font-features" (Nothing :: Maybe T.Text)

data TextTagFontFeaturesPropertyInfo
instance AttrInfo TextTagFontFeaturesPropertyInfo where
    type AttrAllowedOps TextTagFontFeaturesPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint TextTagFontFeaturesPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint TextTagFontFeaturesPropertyInfo = IsTextTag
    type AttrGetType TextTagFontFeaturesPropertyInfo = (Maybe T.Text)
    type AttrLabel TextTagFontFeaturesPropertyInfo = "font-features"
    type AttrOrigin TextTagFontFeaturesPropertyInfo = TextTag
    attrGet _ = getTextTagFontFeatures
    attrSet _ = setTextTagFontFeatures
    attrConstruct _ = constructTextTagFontFeatures
    attrClear _ = clearTextTagFontFeatures

-- VVV Prop "font-features-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

getTextTagFontFeaturesSet :: (MonadIO m, IsTextTag o) => o -> m Bool
getTextTagFontFeaturesSet obj = liftIO $ getObjectPropertyBool obj "font-features-set"

setTextTagFontFeaturesSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
setTextTagFontFeaturesSet obj val = liftIO $ setObjectPropertyBool obj "font-features-set" val

constructTextTagFontFeaturesSet :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
constructTextTagFontFeaturesSet val = constructObjectPropertyBool "font-features-set" val

data TextTagFontFeaturesSetPropertyInfo
instance AttrInfo TextTagFontFeaturesSetPropertyInfo where
    type AttrAllowedOps TextTagFontFeaturesSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagFontFeaturesSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextTagFontFeaturesSetPropertyInfo = IsTextTag
    type AttrGetType TextTagFontFeaturesSetPropertyInfo = Bool
    type AttrLabel TextTagFontFeaturesSetPropertyInfo = "font-features-set"
    type AttrOrigin TextTagFontFeaturesSetPropertyInfo = TextTag
    attrGet _ = getTextTagFontFeaturesSet
    attrSet _ = setTextTagFontFeaturesSet
    attrConstruct _ = constructTextTagFontFeaturesSet
    attrClear _ = undefined

-- VVV Prop "foreground"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

constructTextTagForeground :: (IsTextTag o) => T.Text -> IO (GValueConstruct o)
constructTextTagForeground val = constructObjectPropertyString "foreground" (Just val)

clearTextTagForeground :: (MonadIO m, IsTextTag o) => o -> m ()
clearTextTagForeground obj = liftIO $ setObjectPropertyString obj "foreground" (Nothing :: Maybe T.Text)

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

-- VVV Prop "foreground-gdk"
   -- Type: TInterface (Name {namespace = "Gdk", name = "Color"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

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

constructTextTagForegroundGdk :: (IsTextTag o) => Gdk.Color.Color -> IO (GValueConstruct o)
constructTextTagForegroundGdk val = constructObjectPropertyBoxed "foreground-gdk" (Just val)

clearTextTagForegroundGdk :: (MonadIO m, IsTextTag o) => o -> m ()
clearTextTagForegroundGdk obj = liftIO $ setObjectPropertyBoxed obj "foreground-gdk" (Nothing :: Maybe Gdk.Color.Color)

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

-- VVV Prop "foreground-rgba"
   -- Type: TInterface (Name {namespace = "Gdk", name = "RGBA"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

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

constructTextTagForegroundRgba :: (IsTextTag o) => Gdk.RGBA.RGBA -> IO (GValueConstruct o)
constructTextTagForegroundRgba val = constructObjectPropertyBoxed "foreground-rgba" (Just val)

clearTextTagForegroundRgba :: (MonadIO m, IsTextTag o) => o -> m ()
clearTextTagForegroundRgba obj = liftIO $ setObjectPropertyBoxed obj "foreground-rgba" (Nothing :: Maybe Gdk.RGBA.RGBA)

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

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

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

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

constructTextTagForegroundSet :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
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 = IsTextTag
    type AttrGetType TextTagForegroundSetPropertyInfo = Bool
    type AttrLabel TextTagForegroundSetPropertyInfo = "foreground-set"
    type AttrOrigin TextTagForegroundSetPropertyInfo = TextTag
    attrGet _ = getTextTagForegroundSet
    attrSet _ = setTextTagForegroundSet
    attrConstruct _ = constructTextTagForegroundSet
    attrClear _ = undefined

-- VVV Prop "indent"
   -- Type: TBasicType TInt
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

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

constructTextTagIndent :: (IsTextTag o) => Int32 -> IO (GValueConstruct o)
constructTextTagIndent val = constructObjectPropertyInt32 "indent" val

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

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

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

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

constructTextTagIndentSet :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
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 = IsTextTag
    type AttrGetType TextTagIndentSetPropertyInfo = Bool
    type AttrLabel TextTagIndentSetPropertyInfo = "indent-set"
    type AttrOrigin TextTagIndentSetPropertyInfo = TextTag
    attrGet _ = getTextTagIndentSet
    attrSet _ = setTextTagIndentSet
    attrConstruct _ = constructTextTagIndentSet
    attrClear _ = undefined

-- VVV Prop "invisible"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

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

constructTextTagInvisible :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
constructTextTagInvisible val = constructObjectPropertyBool "invisible" val

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

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

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

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

constructTextTagInvisibleSet :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
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 = IsTextTag
    type AttrGetType TextTagInvisibleSetPropertyInfo = Bool
    type AttrLabel TextTagInvisibleSetPropertyInfo = "invisible-set"
    type AttrOrigin TextTagInvisibleSetPropertyInfo = TextTag
    attrGet _ = getTextTagInvisibleSet
    attrSet _ = setTextTagInvisibleSet
    attrConstruct _ = constructTextTagInvisibleSet
    attrClear _ = undefined

-- VVV Prop "justification"
   -- Type: TInterface (Name {namespace = "Gtk", name = "Justification"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

getTextTagJustification :: (MonadIO m, IsTextTag o) => o -> m Gtk.Enums.Justification
getTextTagJustification obj = liftIO $ getObjectPropertyEnum obj "justification"

setTextTagJustification :: (MonadIO m, IsTextTag o) => o -> Gtk.Enums.Justification -> m ()
setTextTagJustification obj val = liftIO $ setObjectPropertyEnum obj "justification" val

constructTextTagJustification :: (IsTextTag o) => Gtk.Enums.Justification -> IO (GValueConstruct o)
constructTextTagJustification val = constructObjectPropertyEnum "justification" val

data TextTagJustificationPropertyInfo
instance AttrInfo TextTagJustificationPropertyInfo where
    type AttrAllowedOps TextTagJustificationPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagJustificationPropertyInfo = (~) Gtk.Enums.Justification
    type AttrBaseTypeConstraint TextTagJustificationPropertyInfo = IsTextTag
    type AttrGetType TextTagJustificationPropertyInfo = Gtk.Enums.Justification
    type AttrLabel TextTagJustificationPropertyInfo = "justification"
    type AttrOrigin TextTagJustificationPropertyInfo = TextTag
    attrGet _ = getTextTagJustification
    attrSet _ = setTextTagJustification
    attrConstruct _ = constructTextTagJustification
    attrClear _ = undefined

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

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

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

constructTextTagJustificationSet :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
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 = IsTextTag
    type AttrGetType TextTagJustificationSetPropertyInfo = Bool
    type AttrLabel TextTagJustificationSetPropertyInfo = "justification-set"
    type AttrOrigin TextTagJustificationSetPropertyInfo = TextTag
    attrGet _ = getTextTagJustificationSet
    attrSet _ = setTextTagJustificationSet
    attrConstruct _ = constructTextTagJustificationSet
    attrClear _ = undefined

-- VVV Prop "language"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

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

constructTextTagLanguage :: (IsTextTag o) => T.Text -> IO (GValueConstruct o)
constructTextTagLanguage val = constructObjectPropertyString "language" (Just val)

clearTextTagLanguage :: (MonadIO m, IsTextTag o) => o -> m ()
clearTextTagLanguage obj = liftIO $ setObjectPropertyString obj "language" (Nothing :: Maybe T.Text)

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

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

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

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

constructTextTagLanguageSet :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
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 = IsTextTag
    type AttrGetType TextTagLanguageSetPropertyInfo = Bool
    type AttrLabel TextTagLanguageSetPropertyInfo = "language-set"
    type AttrOrigin TextTagLanguageSetPropertyInfo = TextTag
    attrGet _ = getTextTagLanguageSet
    attrSet _ = setTextTagLanguageSet
    attrConstruct _ = constructTextTagLanguageSet
    attrClear _ = undefined

-- VVV Prop "left-margin"
   -- Type: TBasicType TInt
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

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

constructTextTagLeftMargin :: (IsTextTag o) => Int32 -> IO (GValueConstruct o)
constructTextTagLeftMargin val = constructObjectPropertyInt32 "left-margin" val

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

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

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

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

constructTextTagLeftMarginSet :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
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 = IsTextTag
    type AttrGetType TextTagLeftMarginSetPropertyInfo = Bool
    type AttrLabel TextTagLeftMarginSetPropertyInfo = "left-margin-set"
    type AttrOrigin TextTagLeftMarginSetPropertyInfo = TextTag
    attrGet _ = getTextTagLeftMarginSet
    attrSet _ = setTextTagLeftMarginSet
    attrConstruct _ = constructTextTagLeftMarginSet
    attrClear _ = undefined

-- VVV Prop "letter-spacing"
   -- Type: TBasicType TInt
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

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

constructTextTagLetterSpacing :: (IsTextTag o) => Int32 -> IO (GValueConstruct o)
constructTextTagLetterSpacing val = constructObjectPropertyInt32 "letter-spacing" val

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

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

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

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

constructTextTagLetterSpacingSet :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
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 = IsTextTag
    type AttrGetType TextTagLetterSpacingSetPropertyInfo = Bool
    type AttrLabel TextTagLetterSpacingSetPropertyInfo = "letter-spacing-set"
    type AttrOrigin TextTagLetterSpacingSetPropertyInfo = TextTag
    attrGet _ = getTextTagLetterSpacingSet
    attrSet _ = setTextTagLetterSpacingSet
    attrConstruct _ = constructTextTagLetterSpacingSet
    attrClear _ = undefined

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

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

constructTextTagName :: (IsTextTag o) => T.Text -> IO (GValueConstruct o)
constructTextTagName val = constructObjectPropertyString "name" (Just val)

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

-- VVV Prop "paragraph-background"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

constructTextTagParagraphBackground :: (IsTextTag o) => T.Text -> IO (GValueConstruct o)
constructTextTagParagraphBackground val = constructObjectPropertyString "paragraph-background" (Just val)

clearTextTagParagraphBackground :: (MonadIO m, IsTextTag o) => o -> m ()
clearTextTagParagraphBackground obj = liftIO $ setObjectPropertyString obj "paragraph-background" (Nothing :: Maybe T.Text)

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

-- VVV Prop "paragraph-background-gdk"
   -- Type: TInterface (Name {namespace = "Gdk", name = "Color"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

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

constructTextTagParagraphBackgroundGdk :: (IsTextTag o) => Gdk.Color.Color -> IO (GValueConstruct o)
constructTextTagParagraphBackgroundGdk val = constructObjectPropertyBoxed "paragraph-background-gdk" (Just val)

clearTextTagParagraphBackgroundGdk :: (MonadIO m, IsTextTag o) => o -> m ()
clearTextTagParagraphBackgroundGdk obj = liftIO $ setObjectPropertyBoxed obj "paragraph-background-gdk" (Nothing :: Maybe Gdk.Color.Color)

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

-- VVV Prop "paragraph-background-rgba"
   -- Type: TInterface (Name {namespace = "Gdk", name = "RGBA"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

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

constructTextTagParagraphBackgroundRgba :: (IsTextTag o) => Gdk.RGBA.RGBA -> IO (GValueConstruct o)
constructTextTagParagraphBackgroundRgba val = constructObjectPropertyBoxed "paragraph-background-rgba" (Just val)

clearTextTagParagraphBackgroundRgba :: (MonadIO m, IsTextTag o) => o -> m ()
clearTextTagParagraphBackgroundRgba obj = liftIO $ setObjectPropertyBoxed obj "paragraph-background-rgba" (Nothing :: Maybe Gdk.RGBA.RGBA)

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

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

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

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

constructTextTagParagraphBackgroundSet :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
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 = IsTextTag
    type AttrGetType TextTagParagraphBackgroundSetPropertyInfo = Bool
    type AttrLabel TextTagParagraphBackgroundSetPropertyInfo = "paragraph-background-set"
    type AttrOrigin TextTagParagraphBackgroundSetPropertyInfo = TextTag
    attrGet _ = getTextTagParagraphBackgroundSet
    attrSet _ = setTextTagParagraphBackgroundSet
    attrConstruct _ = constructTextTagParagraphBackgroundSet
    attrClear _ = undefined

-- VVV Prop "pixels-above-lines"
   -- Type: TBasicType TInt
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

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

constructTextTagPixelsAboveLines :: (IsTextTag o) => Int32 -> IO (GValueConstruct o)
constructTextTagPixelsAboveLines val = constructObjectPropertyInt32 "pixels-above-lines" val

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

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

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

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

constructTextTagPixelsAboveLinesSet :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
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 = IsTextTag
    type AttrGetType TextTagPixelsAboveLinesSetPropertyInfo = Bool
    type AttrLabel TextTagPixelsAboveLinesSetPropertyInfo = "pixels-above-lines-set"
    type AttrOrigin TextTagPixelsAboveLinesSetPropertyInfo = TextTag
    attrGet _ = getTextTagPixelsAboveLinesSet
    attrSet _ = setTextTagPixelsAboveLinesSet
    attrConstruct _ = constructTextTagPixelsAboveLinesSet
    attrClear _ = undefined

-- VVV Prop "pixels-below-lines"
   -- Type: TBasicType TInt
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

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

constructTextTagPixelsBelowLines :: (IsTextTag o) => Int32 -> IO (GValueConstruct o)
constructTextTagPixelsBelowLines val = constructObjectPropertyInt32 "pixels-below-lines" val

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

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

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

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

constructTextTagPixelsBelowLinesSet :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
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 = IsTextTag
    type AttrGetType TextTagPixelsBelowLinesSetPropertyInfo = Bool
    type AttrLabel TextTagPixelsBelowLinesSetPropertyInfo = "pixels-below-lines-set"
    type AttrOrigin TextTagPixelsBelowLinesSetPropertyInfo = TextTag
    attrGet _ = getTextTagPixelsBelowLinesSet
    attrSet _ = setTextTagPixelsBelowLinesSet
    attrConstruct _ = constructTextTagPixelsBelowLinesSet
    attrClear _ = undefined

-- VVV Prop "pixels-inside-wrap"
   -- Type: TBasicType TInt
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

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

constructTextTagPixelsInsideWrap :: (IsTextTag o) => Int32 -> IO (GValueConstruct o)
constructTextTagPixelsInsideWrap val = constructObjectPropertyInt32 "pixels-inside-wrap" val

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

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

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

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

constructTextTagPixelsInsideWrapSet :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
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 = IsTextTag
    type AttrGetType TextTagPixelsInsideWrapSetPropertyInfo = Bool
    type AttrLabel TextTagPixelsInsideWrapSetPropertyInfo = "pixels-inside-wrap-set"
    type AttrOrigin TextTagPixelsInsideWrapSetPropertyInfo = TextTag
    attrGet _ = getTextTagPixelsInsideWrapSet
    attrSet _ = setTextTagPixelsInsideWrapSet
    attrConstruct _ = constructTextTagPixelsInsideWrapSet
    attrClear _ = undefined

-- VVV Prop "right-margin"
   -- Type: TBasicType TInt
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

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

constructTextTagRightMargin :: (IsTextTag o) => Int32 -> IO (GValueConstruct o)
constructTextTagRightMargin val = constructObjectPropertyInt32 "right-margin" val

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

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

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

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

constructTextTagRightMarginSet :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
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 = IsTextTag
    type AttrGetType TextTagRightMarginSetPropertyInfo = Bool
    type AttrLabel TextTagRightMarginSetPropertyInfo = "right-margin-set"
    type AttrOrigin TextTagRightMarginSetPropertyInfo = TextTag
    attrGet _ = getTextTagRightMarginSet
    attrSet _ = setTextTagRightMarginSet
    attrConstruct _ = constructTextTagRightMarginSet
    attrClear _ = undefined

-- VVV Prop "rise"
   -- Type: TBasicType TInt
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

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

constructTextTagRise :: (IsTextTag o) => Int32 -> IO (GValueConstruct o)
constructTextTagRise val = constructObjectPropertyInt32 "rise" val

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

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

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

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

constructTextTagRiseSet :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
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 = IsTextTag
    type AttrGetType TextTagRiseSetPropertyInfo = Bool
    type AttrLabel TextTagRiseSetPropertyInfo = "rise-set"
    type AttrOrigin TextTagRiseSetPropertyInfo = TextTag
    attrGet _ = getTextTagRiseSet
    attrSet _ = setTextTagRiseSet
    attrConstruct _ = constructTextTagRiseSet
    attrClear _ = undefined

-- VVV Prop "scale"
   -- Type: TBasicType TDouble
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

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

constructTextTagScale :: (IsTextTag o) => Double -> IO (GValueConstruct o)
constructTextTagScale val = constructObjectPropertyDouble "scale" val

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

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

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

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

constructTextTagScaleSet :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
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 = IsTextTag
    type AttrGetType TextTagScaleSetPropertyInfo = Bool
    type AttrLabel TextTagScaleSetPropertyInfo = "scale-set"
    type AttrOrigin TextTagScaleSetPropertyInfo = TextTag
    attrGet _ = getTextTagScaleSet
    attrSet _ = setTextTagScaleSet
    attrConstruct _ = constructTextTagScaleSet
    attrClear _ = undefined

-- VVV Prop "size"
   -- Type: TBasicType TInt
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

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

constructTextTagSize :: (IsTextTag o) => Int32 -> IO (GValueConstruct o)
constructTextTagSize val = constructObjectPropertyInt32 "size" val

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

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

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

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

constructTextTagSizePoints :: (IsTextTag o) => Double -> IO (GValueConstruct o)
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 = IsTextTag
    type AttrGetType TextTagSizePointsPropertyInfo = Double
    type AttrLabel TextTagSizePointsPropertyInfo = "size-points"
    type AttrOrigin TextTagSizePointsPropertyInfo = TextTag
    attrGet _ = getTextTagSizePoints
    attrSet _ = setTextTagSizePoints
    attrConstruct _ = constructTextTagSizePoints
    attrClear _ = undefined

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

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

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

constructTextTagSizeSet :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
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 = IsTextTag
    type AttrGetType TextTagSizeSetPropertyInfo = Bool
    type AttrLabel TextTagSizeSetPropertyInfo = "size-set"
    type AttrOrigin TextTagSizeSetPropertyInfo = TextTag
    attrGet _ = getTextTagSizeSet
    attrSet _ = setTextTagSizeSet
    attrConstruct _ = constructTextTagSizeSet
    attrClear _ = undefined

-- VVV Prop "stretch"
   -- Type: TInterface (Name {namespace = "Pango", name = "Stretch"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

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

constructTextTagStretch :: (IsTextTag o) => Pango.Enums.Stretch -> IO (GValueConstruct o)
constructTextTagStretch val = constructObjectPropertyEnum "stretch" val

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

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

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

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

constructTextTagStretchSet :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
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 = IsTextTag
    type AttrGetType TextTagStretchSetPropertyInfo = Bool
    type AttrLabel TextTagStretchSetPropertyInfo = "stretch-set"
    type AttrOrigin TextTagStretchSetPropertyInfo = TextTag
    attrGet _ = getTextTagStretchSet
    attrSet _ = setTextTagStretchSet
    attrConstruct _ = constructTextTagStretchSet
    attrClear _ = undefined

-- VVV Prop "strikethrough"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

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

constructTextTagStrikethrough :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
constructTextTagStrikethrough val = constructObjectPropertyBool "strikethrough" val

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

-- VVV Prop "strikethrough-rgba"
   -- Type: TInterface (Name {namespace = "Gdk", name = "RGBA"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

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

constructTextTagStrikethroughRgba :: (IsTextTag o) => Gdk.RGBA.RGBA -> IO (GValueConstruct o)
constructTextTagStrikethroughRgba val = constructObjectPropertyBoxed "strikethrough-rgba" (Just val)

clearTextTagStrikethroughRgba :: (MonadIO m, IsTextTag o) => o -> m ()
clearTextTagStrikethroughRgba obj = liftIO $ setObjectPropertyBoxed obj "strikethrough-rgba" (Nothing :: Maybe Gdk.RGBA.RGBA)

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

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

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

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

constructTextTagStrikethroughRgbaSet :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
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 = IsTextTag
    type AttrGetType TextTagStrikethroughRgbaSetPropertyInfo = Bool
    type AttrLabel TextTagStrikethroughRgbaSetPropertyInfo = "strikethrough-rgba-set"
    type AttrOrigin TextTagStrikethroughRgbaSetPropertyInfo = TextTag
    attrGet _ = getTextTagStrikethroughRgbaSet
    attrSet _ = setTextTagStrikethroughRgbaSet
    attrConstruct _ = constructTextTagStrikethroughRgbaSet
    attrClear _ = undefined

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

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

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

constructTextTagStrikethroughSet :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
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 = IsTextTag
    type AttrGetType TextTagStrikethroughSetPropertyInfo = Bool
    type AttrLabel TextTagStrikethroughSetPropertyInfo = "strikethrough-set"
    type AttrOrigin TextTagStrikethroughSetPropertyInfo = TextTag
    attrGet _ = getTextTagStrikethroughSet
    attrSet _ = setTextTagStrikethroughSet
    attrConstruct _ = constructTextTagStrikethroughSet
    attrClear _ = undefined

-- VVV Prop "style"
   -- Type: TInterface (Name {namespace = "Pango", name = "Style"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

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

constructTextTagStyle :: (IsTextTag o) => Pango.Enums.Style -> IO (GValueConstruct o)
constructTextTagStyle val = constructObjectPropertyEnum "style" val

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

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

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

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

constructTextTagStyleSet :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
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 = IsTextTag
    type AttrGetType TextTagStyleSetPropertyInfo = Bool
    type AttrLabel TextTagStyleSetPropertyInfo = "style-set"
    type AttrOrigin TextTagStyleSetPropertyInfo = TextTag
    attrGet _ = getTextTagStyleSet
    attrSet _ = setTextTagStyleSet
    attrConstruct _ = constructTextTagStyleSet
    attrClear _ = undefined

-- VVV Prop "tabs"
   -- Type: TInterface (Name {namespace = "Pango", name = "TabArray"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

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

constructTextTagTabs :: (IsTextTag o) => Pango.TabArray.TabArray -> IO (GValueConstruct o)
constructTextTagTabs val = constructObjectPropertyBoxed "tabs" (Just val)

clearTextTagTabs :: (MonadIO m, IsTextTag o) => o -> m ()
clearTextTagTabs obj = liftIO $ setObjectPropertyBoxed obj "tabs" (Nothing :: Maybe Pango.TabArray.TabArray)

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

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

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

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

constructTextTagTabsSet :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
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 = IsTextTag
    type AttrGetType TextTagTabsSetPropertyInfo = Bool
    type AttrLabel TextTagTabsSetPropertyInfo = "tabs-set"
    type AttrOrigin TextTagTabsSetPropertyInfo = TextTag
    attrGet _ = getTextTagTabsSet
    attrSet _ = setTextTagTabsSet
    attrConstruct _ = constructTextTagTabsSet
    attrClear _ = undefined

-- VVV Prop "underline"
   -- Type: TInterface (Name {namespace = "Pango", name = "Underline"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

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

constructTextTagUnderline :: (IsTextTag o) => Pango.Enums.Underline -> IO (GValueConstruct o)
constructTextTagUnderline val = constructObjectPropertyEnum "underline" val

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

-- VVV Prop "underline-rgba"
   -- Type: TInterface (Name {namespace = "Gdk", name = "RGBA"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

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

constructTextTagUnderlineRgba :: (IsTextTag o) => Gdk.RGBA.RGBA -> IO (GValueConstruct o)
constructTextTagUnderlineRgba val = constructObjectPropertyBoxed "underline-rgba" (Just val)

clearTextTagUnderlineRgba :: (MonadIO m, IsTextTag o) => o -> m ()
clearTextTagUnderlineRgba obj = liftIO $ setObjectPropertyBoxed obj "underline-rgba" (Nothing :: Maybe Gdk.RGBA.RGBA)

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

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

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

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

constructTextTagUnderlineRgbaSet :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
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 = IsTextTag
    type AttrGetType TextTagUnderlineRgbaSetPropertyInfo = Bool
    type AttrLabel TextTagUnderlineRgbaSetPropertyInfo = "underline-rgba-set"
    type AttrOrigin TextTagUnderlineRgbaSetPropertyInfo = TextTag
    attrGet _ = getTextTagUnderlineRgbaSet
    attrSet _ = setTextTagUnderlineRgbaSet
    attrConstruct _ = constructTextTagUnderlineRgbaSet
    attrClear _ = undefined

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

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

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

constructTextTagUnderlineSet :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
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 = IsTextTag
    type AttrGetType TextTagUnderlineSetPropertyInfo = Bool
    type AttrLabel TextTagUnderlineSetPropertyInfo = "underline-set"
    type AttrOrigin TextTagUnderlineSetPropertyInfo = TextTag
    attrGet _ = getTextTagUnderlineSet
    attrSet _ = setTextTagUnderlineSet
    attrConstruct _ = constructTextTagUnderlineSet
    attrClear _ = undefined

-- VVV Prop "variant"
   -- Type: TInterface (Name {namespace = "Pango", name = "Variant"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

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

constructTextTagVariant :: (IsTextTag o) => Pango.Enums.Variant -> IO (GValueConstruct o)
constructTextTagVariant val = constructObjectPropertyEnum "variant" val

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

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

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

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

constructTextTagVariantSet :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
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 = IsTextTag
    type AttrGetType TextTagVariantSetPropertyInfo = Bool
    type AttrLabel TextTagVariantSetPropertyInfo = "variant-set"
    type AttrOrigin TextTagVariantSetPropertyInfo = TextTag
    attrGet _ = getTextTagVariantSet
    attrSet _ = setTextTagVariantSet
    attrConstruct _ = constructTextTagVariantSet
    attrClear _ = undefined

-- VVV Prop "weight"
   -- Type: TBasicType TInt
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

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

constructTextTagWeight :: (IsTextTag o) => Int32 -> IO (GValueConstruct o)
constructTextTagWeight val = constructObjectPropertyInt32 "weight" val

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

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

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

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

constructTextTagWeightSet :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
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 = IsTextTag
    type AttrGetType TextTagWeightSetPropertyInfo = Bool
    type AttrLabel TextTagWeightSetPropertyInfo = "weight-set"
    type AttrOrigin TextTagWeightSetPropertyInfo = TextTag
    attrGet _ = getTextTagWeightSet
    attrSet _ = setTextTagWeightSet
    attrConstruct _ = constructTextTagWeightSet
    attrClear _ = undefined

-- VVV Prop "wrap-mode"
   -- Type: TInterface (Name {namespace = "Gtk", name = "WrapMode"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

getTextTagWrapMode :: (MonadIO m, IsTextTag o) => o -> m Gtk.Enums.WrapMode
getTextTagWrapMode obj = liftIO $ getObjectPropertyEnum obj "wrap-mode"

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

constructTextTagWrapMode :: (IsTextTag o) => Gtk.Enums.WrapMode -> IO (GValueConstruct o)
constructTextTagWrapMode val = constructObjectPropertyEnum "wrap-mode" val

data TextTagWrapModePropertyInfo
instance AttrInfo TextTagWrapModePropertyInfo where
    type AttrAllowedOps TextTagWrapModePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextTagWrapModePropertyInfo = (~) Gtk.Enums.WrapMode
    type AttrBaseTypeConstraint TextTagWrapModePropertyInfo = IsTextTag
    type AttrGetType TextTagWrapModePropertyInfo = Gtk.Enums.WrapMode
    type AttrLabel TextTagWrapModePropertyInfo = "wrap-mode"
    type AttrOrigin TextTagWrapModePropertyInfo = TextTag
    attrGet _ = getTextTagWrapMode
    attrSet _ = setTextTagWrapMode
    attrConstruct _ = constructTextTagWrapMode
    attrClear _ = undefined

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

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

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

constructTextTagWrapModeSet :: (IsTextTag o) => Bool -> IO (GValueConstruct o)
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 = IsTextTag
    type AttrGetType TextTagWrapModeSetPropertyInfo = Bool
    type AttrLabel TextTagWrapModeSetPropertyInfo = "wrap-mode-set"
    type AttrOrigin TextTagWrapModeSetPropertyInfo = TextTag
    attrGet _ = getTextTagWrapModeSet
    attrSet _ = setTextTagWrapModeSet
    attrConstruct _ = constructTextTagWrapModeSet
    attrClear _ = undefined

instance O.HasAttributeList TextTag
type instance O.AttributeList TextTag = TextTagAttributeList
type TextTagAttributeList = ('[ '("accumulativeMargin", TextTagAccumulativeMarginPropertyInfo), '("background", TextTagBackgroundPropertyInfo), '("backgroundFullHeight", TextTagBackgroundFullHeightPropertyInfo), '("backgroundFullHeightSet", TextTagBackgroundFullHeightSetPropertyInfo), '("backgroundGdk", TextTagBackgroundGdkPropertyInfo), '("backgroundRgba", TextTagBackgroundRgbaPropertyInfo), '("backgroundSet", TextTagBackgroundSetPropertyInfo), '("direction", TextTagDirectionPropertyInfo), '("editable", TextTagEditablePropertyInfo), '("editableSet", TextTagEditableSetPropertyInfo), '("fallback", TextTagFallbackPropertyInfo), '("fallbackSet", TextTagFallbackSetPropertyInfo), '("family", TextTagFamilyPropertyInfo), '("familySet", TextTagFamilySetPropertyInfo), '("font", TextTagFontPropertyInfo), '("fontDesc", TextTagFontDescPropertyInfo), '("fontFeatures", TextTagFontFeaturesPropertyInfo), '("fontFeaturesSet", TextTagFontFeaturesSetPropertyInfo), '("foreground", TextTagForegroundPropertyInfo), '("foregroundGdk", TextTagForegroundGdkPropertyInfo), '("foregroundRgba", TextTagForegroundRgbaPropertyInfo), '("foregroundSet", TextTagForegroundSetPropertyInfo), '("indent", TextTagIndentPropertyInfo), '("indentSet", TextTagIndentSetPropertyInfo), '("invisible", TextTagInvisiblePropertyInfo), '("invisibleSet", TextTagInvisibleSetPropertyInfo), '("justification", TextTagJustificationPropertyInfo), '("justificationSet", TextTagJustificationSetPropertyInfo), '("language", TextTagLanguagePropertyInfo), '("languageSet", TextTagLanguageSetPropertyInfo), '("leftMargin", TextTagLeftMarginPropertyInfo), '("leftMarginSet", TextTagLeftMarginSetPropertyInfo), '("letterSpacing", TextTagLetterSpacingPropertyInfo), '("letterSpacingSet", TextTagLetterSpacingSetPropertyInfo), '("name", TextTagNamePropertyInfo), '("paragraphBackground", TextTagParagraphBackgroundPropertyInfo), '("paragraphBackgroundGdk", TextTagParagraphBackgroundGdkPropertyInfo), '("paragraphBackgroundRgba", TextTagParagraphBackgroundRgbaPropertyInfo), '("paragraphBackgroundSet", TextTagParagraphBackgroundSetPropertyInfo), '("pixelsAboveLines", TextTagPixelsAboveLinesPropertyInfo), '("pixelsAboveLinesSet", TextTagPixelsAboveLinesSetPropertyInfo), '("pixelsBelowLines", TextTagPixelsBelowLinesPropertyInfo), '("pixelsBelowLinesSet", TextTagPixelsBelowLinesSetPropertyInfo), '("pixelsInsideWrap", TextTagPixelsInsideWrapPropertyInfo), '("pixelsInsideWrapSet", TextTagPixelsInsideWrapSetPropertyInfo), '("rightMargin", TextTagRightMarginPropertyInfo), '("rightMarginSet", TextTagRightMarginSetPropertyInfo), '("rise", TextTagRisePropertyInfo), '("riseSet", TextTagRiseSetPropertyInfo), '("scale", TextTagScalePropertyInfo), '("scaleSet", TextTagScaleSetPropertyInfo), '("size", TextTagSizePropertyInfo), '("sizePoints", TextTagSizePointsPropertyInfo), '("sizeSet", TextTagSizeSetPropertyInfo), '("stretch", TextTagStretchPropertyInfo), '("stretchSet", TextTagStretchSetPropertyInfo), '("strikethrough", TextTagStrikethroughPropertyInfo), '("strikethroughRgba", TextTagStrikethroughRgbaPropertyInfo), '("strikethroughRgbaSet", TextTagStrikethroughRgbaSetPropertyInfo), '("strikethroughSet", TextTagStrikethroughSetPropertyInfo), '("style", TextTagStylePropertyInfo), '("styleSet", TextTagStyleSetPropertyInfo), '("tabs", TextTagTabsPropertyInfo), '("tabsSet", TextTagTabsSetPropertyInfo), '("underline", TextTagUnderlinePropertyInfo), '("underlineRgba", TextTagUnderlineRgbaPropertyInfo), '("underlineRgbaSet", TextTagUnderlineRgbaSetPropertyInfo), '("underlineSet", TextTagUnderlineSetPropertyInfo), '("variant", TextTagVariantPropertyInfo), '("variantSet", TextTagVariantSetPropertyInfo), '("weight", TextTagWeightPropertyInfo), '("weightSet", TextTagWeightSetPropertyInfo), '("wrapMode", TextTagWrapModePropertyInfo), '("wrapModeSet", TextTagWrapModeSetPropertyInfo)] :: [(Symbol, *)])

textTagAccumulativeMargin :: AttrLabelProxy "accumulativeMargin"
textTagAccumulativeMargin = AttrLabelProxy

textTagBackground :: AttrLabelProxy "background"
textTagBackground = AttrLabelProxy

textTagBackgroundFullHeight :: AttrLabelProxy "backgroundFullHeight"
textTagBackgroundFullHeight = AttrLabelProxy

textTagBackgroundFullHeightSet :: AttrLabelProxy "backgroundFullHeightSet"
textTagBackgroundFullHeightSet = AttrLabelProxy

textTagBackgroundGdk :: AttrLabelProxy "backgroundGdk"
textTagBackgroundGdk = AttrLabelProxy

textTagBackgroundRgba :: AttrLabelProxy "backgroundRgba"
textTagBackgroundRgba = AttrLabelProxy

textTagBackgroundSet :: AttrLabelProxy "backgroundSet"
textTagBackgroundSet = AttrLabelProxy

textTagDirection :: AttrLabelProxy "direction"
textTagDirection = AttrLabelProxy

textTagEditable :: AttrLabelProxy "editable"
textTagEditable = AttrLabelProxy

textTagEditableSet :: AttrLabelProxy "editableSet"
textTagEditableSet = AttrLabelProxy

textTagFallback :: AttrLabelProxy "fallback"
textTagFallback = AttrLabelProxy

textTagFallbackSet :: AttrLabelProxy "fallbackSet"
textTagFallbackSet = AttrLabelProxy

textTagFamily :: AttrLabelProxy "family"
textTagFamily = AttrLabelProxy

textTagFamilySet :: AttrLabelProxy "familySet"
textTagFamilySet = AttrLabelProxy

textTagFont :: AttrLabelProxy "font"
textTagFont = AttrLabelProxy

textTagFontDesc :: AttrLabelProxy "fontDesc"
textTagFontDesc = AttrLabelProxy

textTagFontFeatures :: AttrLabelProxy "fontFeatures"
textTagFontFeatures = AttrLabelProxy

textTagFontFeaturesSet :: AttrLabelProxy "fontFeaturesSet"
textTagFontFeaturesSet = AttrLabelProxy

textTagForeground :: AttrLabelProxy "foreground"
textTagForeground = AttrLabelProxy

textTagForegroundGdk :: AttrLabelProxy "foregroundGdk"
textTagForegroundGdk = AttrLabelProxy

textTagForegroundRgba :: AttrLabelProxy "foregroundRgba"
textTagForegroundRgba = AttrLabelProxy

textTagForegroundSet :: AttrLabelProxy "foregroundSet"
textTagForegroundSet = AttrLabelProxy

textTagIndent :: AttrLabelProxy "indent"
textTagIndent = AttrLabelProxy

textTagIndentSet :: AttrLabelProxy "indentSet"
textTagIndentSet = AttrLabelProxy

textTagInvisible :: AttrLabelProxy "invisible"
textTagInvisible = AttrLabelProxy

textTagInvisibleSet :: AttrLabelProxy "invisibleSet"
textTagInvisibleSet = AttrLabelProxy

textTagJustification :: AttrLabelProxy "justification"
textTagJustification = AttrLabelProxy

textTagJustificationSet :: AttrLabelProxy "justificationSet"
textTagJustificationSet = AttrLabelProxy

textTagLanguage :: AttrLabelProxy "language"
textTagLanguage = AttrLabelProxy

textTagLanguageSet :: AttrLabelProxy "languageSet"
textTagLanguageSet = AttrLabelProxy

textTagLeftMargin :: AttrLabelProxy "leftMargin"
textTagLeftMargin = AttrLabelProxy

textTagLeftMarginSet :: AttrLabelProxy "leftMarginSet"
textTagLeftMarginSet = AttrLabelProxy

textTagLetterSpacing :: AttrLabelProxy "letterSpacing"
textTagLetterSpacing = AttrLabelProxy

textTagLetterSpacingSet :: AttrLabelProxy "letterSpacingSet"
textTagLetterSpacingSet = AttrLabelProxy

textTagName :: AttrLabelProxy "name"
textTagName = AttrLabelProxy

textTagParagraphBackground :: AttrLabelProxy "paragraphBackground"
textTagParagraphBackground = AttrLabelProxy

textTagParagraphBackgroundGdk :: AttrLabelProxy "paragraphBackgroundGdk"
textTagParagraphBackgroundGdk = AttrLabelProxy

textTagParagraphBackgroundRgba :: AttrLabelProxy "paragraphBackgroundRgba"
textTagParagraphBackgroundRgba = AttrLabelProxy

textTagParagraphBackgroundSet :: AttrLabelProxy "paragraphBackgroundSet"
textTagParagraphBackgroundSet = AttrLabelProxy

textTagPixelsAboveLines :: AttrLabelProxy "pixelsAboveLines"
textTagPixelsAboveLines = AttrLabelProxy

textTagPixelsAboveLinesSet :: AttrLabelProxy "pixelsAboveLinesSet"
textTagPixelsAboveLinesSet = AttrLabelProxy

textTagPixelsBelowLines :: AttrLabelProxy "pixelsBelowLines"
textTagPixelsBelowLines = AttrLabelProxy

textTagPixelsBelowLinesSet :: AttrLabelProxy "pixelsBelowLinesSet"
textTagPixelsBelowLinesSet = AttrLabelProxy

textTagPixelsInsideWrap :: AttrLabelProxy "pixelsInsideWrap"
textTagPixelsInsideWrap = AttrLabelProxy

textTagPixelsInsideWrapSet :: AttrLabelProxy "pixelsInsideWrapSet"
textTagPixelsInsideWrapSet = AttrLabelProxy

textTagRightMargin :: AttrLabelProxy "rightMargin"
textTagRightMargin = AttrLabelProxy

textTagRightMarginSet :: AttrLabelProxy "rightMarginSet"
textTagRightMarginSet = AttrLabelProxy

textTagRise :: AttrLabelProxy "rise"
textTagRise = AttrLabelProxy

textTagRiseSet :: AttrLabelProxy "riseSet"
textTagRiseSet = AttrLabelProxy

textTagScale :: AttrLabelProxy "scale"
textTagScale = AttrLabelProxy

textTagScaleSet :: AttrLabelProxy "scaleSet"
textTagScaleSet = AttrLabelProxy

textTagSize :: AttrLabelProxy "size"
textTagSize = AttrLabelProxy

textTagSizePoints :: AttrLabelProxy "sizePoints"
textTagSizePoints = AttrLabelProxy

textTagSizeSet :: AttrLabelProxy "sizeSet"
textTagSizeSet = AttrLabelProxy

textTagStretch :: AttrLabelProxy "stretch"
textTagStretch = AttrLabelProxy

textTagStretchSet :: AttrLabelProxy "stretchSet"
textTagStretchSet = AttrLabelProxy

textTagStrikethrough :: AttrLabelProxy "strikethrough"
textTagStrikethrough = AttrLabelProxy

textTagStrikethroughRgba :: AttrLabelProxy "strikethroughRgba"
textTagStrikethroughRgba = AttrLabelProxy

textTagStrikethroughRgbaSet :: AttrLabelProxy "strikethroughRgbaSet"
textTagStrikethroughRgbaSet = AttrLabelProxy

textTagStrikethroughSet :: AttrLabelProxy "strikethroughSet"
textTagStrikethroughSet = AttrLabelProxy

textTagStyle :: AttrLabelProxy "style"
textTagStyle = AttrLabelProxy

textTagStyleSet :: AttrLabelProxy "styleSet"
textTagStyleSet = AttrLabelProxy

textTagTabs :: AttrLabelProxy "tabs"
textTagTabs = AttrLabelProxy

textTagTabsSet :: AttrLabelProxy "tabsSet"
textTagTabsSet = AttrLabelProxy

textTagUnderline :: AttrLabelProxy "underline"
textTagUnderline = AttrLabelProxy

textTagUnderlineRgba :: AttrLabelProxy "underlineRgba"
textTagUnderlineRgba = AttrLabelProxy

textTagUnderlineRgbaSet :: AttrLabelProxy "underlineRgbaSet"
textTagUnderlineRgbaSet = AttrLabelProxy

textTagUnderlineSet :: AttrLabelProxy "underlineSet"
textTagUnderlineSet = AttrLabelProxy

textTagVariant :: AttrLabelProxy "variant"
textTagVariant = AttrLabelProxy

textTagVariantSet :: AttrLabelProxy "variantSet"
textTagVariantSet = AttrLabelProxy

textTagWeight :: AttrLabelProxy "weight"
textTagWeight = AttrLabelProxy

textTagWeightSet :: AttrLabelProxy "weightSet"
textTagWeightSet = AttrLabelProxy

textTagWrapMode :: AttrLabelProxy "wrapMode"
textTagWrapMode = AttrLabelProxy

textTagWrapModeSet :: AttrLabelProxy "wrapModeSet"
textTagWrapModeSet = AttrLabelProxy

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

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

-- method TextTag::new
-- method type : Constructor
-- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "tag name, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gtk", name = "TextTag"}))
-- throws : False
-- Skip return : False

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

{- |
Creates a 'GI.Gtk.Objects.TextTag.TextTag'. Configure the tag using object arguments,
i.e. using @/g_object_set()/@.
-}
textTagNew ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    Maybe (T.Text)
    {- ^ /@name@/: tag name, or 'Nothing' -}
    -> m TextTag
    {- ^ __Returns:__ a new 'GI.Gtk.Objects.TextTag.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 "textTagNew" result
    result' <- (wrapObject TextTag) result
    freeMem maybeName
    return result'

-- method TextTag::changed
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "tag", argType = TInterface (Name {namespace = "Gtk", name = "TextTag"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextTag.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "size_changed", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "whether the change affects the #GtkTextView layout.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_tag_changed" gtk_text_tag_changed :: 
    Ptr TextTag ->                          -- tag : TInterface (Name {namespace = "Gtk", name = "TextTag"})
    CInt ->                                 -- size_changed : TBasicType TBoolean
    IO ()

{- |
Emits the 'GI.Gtk.Objects.TextTagTable.TextTagTable'::@/tag-changed/@ signal on the 'GI.Gtk.Objects.TextTagTable.TextTagTable' where
the tag is included.

The signal is already emitted when setting a 'GI.Gtk.Objects.TextTag.TextTag' property. This
function is useful for a 'GI.Gtk.Objects.TextTag.TextTag' subclass.

@since 3.20
-}
textTagChanged ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextTag a) =>
    a
    {- ^ /@tag@/: a 'GI.Gtk.Objects.TextTag.TextTag'. -}
    -> Bool
    {- ^ /@sizeChanged@/: whether the change affects the 'GI.Gtk.Objects.TextView.TextView' layout. -}
    -> m ()
textTagChanged tag sizeChanged = liftIO $ do
    tag' <- unsafeManagedPtrCastPtr tag
    let sizeChanged' = (fromIntegral . fromEnum) sizeChanged
    gtk_text_tag_changed tag' sizeChanged'
    touchManagedPtr tag
    return ()

data TextTagChangedMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsTextTag a) => O.MethodInfo TextTagChangedMethodInfo a signature where
    overloadedMethod _ = textTagChanged

-- method TextTag::event
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "tag", argType = TInterface (Name {namespace = "Gtk", name = "TextTag"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextTag", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event_object", argType = TInterface (Name {namespace = "GObject", name = "Object"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "object that received the event, such as a widget", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the event", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TextIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location where the event was received", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_tag_event" gtk_text_tag_event :: 
    Ptr TextTag ->                          -- tag : TInterface (Name {namespace = "Gtk", name = "TextTag"})
    Ptr GObject.Object.Object ->            -- event_object : TInterface (Name {namespace = "GObject", name = "Object"})
    Ptr Gdk.Event.Event ->                  -- event : TInterface (Name {namespace = "Gdk", name = "Event"})
    Ptr Gtk.TextIter.TextIter ->            -- iter : TInterface (Name {namespace = "Gtk", name = "TextIter"})
    IO CInt

{- |
Emits the “event” signal on the 'GI.Gtk.Objects.TextTag.TextTag'.
-}
textTagEvent ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextTag a, GObject.Object.IsObject b) =>
    a
    {- ^ /@tag@/: a 'GI.Gtk.Objects.TextTag.TextTag' -}
    -> b
    {- ^ /@eventObject@/: object that received the event, such as a widget -}
    -> Gdk.Event.Event
    {- ^ /@event@/: the event -}
    -> Gtk.TextIter.TextIter
    {- ^ /@iter@/: location where the event was received -}
    -> m Bool
    {- ^ __Returns:__ result of signal emission (whether the event was handled) -}
textTagEvent tag eventObject event iter = liftIO $ do
    tag' <- unsafeManagedPtrCastPtr tag
    eventObject' <- unsafeManagedPtrCastPtr eventObject
    event' <- unsafeManagedPtrGetPtr event
    iter' <- unsafeManagedPtrGetPtr iter
    result <- gtk_text_tag_event tag' eventObject' event' iter'
    let result' = (/= 0) result
    touchManagedPtr tag
    touchManagedPtr eventObject
    touchManagedPtr event
    touchManagedPtr iter
    return result'

data TextTagEventMethodInfo
instance (signature ~ (b -> Gdk.Event.Event -> Gtk.TextIter.TextIter -> m Bool), MonadIO m, IsTextTag a, GObject.Object.IsObject b) => O.MethodInfo TextTagEventMethodInfo a signature where
    overloadedMethod _ = textTagEvent

-- method TextTag::get_priority
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "tag", argType = TInterface (Name {namespace = "Gtk", name = "TextTag"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextTag", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TInt)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_tag_get_priority" gtk_text_tag_get_priority :: 
    Ptr TextTag ->                          -- tag : TInterface (Name {namespace = "Gtk", name = "TextTag"})
    IO Int32

{- |
Get the tag priority.
-}
textTagGetPriority ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextTag a) =>
    a
    {- ^ /@tag@/: a 'GI.Gtk.Objects.TextTag.TextTag' -}
    -> m Int32
    {- ^ __Returns:__ The tag’s priority. -}
textTagGetPriority tag = liftIO $ do
    tag' <- unsafeManagedPtrCastPtr tag
    result <- gtk_text_tag_get_priority tag'
    touchManagedPtr tag
    return result

data TextTagGetPriorityMethodInfo
instance (signature ~ (m Int32), MonadIO m, IsTextTag a) => O.MethodInfo TextTagGetPriorityMethodInfo a signature where
    overloadedMethod _ = textTagGetPriority

-- method TextTag::set_priority
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "tag", argType = TInterface (Name {namespace = "Gtk", name = "TextTag"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextTag", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "priority", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the new priority", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_tag_set_priority" gtk_text_tag_set_priority :: 
    Ptr TextTag ->                          -- tag : TInterface (Name {namespace = "Gtk", name = "TextTag"})
    Int32 ->                                -- priority : TBasicType TInt
    IO ()

{- |
Sets the priority of a 'GI.Gtk.Objects.TextTag.TextTag'. Valid priorities
start at 0 and go to one less than 'GI.Gtk.Objects.TextTagTable.textTagTableGetSize'.
Each tag in a table has a unique priority; setting the priority
of one tag shifts the priorities of all the other tags in the
table to maintain a unique priority for each tag. Higher priority
tags “win” if two tags both set the same text attribute. When adding
a tag to a tag table, it will be assigned the highest priority in
the table by default; so normally the precedence of a set of tags
is the order in which they were added to the table, or created with
@/gtk_text_buffer_create_tag()/@, which adds the tag to the buffer’s table
automatically.
-}
textTagSetPriority ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextTag a) =>
    a
    {- ^ /@tag@/: a 'GI.Gtk.Objects.TextTag.TextTag' -}
    -> Int32
    {- ^ /@priority@/: the new priority -}
    -> m ()
textTagSetPriority tag priority = liftIO $ do
    tag' <- unsafeManagedPtrCastPtr tag
    gtk_text_tag_set_priority tag' priority
    touchManagedPtr tag
    return ()

data TextTagSetPriorityMethodInfo
instance (signature ~ (Int32 -> m ()), MonadIO m, IsTextTag a) => O.MethodInfo TextTagSetPriorityMethodInfo a signature where
    overloadedMethod _ = textTagSetPriority