    {-# LANGUAGE TypeApplications #-}

    -- | Copyright  : Will Thompson and Iñaki García Etxebarria
    -- License    : LGPL-2.1
    -- Maintainer : Iñaki García Etxebarria
    --
    -- Can be applied to text contained in a @GtkTextBuffer@.
    --
    -- You may wish to begin by reading the
    -- <https://docs.gtk.org/gtk4/section-text-widget.html text widget conceptual overview>,
    -- 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 t'GI.Gtk.Objects.TextTagTable.TextTagTable' for a given
    -- @GtkTextBuffer@ before using them with that buffer.
    --
    -- t'GI.Gtk.Objects.TextBuffer.TextBuffer'.@/create_tag/@() is the best way to create tags.
    -- See “gtk4-demo” for numerous examples.
    --
    -- For each property of @GtkTextTag@, 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.

    #if !defined(__HADDOCK_VERSION__)
    #define ENABLE_OVERLOADING
    #endif

    module GI.Gtk.Objects.TextTag
        (

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

     -- * Methods
    -- |
    --
    --  === __Click to display all available methods, including inherited ones__
    -- ==== Methods
    -- [bindProperty]("GI.GObject.Objects.Object#g:method:bindProperty"), [bindPropertyFull]("GI.GObject.Objects.Object#g:method:bindPropertyFull"), [changed]("GI.Gtk.Objects.TextTag#g:method:changed"), [forceFloating]("GI.GObject.Objects.Object#g:method:forceFloating"), [freezeNotify]("GI.GObject.Objects.Object#g:method:freezeNotify"), [getv]("GI.GObject.Objects.Object#g:method:getv"), [isFloating]("GI.GObject.Objects.Object#g:method:isFloating"), [notify]("GI.GObject.Objects.Object#g:method:notify"), [notifyByPspec]("GI.GObject.Objects.Object#g:method:notifyByPspec"), [ref]("GI.GObject.Objects.Object#g:method:ref"), [refSink]("GI.GObject.Objects.Object#g:method:refSink"), [runDispose]("GI.GObject.Objects.Object#g:method:runDispose"), [stealData]("GI.GObject.Objects.Object#g:method:stealData"), [stealQdata]("GI.GObject.Objects.Object#g:method:stealQdata"), [thawNotify]("GI.GObject.Objects.Object#g:method:thawNotify"), [unref]("GI.GObject.Objects.Object#g:method:unref"), [watchClosure]("GI.GObject.Objects.Object#g:method:watchClosure").
    --
    -- ==== Getters
    -- [getData]("GI.GObject.Objects.Object#g:method:getData"), [getPriority]("GI.Gtk.Objects.TextTag#g:method:getPriority"), [getProperty]("GI.GObject.Objects.Object#g:method:getProperty"), [getQdata]("GI.GObject.Objects.Object#g:method:getQdata").
    --
    -- ==== Setters
    -- [setData]("GI.GObject.Objects.Object#g:method:setData"), [setDataFull]("GI.GObject.Objects.Object#g:method:setDataFull"), [setPriority]("GI.Gtk.Objects.TextTag#g:method:setPriority"), [setProperty]("GI.GObject.Objects.Object#g:method:setProperty").

    #if defined(ENABLE_OVERLOADING)
        ResolveTextTagMethod                    ,
    #endif

    -- ** changed #method:changed#

    #if defined(ENABLE_OVERLOADING)
        TextTagChangedMethodInfo                ,
    #endif
        textTagChanged                          ,

    -- ** getPriority #method:getPriority#

    #if defined(ENABLE_OVERLOADING)
        TextTagGetPriorityMethodInfo            ,
    #endif
        textTagGetPriority                      ,

    -- ** new #method:new#

        textTagNew                              ,

    -- ** setPriority #method:setPriority#

    #if defined(ENABLE_OVERLOADING)
        TextTagSetPriorityMethodInfo            ,
    #endif
        textTagSetPriority                      ,

     -- * Properties

    -- ** accumulativeMargin #attr:accumulativeMargin#
    -- | Whether the margins accumulate or override each other.
    --
    -- When set to 'P.True' the margins of this tag are added to the margins
    -- of any other non-accumulative margins present. When set to 'P.False'
    -- the margins override one another (the default).

    #if defined(ENABLE_OVERLOADING)
        TextTagAccumulativeMarginPropertyInfo   ,
    #endif
        constructTextTagAccumulativeMargin      ,
        getTextTagAccumulativeMargin            ,
        setTextTagAccumulativeMargin            ,
    #if defined(ENABLE_OVERLOADING)
        textTagAccumulativeMargin               ,
    #endif

    -- ** allowBreaks #attr:allowBreaks#
    -- | Whether breaks are allowed.

    #if defined(ENABLE_OVERLOADING)
        TextTagAllowBreaksPropertyInfo          ,
    #endif
        constructTextTagAllowBreaks             ,
        getTextTagAllowBreaks                   ,
        setTextTagAllowBreaks                   ,
    #if defined(ENABLE_OVERLOADING)
        textTagAllowBreaks                      ,
    #endif

    -- ** allowBreaksSet #attr:allowBreaksSet#
    -- | Whether the @allow-breaks@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagAllowBreaksSetPropertyInfo       ,
    #endif
        constructTextTagAllowBreaksSet          ,
        getTextTagAllowBreaksSet                ,
        setTextTagAllowBreaksSet                ,
    #if defined(ENABLE_OVERLOADING)
        textTagAllowBreaksSet                   ,
    #endif

    -- ** background #attr:background#
    -- | Background color as a string.

    #if defined(ENABLE_OVERLOADING)
        TextTagBackgroundPropertyInfo           ,
    #endif
        clearTextTagBackground                  ,
        constructTextTagBackground              ,
        setTextTagBackground                    ,
    #if defined(ENABLE_OVERLOADING)
        textTagBackground                       ,
    #endif

    -- ** backgroundFullHeight #attr:backgroundFullHeight#
    -- | Whether the background color fills the entire line height
    -- or only the height of the tagged characters.

    #if defined(ENABLE_OVERLOADING)
        TextTagBackgroundFullHeightPropertyInfo ,
    #endif
        constructTextTagBackgroundFullHeight    ,
        getTextTagBackgroundFullHeight          ,
        setTextTagBackgroundFullHeight          ,
    #if defined(ENABLE_OVERLOADING)
        textTagBackgroundFullHeight             ,
    #endif

    -- ** backgroundFullHeightSet #attr:backgroundFullHeightSet#
    -- | Whether the @background-full-height@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagBackgroundFullHeightSetPropertyInfo,
    #endif
        constructTextTagBackgroundFullHeightSet ,
        getTextTagBackgroundFullHeightSet       ,
        setTextTagBackgroundFullHeightSet       ,
    #if defined(ENABLE_OVERLOADING)
        textTagBackgroundFullHeightSet          ,
    #endif

    -- ** backgroundRgba #attr:backgroundRgba#
    -- | Background color as a @GdkRGBA@.

    #if defined(ENABLE_OVERLOADING)
        TextTagBackgroundRgbaPropertyInfo       ,
    #endif
        clearTextTagBackgroundRgba              ,
        constructTextTagBackgroundRgba          ,
        getTextTagBackgroundRgba                ,
        setTextTagBackgroundRgba                ,
    #if defined(ENABLE_OVERLOADING)
        textTagBackgroundRgba                   ,
    #endif

    -- ** backgroundSet #attr:backgroundSet#
    -- | Whether the @background@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagBackgroundSetPropertyInfo        ,
    #endif
        constructTextTagBackgroundSet           ,
        getTextTagBackgroundSet                 ,
        setTextTagBackgroundSet                 ,
    #if defined(ENABLE_OVERLOADING)
        textTagBackgroundSet                    ,
    #endif

    -- ** direction #attr:direction#
    -- | Text direction, e.g. right-to-left or left-to-right.

    #if defined(ENABLE_OVERLOADING)
        TextTagDirectionPropertyInfo            ,
    #endif
        constructTextTagDirection               ,
        getTextTagDirection                     ,
        setTextTagDirection                     ,
    #if defined(ENABLE_OVERLOADING)
        textTagDirection                        ,
    #endif

    -- ** editable #attr:editable#
    -- | Whether the text can be modified by the user.

    #if defined(ENABLE_OVERLOADING)
        TextTagEditablePropertyInfo             ,
    #endif
        constructTextTagEditable                ,
        getTextTagEditable                      ,
        setTextTagEditable                      ,
    #if defined(ENABLE_OVERLOADING)
        textTagEditable                         ,
    #endif

    -- ** editableSet #attr:editableSet#
    -- | Whether the @editable@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagEditableSetPropertyInfo          ,
    #endif
        constructTextTagEditableSet             ,
        getTextTagEditableSet                   ,
        setTextTagEditableSet                   ,
    #if defined(ENABLE_OVERLOADING)
        textTagEditableSet                      ,
    #endif

    -- ** fallback #attr:fallback#
    -- | Whether font fallback is enabled.
    --
    -- When set to 'P.True', other fonts will be substituted
    -- where the current font is missing glyphs.

    #if defined(ENABLE_OVERLOADING)
        TextTagFallbackPropertyInfo             ,
    #endif
        constructTextTagFallback                ,
        getTextTagFallback                      ,
        setTextTagFallback                      ,
    #if defined(ENABLE_OVERLOADING)
        textTagFallback                         ,
    #endif

    -- ** fallbackSet #attr:fallbackSet#
    -- | Whether the @fallback@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagFallbackSetPropertyInfo          ,
    #endif
        constructTextTagFallbackSet             ,
        getTextTagFallbackSet                   ,
        setTextTagFallbackSet                   ,
    #if defined(ENABLE_OVERLOADING)
        textTagFallbackSet                      ,
    #endif

    -- ** family #attr:family#
    -- | Name of the font family, e.g. Sans, Helvetica, Times, Monospace.

    #if defined(ENABLE_OVERLOADING)
        TextTagFamilyPropertyInfo               ,
    #endif
        clearTextTagFamily                      ,
        constructTextTagFamily                  ,
        getTextTagFamily                        ,
        setTextTagFamily                        ,
    #if defined(ENABLE_OVERLOADING)
        textTagFamily                           ,
    #endif

    -- ** familySet #attr:familySet#
    -- | Whether the @family@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagFamilySetPropertyInfo            ,
    #endif
        constructTextTagFamilySet               ,
        getTextTagFamilySet                     ,
        setTextTagFamilySet                     ,
    #if defined(ENABLE_OVERLOADING)
        textTagFamilySet                        ,
    #endif

    -- ** font #attr:font#
    -- | Font description as string, e.g. \\\"Sans Italic 12\\\".
    --
    -- Note that the initial value of this property depends on
    -- the internals of @PangoFontDescription@.

    #if defined(ENABLE_OVERLOADING)
        TextTagFontPropertyInfo                 ,
    #endif
        clearTextTagFont                        ,
        constructTextTagFont                    ,
        getTextTagFont                          ,
        setTextTagFont                          ,
    #if defined(ENABLE_OVERLOADING)
        textTagFont                             ,
    #endif

    -- ** fontDesc #attr:fontDesc#
    -- | Font description as a @PangoFontDescription@.

    #if defined(ENABLE_OVERLOADING)
        TextTagFontDescPropertyInfo             ,
    #endif
        clearTextTagFontDesc                    ,
        constructTextTagFontDesc                ,
        getTextTagFontDesc                      ,
        setTextTagFontDesc                      ,
    #if defined(ENABLE_OVERLOADING)
        textTagFontDesc                         ,
    #endif

    -- ** fontFeatures #attr:fontFeatures#
    -- | OpenType font features, as a string.

    #if defined(ENABLE_OVERLOADING)
        TextTagFontFeaturesPropertyInfo         ,
    #endif
        clearTextTagFontFeatures                ,
        constructTextTagFontFeatures            ,
        getTextTagFontFeatures                  ,
        setTextTagFontFeatures                  ,
    #if defined(ENABLE_OVERLOADING)
        textTagFontFeatures                     ,
    #endif

    -- ** fontFeaturesSet #attr:fontFeaturesSet#
    -- | Whether the @font-features@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagFontFeaturesSetPropertyInfo      ,
    #endif
        constructTextTagFontFeaturesSet         ,
        getTextTagFontFeaturesSet               ,
        setTextTagFontFeaturesSet               ,
    #if defined(ENABLE_OVERLOADING)
        textTagFontFeaturesSet                  ,
    #endif

    -- ** foreground #attr:foreground#
    -- | Foreground color as a string.

    #if defined(ENABLE_OVERLOADING)
        TextTagForegroundPropertyInfo           ,
    #endif
        clearTextTagForeground                  ,
        constructTextTagForeground              ,
        setTextTagForeground                    ,
    #if defined(ENABLE_OVERLOADING)
        textTagForeground                       ,
    #endif

    -- ** foregroundRgba #attr:foregroundRgba#
    -- | Foreground color as a @GdkRGBA@.

    #if defined(ENABLE_OVERLOADING)
        TextTagForegroundRgbaPropertyInfo       ,
    #endif
        clearTextTagForegroundRgba              ,
        constructTextTagForegroundRgba          ,
        getTextTagForegroundRgba                ,
        setTextTagForegroundRgba                ,
    #if defined(ENABLE_OVERLOADING)
        textTagForegroundRgba                   ,
    #endif

    -- ** foregroundSet #attr:foregroundSet#
    -- | Whether the @foreground@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagForegroundSetPropertyInfo        ,
    #endif
        constructTextTagForegroundSet           ,
        getTextTagForegroundSet                 ,
        setTextTagForegroundSet                 ,
    #if defined(ENABLE_OVERLOADING)
        textTagForegroundSet                    ,
    #endif

    -- ** indent #attr:indent#
    -- | Amount to indent the paragraph, in pixels.
    --
    -- A negative value of indent will produce a hanging indentation.
    -- That is, the first line will have the full width, and subsequent
    -- lines will be indented by the absolute value of indent.

    #if defined(ENABLE_OVERLOADING)
        TextTagIndentPropertyInfo               ,
    #endif
        constructTextTagIndent                  ,
        getTextTagIndent                        ,
        setTextTagIndent                        ,
    #if defined(ENABLE_OVERLOADING)
        textTagIndent                           ,
    #endif

    -- ** indentSet #attr:indentSet#
    -- | Whether the @indent@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagIndentSetPropertyInfo            ,
    #endif
        constructTextTagIndentSet               ,
        getTextTagIndentSet                     ,
        setTextTagIndentSet                     ,
    #if defined(ENABLE_OVERLOADING)
        textTagIndentSet                        ,
    #endif

    -- ** insertHyphens #attr:insertHyphens#
    -- | Whether to insert hyphens at breaks.

    #if defined(ENABLE_OVERLOADING)
        TextTagInsertHyphensPropertyInfo        ,
    #endif
        constructTextTagInsertHyphens           ,
        getTextTagInsertHyphens                 ,
        setTextTagInsertHyphens                 ,
    #if defined(ENABLE_OVERLOADING)
        textTagInsertHyphens                    ,
    #endif

    -- ** insertHyphensSet #attr:insertHyphensSet#
    -- | Whether the @insert-hyphens@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagInsertHyphensSetPropertyInfo     ,
    #endif
        constructTextTagInsertHyphensSet        ,
        getTextTagInsertHyphensSet              ,
        setTextTagInsertHyphensSet              ,
    #if defined(ENABLE_OVERLOADING)
        textTagInsertHyphensSet                 ,
    #endif

    -- ** invisible #attr:invisible#
    -- | Whether this text is hidden.
    --
    -- Note that there may still be problems with the support for invisible
    -- text, in particular when navigating programmatically inside a buffer
    -- containing invisible segments.

    #if defined(ENABLE_OVERLOADING)
        TextTagInvisiblePropertyInfo            ,
    #endif
        constructTextTagInvisible               ,
        getTextTagInvisible                     ,
        setTextTagInvisible                     ,
    #if defined(ENABLE_OVERLOADING)
        textTagInvisible                        ,
    #endif

    -- ** invisibleSet #attr:invisibleSet#
    -- | Whether the @invisible@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagInvisibleSetPropertyInfo         ,
    #endif
        constructTextTagInvisibleSet            ,
        getTextTagInvisibleSet                  ,
        setTextTagInvisibleSet                  ,
    #if defined(ENABLE_OVERLOADING)
        textTagInvisibleSet                     ,
    #endif

    -- ** justification #attr:justification#
    -- | Left, right, or center justification.

    #if defined(ENABLE_OVERLOADING)
        TextTagJustificationPropertyInfo        ,
    #endif
        constructTextTagJustification           ,
        getTextTagJustification                 ,
        setTextTagJustification                 ,
    #if defined(ENABLE_OVERLOADING)
        textTagJustification                    ,
    #endif

    -- ** justificationSet #attr:justificationSet#
    -- | Whether the @justification@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagJustificationSetPropertyInfo     ,
    #endif
        constructTextTagJustificationSet        ,
        getTextTagJustificationSet              ,
        setTextTagJustificationSet              ,
    #if defined(ENABLE_OVERLOADING)
        textTagJustificationSet                 ,
    #endif

    -- ** language #attr:language#
    -- | The language this text is in, as an ISO code.
    --
    -- Pango can use this as a hint when rendering the text.
    -- If not set, an appropriate default will be used.
    --
    -- Note that the initial value of this property depends
    -- on the current locale, see also 'GI.Gtk.Functions.getDefaultLanguage'.

    #if defined(ENABLE_OVERLOADING)
        TextTagLanguagePropertyInfo             ,
    #endif
        clearTextTagLanguage                    ,
        constructTextTagLanguage                ,
        getTextTagLanguage                      ,
        setTextTagLanguage                      ,
    #if defined(ENABLE_OVERLOADING)
        textTagLanguage                         ,
    #endif

    -- ** languageSet #attr:languageSet#
    -- | Whether the @language@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagLanguageSetPropertyInfo          ,
    #endif
        constructTextTagLanguageSet             ,
        getTextTagLanguageSet                   ,
        setTextTagLanguageSet                   ,
    #if defined(ENABLE_OVERLOADING)
        textTagLanguageSet                      ,
    #endif

    -- ** leftMargin #attr:leftMargin#
    -- | Width of the left margin in pixels.

    #if defined(ENABLE_OVERLOADING)
        TextTagLeftMarginPropertyInfo           ,
    #endif
        constructTextTagLeftMargin              ,
        getTextTagLeftMargin                    ,
        setTextTagLeftMargin                    ,
    #if defined(ENABLE_OVERLOADING)
        textTagLeftMargin                       ,
    #endif

    -- ** leftMarginSet #attr:leftMarginSet#
    -- | Whether the @left-margin@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagLeftMarginSetPropertyInfo        ,
    #endif
        constructTextTagLeftMarginSet           ,
        getTextTagLeftMarginSet                 ,
        setTextTagLeftMarginSet                 ,
    #if defined(ENABLE_OVERLOADING)
        textTagLeftMarginSet                    ,
    #endif

    -- ** letterSpacing #attr:letterSpacing#
    -- | Extra spacing between graphemes, in Pango units.

    #if defined(ENABLE_OVERLOADING)
        TextTagLetterSpacingPropertyInfo        ,
    #endif
        constructTextTagLetterSpacing           ,
        getTextTagLetterSpacing                 ,
        setTextTagLetterSpacing                 ,
    #if defined(ENABLE_OVERLOADING)
        textTagLetterSpacing                    ,
    #endif

    -- ** letterSpacingSet #attr:letterSpacingSet#
    -- | Whether the @letter-spacing@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagLetterSpacingSetPropertyInfo     ,
    #endif
        constructTextTagLetterSpacingSet        ,
        getTextTagLetterSpacingSet              ,
        setTextTagLetterSpacingSet              ,
    #if defined(ENABLE_OVERLOADING)
        textTagLetterSpacingSet                 ,
    #endif

    -- ** lineHeight #attr:lineHeight#
    -- | Factor to scale line height by.
    --
    -- /Since: 4.6/

    #if defined(ENABLE_OVERLOADING)
        TextTagLineHeightPropertyInfo           ,
    #endif
        constructTextTagLineHeight              ,
        getTextTagLineHeight                    ,
        setTextTagLineHeight                    ,
    #if defined(ENABLE_OVERLOADING)
        textTagLineHeight                       ,
    #endif

    -- ** lineHeightSet #attr:lineHeightSet#
    -- | Whether the @line-height@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagLineHeightSetPropertyInfo        ,
    #endif
        constructTextTagLineHeightSet           ,
        getTextTagLineHeightSet                 ,
        setTextTagLineHeightSet                 ,
    #if defined(ENABLE_OVERLOADING)
        textTagLineHeightSet                    ,
    #endif

    -- ** name #attr:name#
    -- | The name used to refer to the tag.
    --
    -- 'P.Nothing' for anonymous tags.

    #if defined(ENABLE_OVERLOADING)
        TextTagNamePropertyInfo                 ,
    #endif
        constructTextTagName                    ,
        getTextTagName                          ,
    #if defined(ENABLE_OVERLOADING)
        textTagName                             ,
    #endif

    -- ** overline #attr:overline#
    -- | Style of overline for this text.

    #if defined(ENABLE_OVERLOADING)
        TextTagOverlinePropertyInfo             ,
    #endif
        constructTextTagOverline                ,
        getTextTagOverline                      ,
        setTextTagOverline                      ,
    #if defined(ENABLE_OVERLOADING)
        textTagOverline                         ,
    #endif

    -- ** overlineRgba #attr:overlineRgba#
    -- | This property modifies the color of overlines.
    --
    -- If not set, overlines will use the foreground color.

    #if defined(ENABLE_OVERLOADING)
        TextTagOverlineRgbaPropertyInfo         ,
    #endif
        clearTextTagOverlineRgba                ,
        constructTextTagOverlineRgba            ,
        getTextTagOverlineRgba                  ,
        setTextTagOverlineRgba                  ,
    #if defined(ENABLE_OVERLOADING)
        textTagOverlineRgba                     ,
    #endif

    -- ** overlineRgbaSet #attr:overlineRgbaSet#
    -- | Whether the @overline-rgba@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagOverlineRgbaSetPropertyInfo      ,
    #endif
        constructTextTagOverlineRgbaSet         ,
        getTextTagOverlineRgbaSet               ,
        setTextTagOverlineRgbaSet               ,
    #if defined(ENABLE_OVERLOADING)
        textTagOverlineRgbaSet                  ,
    #endif

    -- ** overlineSet #attr:overlineSet#
    -- | Whether the @overline@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagOverlineSetPropertyInfo          ,
    #endif
        constructTextTagOverlineSet             ,
        getTextTagOverlineSet                   ,
        setTextTagOverlineSet                   ,
    #if defined(ENABLE_OVERLOADING)
        textTagOverlineSet                      ,
    #endif

    -- ** paragraphBackground #attr:paragraphBackground#
    -- | The paragraph background color as a string.

    #if defined(ENABLE_OVERLOADING)
        TextTagParagraphBackgroundPropertyInfo  ,
    #endif
        clearTextTagParagraphBackground         ,
        constructTextTagParagraphBackground     ,
        setTextTagParagraphBackground           ,
    #if defined(ENABLE_OVERLOADING)
        textTagParagraphBackground              ,
    #endif

    -- ** paragraphBackgroundRgba #attr:paragraphBackgroundRgba#
    -- | The paragraph background color as a @GdkRGBA@.

    #if defined(ENABLE_OVERLOADING)
        TextTagParagraphBackgroundRgbaPropertyInfo,
    #endif
        clearTextTagParagraphBackgroundRgba     ,
        constructTextTagParagraphBackgroundRgba ,
        getTextTagParagraphBackgroundRgba       ,
        setTextTagParagraphBackgroundRgba       ,
    #if defined(ENABLE_OVERLOADING)
        textTagParagraphBackgroundRgba          ,
    #endif

    -- ** paragraphBackgroundSet #attr:paragraphBackgroundSet#
    -- | Whether the @paragraph-background@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagParagraphBackgroundSetPropertyInfo,
    #endif
        constructTextTagParagraphBackgroundSet  ,
        getTextTagParagraphBackgroundSet        ,
        setTextTagParagraphBackgroundSet        ,
    #if defined(ENABLE_OVERLOADING)
        textTagParagraphBackgroundSet           ,
    #endif

    -- ** pixelsAboveLines #attr:pixelsAboveLines#
    -- | Pixels of blank space above paragraphs.

    #if defined(ENABLE_OVERLOADING)
        TextTagPixelsAboveLinesPropertyInfo     ,
    #endif
        constructTextTagPixelsAboveLines        ,
        getTextTagPixelsAboveLines              ,
        setTextTagPixelsAboveLines              ,
    #if defined(ENABLE_OVERLOADING)
        textTagPixelsAboveLines                 ,
    #endif

    -- ** pixelsAboveLinesSet #attr:pixelsAboveLinesSet#
    -- | Whether the @pixels-above-lines@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagPixelsAboveLinesSetPropertyInfo  ,
    #endif
        constructTextTagPixelsAboveLinesSet     ,
        getTextTagPixelsAboveLinesSet           ,
        setTextTagPixelsAboveLinesSet           ,
    #if defined(ENABLE_OVERLOADING)
        textTagPixelsAboveLinesSet              ,
    #endif

    -- ** pixelsBelowLines #attr:pixelsBelowLines#
    -- | Pixels of blank space below paragraphs.

    #if defined(ENABLE_OVERLOADING)
        TextTagPixelsBelowLinesPropertyInfo     ,
    #endif
        constructTextTagPixelsBelowLines        ,
        getTextTagPixelsBelowLines              ,
        setTextTagPixelsBelowLines              ,
    #if defined(ENABLE_OVERLOADING)
        textTagPixelsBelowLines                 ,
    #endif

    -- ** pixelsBelowLinesSet #attr:pixelsBelowLinesSet#
    -- | Whether the @pixels-below-lines@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagPixelsBelowLinesSetPropertyInfo  ,
    #endif
        constructTextTagPixelsBelowLinesSet     ,
        getTextTagPixelsBelowLinesSet           ,
        setTextTagPixelsBelowLinesSet           ,
    #if defined(ENABLE_OVERLOADING)
        textTagPixelsBelowLinesSet              ,
    #endif

    -- ** pixelsInsideWrap #attr:pixelsInsideWrap#
    -- | Pixels of blank space between wrapped lines in a paragraph.

    #if defined(ENABLE_OVERLOADING)
        TextTagPixelsInsideWrapPropertyInfo     ,
    #endif
        constructTextTagPixelsInsideWrap        ,
        getTextTagPixelsInsideWrap              ,
        setTextTagPixelsInsideWrap              ,
    #if defined(ENABLE_OVERLOADING)
        textTagPixelsInsideWrap                 ,
    #endif

    -- ** pixelsInsideWrapSet #attr:pixelsInsideWrapSet#
    -- | Whether the @pixels-inside-wrap@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagPixelsInsideWrapSetPropertyInfo  ,
    #endif
        constructTextTagPixelsInsideWrapSet     ,
        getTextTagPixelsInsideWrapSet           ,
        setTextTagPixelsInsideWrapSet           ,
    #if defined(ENABLE_OVERLOADING)
        textTagPixelsInsideWrapSet              ,
    #endif

    -- ** rightMargin #attr:rightMargin#
    -- | Width of the right margin, in pixels.

    #if defined(ENABLE_OVERLOADING)
        TextTagRightMarginPropertyInfo          ,
    #endif
        constructTextTagRightMargin             ,
        getTextTagRightMargin                   ,
        setTextTagRightMargin                   ,
    #if defined(ENABLE_OVERLOADING)
        textTagRightMargin                      ,
    #endif

    -- ** rightMarginSet #attr:rightMarginSet#
    -- | Whether the @right-margin@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagRightMarginSetPropertyInfo       ,
    #endif
        constructTextTagRightMarginSet          ,
        getTextTagRightMarginSet                ,
        setTextTagRightMarginSet                ,
    #if defined(ENABLE_OVERLOADING)
        textTagRightMarginSet                   ,
    #endif

    -- ** rise #attr:rise#
    -- | Offset of text above the baseline, in Pango units.
    --
    -- Negative values go below the baseline.

    #if defined(ENABLE_OVERLOADING)
        TextTagRisePropertyInfo                 ,
    #endif
        constructTextTagRise                    ,
        getTextTagRise                          ,
        setTextTagRise                          ,
    #if defined(ENABLE_OVERLOADING)
        textTagRise                             ,
    #endif

    -- ** riseSet #attr:riseSet#
    -- | Whether the @rise@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagRiseSetPropertyInfo              ,
    #endif
        constructTextTagRiseSet                 ,
        getTextTagRiseSet                       ,
        setTextTagRiseSet                       ,
    #if defined(ENABLE_OVERLOADING)
        textTagRiseSet                          ,
    #endif

    -- ** scale #attr:scale#
    -- | Font size as a scale factor relative to the default font size.
    --
    -- This properly adapts to theme changes, etc. so is recommended.
    -- Pango predefines some scales such as @/PANGO_SCALE_X_LARGE/@.

    #if defined(ENABLE_OVERLOADING)
        TextTagScalePropertyInfo                ,
    #endif
        constructTextTagScale                   ,
        getTextTagScale                         ,
        setTextTagScale                         ,
    #if defined(ENABLE_OVERLOADING)
        textTagScale                            ,
    #endif

    -- ** scaleSet #attr:scaleSet#
    -- | Whether the @scale@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagScaleSetPropertyInfo             ,
    #endif
        constructTextTagScaleSet                ,
        getTextTagScaleSet                      ,
        setTextTagScaleSet                      ,
    #if defined(ENABLE_OVERLOADING)
        textTagScaleSet                         ,
    #endif

    -- ** sentence #attr:sentence#
    -- | Whether this tag represents a single sentence.
    --
    -- This affects cursor movement.
    --
    -- /Since: 4.6/

    #if defined(ENABLE_OVERLOADING)
        TextTagSentencePropertyInfo             ,
    #endif
        constructTextTagSentence                ,
        getTextTagSentence                      ,
        setTextTagSentence                      ,
    #if defined(ENABLE_OVERLOADING)
        textTagSentence                         ,
    #endif

    -- ** sentenceSet #attr:sentenceSet#
    -- | Whether the @sentence@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagSentenceSetPropertyInfo          ,
    #endif
        constructTextTagSentenceSet             ,
        getTextTagSentenceSet                   ,
        setTextTagSentenceSet                   ,
    #if defined(ENABLE_OVERLOADING)
        textTagSentenceSet                      ,
    #endif

    -- ** showSpaces #attr:showSpaces#
    -- | How to render invisible characters.

    #if defined(ENABLE_OVERLOADING)
        TextTagShowSpacesPropertyInfo           ,
    #endif
        constructTextTagShowSpaces              ,
        getTextTagShowSpaces                    ,
        setTextTagShowSpaces                    ,
    #if defined(ENABLE_OVERLOADING)
        textTagShowSpaces                       ,
    #endif

    -- ** showSpacesSet #attr:showSpacesSet#
    -- | Whether the @show-spaces@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagShowSpacesSetPropertyInfo        ,
    #endif
        constructTextTagShowSpacesSet           ,
        getTextTagShowSpacesSet                 ,
        setTextTagShowSpacesSet                 ,
    #if defined(ENABLE_OVERLOADING)
        textTagShowSpacesSet                    ,
    #endif

    -- ** size #attr:size#
    -- | Font size in Pango units.

    #if defined(ENABLE_OVERLOADING)
        TextTagSizePropertyInfo                 ,
    #endif
        constructTextTagSize                    ,
        getTextTagSize                          ,
        setTextTagSize                          ,
    #if defined(ENABLE_OVERLOADING)
        textTagSize                             ,
    #endif

    -- ** sizePoints #attr:sizePoints#
    -- | Font size in points.

    #if defined(ENABLE_OVERLOADING)
        TextTagSizePointsPropertyInfo           ,
    #endif
        constructTextTagSizePoints              ,
        getTextTagSizePoints                    ,
        setTextTagSizePoints                    ,
    #if defined(ENABLE_OVERLOADING)
        textTagSizePoints                       ,
    #endif

    -- ** sizeSet #attr:sizeSet#
    -- | Whether the @size@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagSizeSetPropertyInfo              ,
    #endif
        constructTextTagSizeSet                 ,
        getTextTagSizeSet                       ,
        setTextTagSizeSet                       ,
    #if defined(ENABLE_OVERLOADING)
        textTagSizeSet                          ,
    #endif

    -- ** stretch #attr:stretch#
    -- | Font stretch as a @PangoStretch@, e.g. 'GI.Pango.Enums.StretchCondensed'.

    #if defined(ENABLE_OVERLOADING)
        TextTagStretchPropertyInfo              ,
    #endif
        constructTextTagStretch                 ,
        getTextTagStretch                       ,
        setTextTagStretch                       ,
    #if defined(ENABLE_OVERLOADING)
        textTagStretch                          ,
    #endif

    -- ** stretchSet #attr:stretchSet#
    -- | Whether the @stretch@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagStretchSetPropertyInfo           ,
    #endif
        constructTextTagStretchSet              ,
        getTextTagStretchSet                    ,
        setTextTagStretchSet                    ,
    #if defined(ENABLE_OVERLOADING)
        textTagStretchSet                       ,
    #endif

    -- ** strikethrough #attr:strikethrough#
    -- | Whether to strike through the text.

    #if defined(ENABLE_OVERLOADING)
        TextTagStrikethroughPropertyInfo        ,
    #endif
        constructTextTagStrikethrough           ,
        getTextTagStrikethrough                 ,
        setTextTagStrikethrough                 ,
    #if defined(ENABLE_OVERLOADING)
        textTagStrikethrough                    ,
    #endif

    -- ** strikethroughRgba #attr:strikethroughRgba#
    -- | This property modifies the color of strikeouts.
    --
    -- If not set, strikeouts will use the foreground color.

    #if defined(ENABLE_OVERLOADING)
        TextTagStrikethroughRgbaPropertyInfo    ,
    #endif
        clearTextTagStrikethroughRgba           ,
        constructTextTagStrikethroughRgba       ,
        getTextTagStrikethroughRgba             ,
        setTextTagStrikethroughRgba             ,
    #if defined(ENABLE_OVERLOADING)
        textTagStrikethroughRgba                ,
    #endif

    -- ** strikethroughRgbaSet #attr:strikethroughRgbaSet#
    -- | If the @strikethrough-rgba@ property has been set.

    #if defined(ENABLE_OVERLOADING)
        TextTagStrikethroughRgbaSetPropertyInfo ,
    #endif
        constructTextTagStrikethroughRgbaSet    ,
        getTextTagStrikethroughRgbaSet          ,
        setTextTagStrikethroughRgbaSet          ,
    #if defined(ENABLE_OVERLOADING)
        textTagStrikethroughRgbaSet             ,
    #endif

    -- ** strikethroughSet #attr:strikethroughSet#
    -- | Whether the @strikethrough@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagStrikethroughSetPropertyInfo     ,
    #endif
        constructTextTagStrikethroughSet        ,
        getTextTagStrikethroughSet              ,
        setTextTagStrikethroughSet              ,
    #if defined(ENABLE_OVERLOADING)
        textTagStrikethroughSet                 ,
    #endif

    -- ** style #attr:style#
    -- | Font style as a @PangoStyle@, e.g. 'GI.Pango.Enums.StyleItalic'.

    #if defined(ENABLE_OVERLOADING)
        TextTagStylePropertyInfo                ,
    #endif
        constructTextTagStyle                   ,
        getTextTagStyle                         ,
        setTextTagStyle                         ,
    #if defined(ENABLE_OVERLOADING)
        textTagStyle                            ,
    #endif

    -- ** styleSet #attr:styleSet#
    -- | Whether the @style@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagStyleSetPropertyInfo             ,
    #endif
        constructTextTagStyleSet                ,
        getTextTagStyleSet                      ,
        setTextTagStyleSet                      ,
    #if defined(ENABLE_OVERLOADING)
        textTagStyleSet                         ,
    #endif

    -- ** tabs #attr:tabs#
    -- | Custom tabs for this text.

    #if defined(ENABLE_OVERLOADING)
        TextTagTabsPropertyInfo                 ,
    #endif
        clearTextTagTabs                        ,
        constructTextTagTabs                    ,
        getTextTagTabs                          ,
        setTextTagTabs                          ,
    #if defined(ENABLE_OVERLOADING)
        textTagTabs                             ,
    #endif

    -- ** tabsSet #attr:tabsSet#
    -- | Whether the @tabs@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagTabsSetPropertyInfo              ,
    #endif
        constructTextTagTabsSet                 ,
        getTextTagTabsSet                       ,
        setTextTagTabsSet                       ,
    #if defined(ENABLE_OVERLOADING)
        textTagTabsSet                          ,
    #endif

    -- ** textTransform #attr:textTransform#
    -- | How to transform the text for display.
    --
    -- /Since: 4.6/

    #if defined(ENABLE_OVERLOADING)
        TextTagTextTransformPropertyInfo        ,
    #endif
        constructTextTagTextTransform           ,
        getTextTagTextTransform                 ,
        setTextTagTextTransform                 ,
    #if defined(ENABLE_OVERLOADING)
        textTagTextTransform                    ,
    #endif

    -- ** textTransformSet #attr:textTransformSet#
    -- | Whether the @text-transform@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagTextTransformSetPropertyInfo     ,
    #endif
        constructTextTagTextTransformSet        ,
        getTextTagTextTransformSet              ,
        setTextTagTextTransformSet              ,
    #if defined(ENABLE_OVERLOADING)
        textTagTextTransformSet                 ,
    #endif

    -- ** underline #attr:underline#
    -- | Style of underline for this text.

    #if defined(ENABLE_OVERLOADING)
        TextTagUnderlinePropertyInfo            ,
    #endif
        constructTextTagUnderline               ,
        getTextTagUnderline                     ,
        setTextTagUnderline                     ,
    #if defined(ENABLE_OVERLOADING)
        textTagUnderline                        ,
    #endif

    -- ** underlineRgba #attr:underlineRgba#
    -- | This property modifies the color of underlines.
    --
    -- If not set, underlines will use the foreground color.
    --
    -- If [TextTag:underline]("GI.Gtk.Objects.TextTag#g:attr:underline") is set to 'GI.Pango.Enums.UnderlineError',
    -- an alternate color may be applied instead of the foreground. Setting
    -- this property will always override those defaults.

    #if defined(ENABLE_OVERLOADING)
        TextTagUnderlineRgbaPropertyInfo        ,
    #endif
        clearTextTagUnderlineRgba               ,
        constructTextTagUnderlineRgba           ,
        getTextTagUnderlineRgba                 ,
        setTextTagUnderlineRgba                 ,
    #if defined(ENABLE_OVERLOADING)
        textTagUnderlineRgba                    ,
    #endif

    -- ** underlineRgbaSet #attr:underlineRgbaSet#
    -- | If the @underline-rgba@ property has been set.

    #if defined(ENABLE_OVERLOADING)
        TextTagUnderlineRgbaSetPropertyInfo     ,
    #endif
        constructTextTagUnderlineRgbaSet        ,
        getTextTagUnderlineRgbaSet              ,
        setTextTagUnderlineRgbaSet              ,
    #if defined(ENABLE_OVERLOADING)
        textTagUnderlineRgbaSet                 ,
    #endif

    -- ** underlineSet #attr:underlineSet#
    -- | Whether the @underline@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagUnderlineSetPropertyInfo         ,
    #endif
        constructTextTagUnderlineSet            ,
        getTextTagUnderlineSet                  ,
        setTextTagUnderlineSet                  ,
    #if defined(ENABLE_OVERLOADING)
        textTagUnderlineSet                     ,
    #endif

    -- ** variant #attr:variant#
    -- | Font variant as a @PangoVariant@, e.g. 'GI.Pango.Enums.VariantSmallCaps'.

    #if defined(ENABLE_OVERLOADING)
        TextTagVariantPropertyInfo              ,
    #endif
        constructTextTagVariant                 ,
        getTextTagVariant                       ,
        setTextTagVariant                       ,
    #if defined(ENABLE_OVERLOADING)
        textTagVariant                          ,
    #endif

    -- ** variantSet #attr:variantSet#
    -- | Whether the @variant@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagVariantSetPropertyInfo           ,
    #endif
        constructTextTagVariantSet              ,
        getTextTagVariantSet                    ,
        setTextTagVariantSet                    ,
    #if defined(ENABLE_OVERLOADING)
        textTagVariantSet                       ,
    #endif

    -- ** weight #attr:weight#
    -- | Font weight as an integer.

    #if defined(ENABLE_OVERLOADING)
        TextTagWeightPropertyInfo               ,
    #endif
        constructTextTagWeight                  ,
        getTextTagWeight                        ,
        setTextTagWeight                        ,
    #if defined(ENABLE_OVERLOADING)
        textTagWeight                           ,
    #endif

    -- ** weightSet #attr:weightSet#
    -- | Whether the @weight@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagWeightSetPropertyInfo            ,
    #endif
        constructTextTagWeightSet               ,
        getTextTagWeightSet                     ,
        setTextTagWeightSet                     ,
    #if defined(ENABLE_OVERLOADING)
        textTagWeightSet                        ,
    #endif

    -- ** word #attr:word#
    -- | Whether this tag represents a single word.
    --
    -- This affects line breaks and cursor movement.
    --
    -- /Since: 4.6/

    #if defined(ENABLE_OVERLOADING)
        TextTagWordPropertyInfo                 ,
    #endif
        constructTextTagWord                    ,
        getTextTagWord                          ,
        setTextTagWord                          ,
    #if defined(ENABLE_OVERLOADING)
        textTagWord                             ,
    #endif

    -- ** wordSet #attr:wordSet#
    -- | Whether the @word@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagWordSetPropertyInfo              ,
    #endif
        constructTextTagWordSet                 ,
        getTextTagWordSet                       ,
        setTextTagWordSet                       ,
    #if defined(ENABLE_OVERLOADING)
        textTagWordSet                          ,
    #endif

    -- ** wrapMode #attr:wrapMode#
    -- | Whether to wrap lines never, at word boundaries, or
    -- at character boundaries.

    #if defined(ENABLE_OVERLOADING)
        TextTagWrapModePropertyInfo             ,
    #endif
        constructTextTagWrapMode                ,
        getTextTagWrapMode                      ,
        setTextTagWrapMode                      ,
    #if defined(ENABLE_OVERLOADING)
        textTagWrapMode                         ,
    #endif

    -- ** wrapModeSet #attr:wrapModeSet#
    -- | Whether the @wrap-mode@ property is set.

    #if defined(ENABLE_OVERLOADING)
        TextTagWrapModeSetPropertyInfo          ,
    #endif
        constructTextTagWrapModeSet             ,
        getTextTagWrapModeSet                   ,
        setTextTagWrapModeSet                   ,
    #if defined(ENABLE_OVERLOADING)
        textTagWrapModeSet                      ,
    #endif

        ) 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.BasicTypes as B.Types
    import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
    import qualified Data.GI.Base.GArray as B.GArray
    import qualified Data.GI.Base.GClosure as B.GClosure
    import qualified Data.GI.Base.GError as B.GError
    import qualified Data.GI.Base.GHashTable as B.GHT
    import qualified Data.GI.Base.GVariant as B.GVariant
    import qualified Data.GI.Base.GValue as B.GValue
    import qualified Data.GI.Base.GParamSpec as B.GParamSpec
    import qualified Data.GI.Base.CallStack as B.CallStack
    import qualified Data.GI.Base.Properties as B.Properties
    import qualified Data.GI.Base.Signals as B.Signals
    import qualified Control.Monad.IO.Class as MIO
    import qualified Data.Coerce as Coerce
    import qualified Data.Text as T
    import qualified Data.Kind as DK
    import qualified Data.ByteString.Char8 as B
    import qualified Data.Map as Map
    import qualified Foreign.Ptr as FP
    import qualified GHC.OverloadedLabels as OL
    import qualified GHC.Records as R
    import qualified Data.Word as DW
    import qualified Data.Int as DI
    import qualified System.Posix.Types as SPT
    import qualified Foreign.C.Types as FCT

    -- Workaround for https://gitlab.haskell.org/ghc/ghc/-/issues/23392
    #if MIN_VERSION_base(4,18,0)
    import qualified GI.GObject.Objects.Object as GObject.Object
    import qualified GI.Gdk.Structs.RGBA as Gdk.RGBA
    import {-# SOURCE #-} qualified GI.Gtk.Enums as Gtk.Enums
    import qualified GI.Pango.Enums as Pango.Enums
    import qualified GI.Pango.Flags as Pango.Flags
    import qualified GI.Pango.Structs.FontDescription as Pango.FontDescription
    import qualified GI.Pango.Structs.TabArray as Pango.TabArray

    #else
    import qualified GI.GObject.Objects.Object as GObject.Object
    import qualified GI.Gdk.Structs.RGBA as Gdk.RGBA
    import {-# SOURCE #-} qualified GI.Gtk.Enums as Gtk.Enums
    import qualified GI.Pango.Enums as Pango.Enums
    import qualified GI.Pango.Flags as Pango.Flags
    import qualified GI.Pango.Structs.FontDescription as Pango.FontDescription
    import qualified GI.Pango.Structs.TabArray as Pango.TabArray

    #endif

    -- | Memory-managed wrapper type.
    newtype TextTag = TextTag (SP.ManagedPtr TextTag)
        deriving (TextTag -> TextTag -> Bool
    (TextTag -> TextTag -> Bool)
    -> (TextTag -> TextTag -> Bool) -> Eq TextTag
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: TextTag -> TextTag -> Bool
    == :: TextTag -> TextTag -> Bool
    $c/= :: TextTag -> TextTag -> Bool
    /= :: TextTag -> TextTag -> Bool
    Eq)

    instance SP.ManagedPtrNewtype TextTag where
        toManagedPtr :: TextTag -> ManagedPtr TextTag
    toManagedPtr (TextTag ManagedPtr TextTag
    p) = ManagedPtr TextTag
    p

    foreign import ccall "gtk_text_tag_get_type"
        c_gtk_text_tag_get_type :: IO B.Types.GType

    instance B.Types.TypedObject TextTag where
        glibType :: IO GType
    glibType = IO GType
    c_gtk_text_tag_get_type

    instance B.Types.GObject TextTag

    -- | Type class for types which can be safely cast to t'TextTag', for instance with `toTextTag`.
    class (SP.GObject o, O.IsDescendantOf TextTag o) => IsTextTag o
    instance (SP.GObject o, O.IsDescendantOf TextTag o) => IsTextTag o

    instance O.HasParentTypes TextTag
    type instance O.ParentTypes TextTag = '[GObject.Object.Object]

    -- | Cast to t'TextTag', for types for which this is known to be safe. For general casts, use 'Data.GI.Base.ManagedPtr.castTo'.
    toTextTag :: (MIO.MonadIO m, IsTextTag o) => o -> m TextTag
    toTextTag :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m TextTag
    toTextTag = IO TextTag -> m TextTag
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO TextTag -> m TextTag) -> (o -> IO TextTag) -> o -> m TextTag
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . (ManagedPtr TextTag -> TextTag) -> o -> IO TextTag
    forall o o'.
    (HasCallStack, ManagedPtrNewtype o, TypedObject o,
     ManagedPtrNewtype o', TypedObject o') =>
    (ManagedPtr o' -> o') -> o -> IO o'
    B.ManagedPtr.unsafeCastTo ManagedPtr TextTag -> TextTag
    TextTag

    -- | Convert t'TextTag' to and from t'Data.GI.Base.GValue.GValue'. See 'Data.GI.Base.GValue.toGValue' and 'Data.GI.Base.GValue.fromGValue'.
    instance B.GValue.IsGValue (Maybe TextTag) where
        gvalueGType_ :: IO GType
    gvalueGType_ = IO GType
    c_gtk_text_tag_get_type
        gvalueSet_ :: Ptr GValue -> Maybe TextTag -> IO ()
    gvalueSet_ Ptr GValue
    gv Maybe TextTag
    P.Nothing = Ptr GValue -> Ptr TextTag -> IO ()
    forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
    B.GValue.set_object Ptr GValue
    gv (Ptr TextTag
    forall a. Ptr a
    FP.nullPtr :: FP.Ptr TextTag)
        gvalueSet_ Ptr GValue
    gv (P.Just TextTag
    obj) = TextTag -> (Ptr TextTag -> IO ()) -> IO ()
    forall a c.
    (HasCallStack, ManagedPtrNewtype a) =>
    a -> (Ptr a -> IO c) -> IO c
    B.ManagedPtr.withManagedPtr TextTag
    obj (Ptr GValue -> Ptr TextTag -> IO ()
    forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
    B.GValue.set_object Ptr GValue
    gv)
        gvalueGet_ :: Ptr GValue -> IO (Maybe TextTag)
    gvalueGet_ Ptr GValue
    gv = do
            ptr <- Ptr GValue -> IO (Ptr TextTag)
    forall a. GObject a => Ptr GValue -> IO (Ptr a)
    B.GValue.get_object Ptr GValue
    gv :: IO (FP.Ptr TextTag)
            if ptr /= FP.nullPtr
            then P.Just <$> B.ManagedPtr.newObject TextTag ptr
            else return P.Nothing

    #if defined(ENABLE_OVERLOADING)
    type family ResolveTextTagMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
        ResolveTextTagMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
        ResolveTextTagMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
        ResolveTextTagMethod "changed" o = TextTagChangedMethodInfo
        ResolveTextTagMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
        ResolveTextTagMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
        ResolveTextTagMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
        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 "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 "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
        ResolveTextTagMethod "setPriority" o = TextTagSetPriorityMethodInfo
        ResolveTextTagMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
        ResolveTextTagMethod l o = O.MethodResolutionFailed l o

    instance (info ~ ResolveTextTagMethod t TextTag, O.OverloadedMethod info TextTag p) => OL.IsLabel t (TextTag -> p) where
    #if MIN_VERSION_base(4,10,0)
        fromLabel = O.overloadedMethod @info
    #else
        fromLabel _ = O.overloadedMethod @info
    #endif

    #if MIN_VERSION_base(4,13,0)
    instance (info ~ ResolveTextTagMethod t TextTag, O.OverloadedMethod info TextTag p, R.HasField t TextTag p) => R.HasField t TextTag p where
        getField = O.overloadedMethod @info

    #endif

    instance (info ~ ResolveTextTagMethod t TextTag, O.OverloadedMethodInfo info TextTag) => OL.IsLabel t (O.MethodProxy info TextTag) where
    #if MIN_VERSION_base(4,10,0)
        fromLabel = O.MethodProxy
    #else
        fromLabel _ = O.MethodProxy
    #endif

    #endif

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

    -- | Get the value of the “@accumulative-margin@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #accumulativeMargin
    -- @
    getTextTagAccumulativeMargin :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagAccumulativeMargin :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagAccumulativeMargin o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "accumulative-margin"

    -- | Set the value of the “@accumulative-margin@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #accumulativeMargin 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagAccumulativeMargin :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagAccumulativeMargin :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagAccumulativeMargin o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "accumulative-margin" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@accumulative-margin@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagAccumulativeMargin :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagAccumulativeMargin :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagAccumulativeMargin Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "accumulative-margin" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagAccumulativeMarginPropertyInfo
    instance AttrInfo TextTagAccumulativeMarginPropertyInfo where
        type AttrAllowedOps TextTagAccumulativeMarginPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagAccumulativeMarginPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagAccumulativeMarginPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagAccumulativeMarginPropertyInfo = (~) Bool
        type AttrTransferType TextTagAccumulativeMarginPropertyInfo = Bool
        type AttrGetType TextTagAccumulativeMarginPropertyInfo = Bool
        type AttrLabel TextTagAccumulativeMarginPropertyInfo = "accumulative-margin"
        type AttrOrigin TextTagAccumulativeMarginPropertyInfo = TextTag
        attrGet = getTextTagAccumulativeMargin
        attrSet = setTextTagAccumulativeMargin
        attrPut = setTextTagAccumulativeMargin
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagAccumulativeMargin
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.accumulativeMargin"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:accumulativeMargin"
            })
    #endif

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

    -- | Get the value of the “@allow-breaks@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #allowBreaks
    -- @
    getTextTagAllowBreaks :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagAllowBreaks :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagAllowBreaks o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "allow-breaks"

    -- | Set the value of the “@allow-breaks@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #allowBreaks 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagAllowBreaks :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagAllowBreaks :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagAllowBreaks o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "allow-breaks" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@allow-breaks@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagAllowBreaks :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagAllowBreaks :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagAllowBreaks Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "allow-breaks" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagAllowBreaksPropertyInfo
    instance AttrInfo TextTagAllowBreaksPropertyInfo where
        type AttrAllowedOps TextTagAllowBreaksPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagAllowBreaksPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagAllowBreaksPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagAllowBreaksPropertyInfo = (~) Bool
        type AttrTransferType TextTagAllowBreaksPropertyInfo = Bool
        type AttrGetType TextTagAllowBreaksPropertyInfo = Bool
        type AttrLabel TextTagAllowBreaksPropertyInfo = "allow-breaks"
        type AttrOrigin TextTagAllowBreaksPropertyInfo = TextTag
        attrGet = getTextTagAllowBreaks
        attrSet = setTextTagAllowBreaks
        attrPut = setTextTagAllowBreaks
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagAllowBreaks
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.allowBreaks"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:allowBreaks"
            })
    #endif

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

    -- | Get the value of the “@allow-breaks-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #allowBreaksSet
    -- @
    getTextTagAllowBreaksSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagAllowBreaksSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagAllowBreaksSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "allow-breaks-set"

    -- | Set the value of the “@allow-breaks-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #allowBreaksSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagAllowBreaksSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagAllowBreaksSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagAllowBreaksSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "allow-breaks-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@allow-breaks-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagAllowBreaksSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagAllowBreaksSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagAllowBreaksSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "allow-breaks-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagAllowBreaksSetPropertyInfo
    instance AttrInfo TextTagAllowBreaksSetPropertyInfo where
        type AttrAllowedOps TextTagAllowBreaksSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagAllowBreaksSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagAllowBreaksSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagAllowBreaksSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagAllowBreaksSetPropertyInfo = Bool
        type AttrGetType TextTagAllowBreaksSetPropertyInfo = Bool
        type AttrLabel TextTagAllowBreaksSetPropertyInfo = "allow-breaks-set"
        type AttrOrigin TextTagAllowBreaksSetPropertyInfo = TextTag
        attrGet = getTextTagAllowBreaksSet
        attrSet = setTextTagAllowBreaksSet
        attrPut = setTextTagAllowBreaksSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagAllowBreaksSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.allowBreaksSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:allowBreaksSet"
            })
    #endif

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

    -- | Set the value of the “@background@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #background 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagBackground :: (MonadIO m, IsTextTag o) => o -> T.Text -> m ()
    setTextTagBackground :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Text -> m ()
    setTextTagBackground o
    obj Text
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Maybe Text -> IO ()
    forall a. GObject a => a -> String -> Maybe Text -> IO ()
    B.Properties.setObjectPropertyString o
    obj String
    "background" (Text -> Maybe Text
    forall a. a -> Maybe a
    Just Text
    val)

    -- | Construct a t'GValueConstruct' with valid value for the “@background@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagBackground :: (IsTextTag o, MIO.MonadIO m) => T.Text -> m (GValueConstruct o)
    constructTextTagBackground :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Text -> m (GValueConstruct o)
    constructTextTagBackground Text
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Maybe Text -> IO (GValueConstruct o)
    forall o. String -> Maybe Text -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyString String
    "background" (Text -> Maybe Text
    forall a. a -> Maybe a
    P.Just Text
    val)

    -- | Set the value of the “@background@” property to `Nothing`.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.clear' #background
    -- @
    clearTextTagBackground :: (MonadIO m, IsTextTag o) => o -> m ()
    clearTextTagBackground :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m ()
    clearTextTagBackground o
    obj = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ o -> String -> Maybe Text -> IO ()
    forall a. GObject a => a -> String -> Maybe Text -> IO ()
    B.Properties.setObjectPropertyString o
    obj String
    "background" (Maybe Text
    forall a. Maybe a
    Nothing :: Maybe T.Text)

    #if defined(ENABLE_OVERLOADING)
    data TextTagBackgroundPropertyInfo
    instance AttrInfo TextTagBackgroundPropertyInfo where
        type AttrAllowedOps TextTagBackgroundPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrClear]
        type AttrBaseTypeConstraint TextTagBackgroundPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagBackgroundPropertyInfo = (~) T.Text
        type AttrTransferTypeConstraint TextTagBackgroundPropertyInfo = (~) T.Text
        type AttrTransferType TextTagBackgroundPropertyInfo = T.Text
        type AttrGetType TextTagBackgroundPropertyInfo = ()
        type AttrLabel TextTagBackgroundPropertyInfo = "background"
        type AttrOrigin TextTagBackgroundPropertyInfo = TextTag
        attrGet = undefined
        attrSet = setTextTagBackground
        attrPut = undefined
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagBackground
        attrClear = clearTextTagBackground
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.background"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:background"
            })
    #endif

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

    -- | Get the value of the “@background-full-height@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #backgroundFullHeight
    -- @
    getTextTagBackgroundFullHeight :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagBackgroundFullHeight :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagBackgroundFullHeight o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "background-full-height"

    -- | Set the value of the “@background-full-height@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #backgroundFullHeight 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagBackgroundFullHeight :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagBackgroundFullHeight :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagBackgroundFullHeight o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "background-full-height" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@background-full-height@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagBackgroundFullHeight :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagBackgroundFullHeight :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagBackgroundFullHeight Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "background-full-height" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagBackgroundFullHeightPropertyInfo
    instance AttrInfo TextTagBackgroundFullHeightPropertyInfo where
        type AttrAllowedOps TextTagBackgroundFullHeightPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagBackgroundFullHeightPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagBackgroundFullHeightPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagBackgroundFullHeightPropertyInfo = (~) Bool
        type AttrTransferType TextTagBackgroundFullHeightPropertyInfo = Bool
        type AttrGetType TextTagBackgroundFullHeightPropertyInfo = Bool
        type AttrLabel TextTagBackgroundFullHeightPropertyInfo = "background-full-height"
        type AttrOrigin TextTagBackgroundFullHeightPropertyInfo = TextTag
        attrGet = getTextTagBackgroundFullHeight
        attrSet = setTextTagBackgroundFullHeight
        attrPut = setTextTagBackgroundFullHeight
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagBackgroundFullHeight
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.backgroundFullHeight"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:backgroundFullHeight"
            })
    #endif

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

    -- | Get the value of the “@background-full-height-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #backgroundFullHeightSet
    -- @
    getTextTagBackgroundFullHeightSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagBackgroundFullHeightSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagBackgroundFullHeightSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "background-full-height-set"

    -- | Set the value of the “@background-full-height-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #backgroundFullHeightSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagBackgroundFullHeightSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagBackgroundFullHeightSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagBackgroundFullHeightSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "background-full-height-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@background-full-height-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagBackgroundFullHeightSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagBackgroundFullHeightSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagBackgroundFullHeightSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "background-full-height-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagBackgroundFullHeightSetPropertyInfo
    instance AttrInfo TextTagBackgroundFullHeightSetPropertyInfo where
        type AttrAllowedOps TextTagBackgroundFullHeightSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagBackgroundFullHeightSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagBackgroundFullHeightSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagBackgroundFullHeightSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagBackgroundFullHeightSetPropertyInfo = Bool
        type AttrGetType TextTagBackgroundFullHeightSetPropertyInfo = Bool
        type AttrLabel TextTagBackgroundFullHeightSetPropertyInfo = "background-full-height-set"
        type AttrOrigin TextTagBackgroundFullHeightSetPropertyInfo = TextTag
        attrGet = getTextTagBackgroundFullHeightSet
        attrSet = setTextTagBackgroundFullHeightSet
        attrPut = setTextTagBackgroundFullHeightSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagBackgroundFullHeightSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.backgroundFullHeightSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:backgroundFullHeightSet"
            })
    #endif

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

    -- | Get the value of the “@background-rgba@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #backgroundRgba
    -- @
    getTextTagBackgroundRgba :: (MonadIO m, IsTextTag o) => o -> m (Maybe Gdk.RGBA.RGBA)
    getTextTagBackgroundRgba :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> m (Maybe RGBA)
    getTextTagBackgroundRgba o
    obj = IO (Maybe RGBA) -> m (Maybe RGBA)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (Maybe RGBA) -> m (Maybe RGBA))
    -> IO (Maybe RGBA) -> m (Maybe RGBA)
    forall a b. (a -> b) -> a -> b
    $ o -> String -> (ManagedPtr RGBA -> RGBA) -> IO (Maybe RGBA)
    forall a b.
    (GObject a, GBoxed b) =>
    a -> String -> (ManagedPtr b -> b) -> IO (Maybe b)
    B.Properties.getObjectPropertyBoxed o
    obj String
    "background-rgba" ManagedPtr RGBA -> RGBA
    Gdk.RGBA.RGBA

    -- | Set the value of the “@background-rgba@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #backgroundRgba 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagBackgroundRgba :: (MonadIO m, IsTextTag o) => o -> Gdk.RGBA.RGBA -> m ()
    setTextTagBackgroundRgba :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> RGBA -> m ()
    setTextTagBackgroundRgba o
    obj RGBA
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Maybe RGBA -> IO ()
    forall a b.
    (GObject a, GBoxed b) =>
    a -> String -> Maybe b -> IO ()
    B.Properties.setObjectPropertyBoxed o
    obj String
    "background-rgba" (RGBA -> Maybe RGBA
    forall a. a -> Maybe a
    Just RGBA
    val)

    -- | Construct a t'GValueConstruct' with valid value for the “@background-rgba@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagBackgroundRgba :: (IsTextTag o, MIO.MonadIO m) => Gdk.RGBA.RGBA -> m (GValueConstruct o)
    constructTextTagBackgroundRgba :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    RGBA -> m (GValueConstruct o)
    constructTextTagBackgroundRgba RGBA
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Maybe RGBA -> IO (GValueConstruct o)
    forall a o. GBoxed a => String -> Maybe a -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBoxed String
    "background-rgba" (RGBA -> Maybe RGBA
    forall a. a -> Maybe a
    P.Just RGBA
    val)

    -- | Set the value of the “@background-rgba@” property to `Nothing`.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.clear' #backgroundRgba
    -- @
    clearTextTagBackgroundRgba :: (MonadIO m, IsTextTag o) => o -> m ()
    clearTextTagBackgroundRgba :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m ()
    clearTextTagBackgroundRgba o
    obj = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ o -> String -> Maybe RGBA -> IO ()
    forall a b.
    (GObject a, GBoxed b) =>
    a -> String -> Maybe b -> IO ()
    B.Properties.setObjectPropertyBoxed o
    obj String
    "background-rgba" (Maybe RGBA
    forall a. Maybe a
    Nothing :: Maybe Gdk.RGBA.RGBA)

    #if defined(ENABLE_OVERLOADING)
    data TextTagBackgroundRgbaPropertyInfo
    instance AttrInfo TextTagBackgroundRgbaPropertyInfo where
        type AttrAllowedOps TextTagBackgroundRgbaPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
        type AttrBaseTypeConstraint TextTagBackgroundRgbaPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagBackgroundRgbaPropertyInfo = (~) Gdk.RGBA.RGBA
        type AttrTransferTypeConstraint TextTagBackgroundRgbaPropertyInfo = (~) Gdk.RGBA.RGBA
        type AttrTransferType TextTagBackgroundRgbaPropertyInfo = Gdk.RGBA.RGBA
        type AttrGetType TextTagBackgroundRgbaPropertyInfo = (Maybe Gdk.RGBA.RGBA)
        type AttrLabel TextTagBackgroundRgbaPropertyInfo = "background-rgba"
        type AttrOrigin TextTagBackgroundRgbaPropertyInfo = TextTag
        attrGet = getTextTagBackgroundRgba
        attrSet = setTextTagBackgroundRgba
        attrPut = undefined
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagBackgroundRgba
        attrClear = clearTextTagBackgroundRgba
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.backgroundRgba"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:backgroundRgba"
            })
    #endif

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

    -- | Get the value of the “@background-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #backgroundSet
    -- @
    getTextTagBackgroundSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagBackgroundSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagBackgroundSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "background-set"

    -- | Set the value of the “@background-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #backgroundSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagBackgroundSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagBackgroundSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagBackgroundSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "background-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@background-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagBackgroundSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagBackgroundSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagBackgroundSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "background-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagBackgroundSetPropertyInfo
    instance AttrInfo TextTagBackgroundSetPropertyInfo where
        type AttrAllowedOps TextTagBackgroundSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagBackgroundSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagBackgroundSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagBackgroundSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagBackgroundSetPropertyInfo = Bool
        type AttrGetType TextTagBackgroundSetPropertyInfo = Bool
        type AttrLabel TextTagBackgroundSetPropertyInfo = "background-set"
        type AttrOrigin TextTagBackgroundSetPropertyInfo = TextTag
        attrGet = getTextTagBackgroundSet
        attrSet = setTextTagBackgroundSet
        attrPut = setTextTagBackgroundSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagBackgroundSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.backgroundSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:backgroundSet"
            })
    #endif

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

    -- | Get the value of the “@direction@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #direction
    -- @
    getTextTagDirection :: (MonadIO m, IsTextTag o) => o -> m Gtk.Enums.TextDirection
    getTextTagDirection :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> m TextDirection
    getTextTagDirection o
    obj = IO TextDirection -> m TextDirection
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO TextDirection -> m TextDirection)
    -> IO TextDirection -> m TextDirection
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO TextDirection
    forall a b. (GObject a, Enum b, BoxedEnum b) => a -> String -> IO b
    B.Properties.getObjectPropertyEnum o
    obj String
    "direction"

    -- | Set the value of the “@direction@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #direction 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagDirection :: (MonadIO m, IsTextTag o) => o -> Gtk.Enums.TextDirection -> m ()
    setTextTagDirection :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> TextDirection -> m ()
    setTextTagDirection o
    obj TextDirection
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> TextDirection -> IO ()
    forall a b.
    (GObject a, Enum b, BoxedEnum b) =>
    a -> String -> b -> IO ()
    B.Properties.setObjectPropertyEnum o
    obj String
    "direction" TextDirection
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@direction@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagDirection :: (IsTextTag o, MIO.MonadIO m) => Gtk.Enums.TextDirection -> m (GValueConstruct o)
    constructTextTagDirection :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    TextDirection -> m (GValueConstruct o)
    constructTextTagDirection TextDirection
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> TextDirection -> IO (GValueConstruct o)
    forall a o.
    (Enum a, BoxedEnum a) =>
    String -> a -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyEnum String
    "direction" TextDirection
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagDirectionPropertyInfo
    instance AttrInfo TextTagDirectionPropertyInfo where
        type AttrAllowedOps TextTagDirectionPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagDirectionPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagDirectionPropertyInfo = (~) Gtk.Enums.TextDirection
        type AttrTransferTypeConstraint TextTagDirectionPropertyInfo = (~) Gtk.Enums.TextDirection
        type AttrTransferType TextTagDirectionPropertyInfo = Gtk.Enums.TextDirection
        type AttrGetType TextTagDirectionPropertyInfo = Gtk.Enums.TextDirection
        type AttrLabel TextTagDirectionPropertyInfo = "direction"
        type AttrOrigin TextTagDirectionPropertyInfo = TextTag
        attrGet = getTextTagDirection
        attrSet = setTextTagDirection
        attrPut = setTextTagDirection
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagDirection
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.direction"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:direction"
            })
    #endif

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

    -- | Get the value of the “@editable@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #editable
    -- @
    getTextTagEditable :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagEditable :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagEditable o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "editable"

    -- | Set the value of the “@editable@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #editable 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagEditable :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagEditable :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagEditable o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "editable" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@editable@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagEditable :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagEditable :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagEditable Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "editable" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagEditablePropertyInfo
    instance AttrInfo TextTagEditablePropertyInfo where
        type AttrAllowedOps TextTagEditablePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagEditablePropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagEditablePropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagEditablePropertyInfo = (~) Bool
        type AttrTransferType TextTagEditablePropertyInfo = Bool
        type AttrGetType TextTagEditablePropertyInfo = Bool
        type AttrLabel TextTagEditablePropertyInfo = "editable"
        type AttrOrigin TextTagEditablePropertyInfo = TextTag
        attrGet = getTextTagEditable
        attrSet = setTextTagEditable
        attrPut = setTextTagEditable
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagEditable
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.editable"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:editable"
            })
    #endif

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

    -- | Get the value of the “@editable-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #editableSet
    -- @
    getTextTagEditableSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagEditableSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagEditableSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "editable-set"

    -- | Set the value of the “@editable-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #editableSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagEditableSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagEditableSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagEditableSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "editable-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@editable-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagEditableSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagEditableSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagEditableSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "editable-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagEditableSetPropertyInfo
    instance AttrInfo TextTagEditableSetPropertyInfo where
        type AttrAllowedOps TextTagEditableSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagEditableSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagEditableSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagEditableSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagEditableSetPropertyInfo = Bool
        type AttrGetType TextTagEditableSetPropertyInfo = Bool
        type AttrLabel TextTagEditableSetPropertyInfo = "editable-set"
        type AttrOrigin TextTagEditableSetPropertyInfo = TextTag
        attrGet = getTextTagEditableSet
        attrSet = setTextTagEditableSet
        attrPut = setTextTagEditableSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagEditableSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.editableSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:editableSet"
            })
    #endif

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

    -- | Get the value of the “@fallback@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #fallback
    -- @
    getTextTagFallback :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagFallback :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagFallback o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "fallback"

    -- | Set the value of the “@fallback@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #fallback 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagFallback :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagFallback :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagFallback o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "fallback" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@fallback@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagFallback :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagFallback :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagFallback Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "fallback" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagFallbackPropertyInfo
    instance AttrInfo TextTagFallbackPropertyInfo where
        type AttrAllowedOps TextTagFallbackPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagFallbackPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagFallbackPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagFallbackPropertyInfo = (~) Bool
        type AttrTransferType TextTagFallbackPropertyInfo = Bool
        type AttrGetType TextTagFallbackPropertyInfo = Bool
        type AttrLabel TextTagFallbackPropertyInfo = "fallback"
        type AttrOrigin TextTagFallbackPropertyInfo = TextTag
        attrGet = getTextTagFallback
        attrSet = setTextTagFallback
        attrPut = setTextTagFallback
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagFallback
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.fallback"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:fallback"
            })
    #endif

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

    -- | Get the value of the “@fallback-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #fallbackSet
    -- @
    getTextTagFallbackSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagFallbackSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagFallbackSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "fallback-set"

    -- | Set the value of the “@fallback-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #fallbackSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagFallbackSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagFallbackSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagFallbackSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "fallback-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@fallback-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagFallbackSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagFallbackSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagFallbackSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "fallback-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagFallbackSetPropertyInfo
    instance AttrInfo TextTagFallbackSetPropertyInfo where
        type AttrAllowedOps TextTagFallbackSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagFallbackSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagFallbackSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagFallbackSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagFallbackSetPropertyInfo = Bool
        type AttrGetType TextTagFallbackSetPropertyInfo = Bool
        type AttrLabel TextTagFallbackSetPropertyInfo = "fallback-set"
        type AttrOrigin TextTagFallbackSetPropertyInfo = TextTag
        attrGet = getTextTagFallbackSet
        attrSet = setTextTagFallbackSet
        attrPut = setTextTagFallbackSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagFallbackSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.fallbackSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:fallbackSet"
            })
    #endif

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

    -- | Get the value of the “@family@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #family
    -- @
    getTextTagFamily :: (MonadIO m, IsTextTag o) => o -> m (Maybe T.Text)
    getTextTagFamily :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> m (Maybe Text)
    getTextTagFamily o
    obj = IO (Maybe Text) -> m (Maybe Text)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (Maybe Text) -> m (Maybe Text))
    -> IO (Maybe Text) -> m (Maybe Text)
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO (Maybe Text)
    forall a. GObject a => a -> String -> IO (Maybe Text)
    B.Properties.getObjectPropertyString o
    obj String
    "family"

    -- | Set the value of the “@family@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #family 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagFamily :: (MonadIO m, IsTextTag o) => o -> T.Text -> m ()
    setTextTagFamily :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Text -> m ()
    setTextTagFamily o
    obj Text
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Maybe Text -> IO ()
    forall a. GObject a => a -> String -> Maybe Text -> IO ()
    B.Properties.setObjectPropertyString o
    obj String
    "family" (Text -> Maybe Text
    forall a. a -> Maybe a
    Just Text
    val)

    -- | Construct a t'GValueConstruct' with valid value for the “@family@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagFamily :: (IsTextTag o, MIO.MonadIO m) => T.Text -> m (GValueConstruct o)
    constructTextTagFamily :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Text -> m (GValueConstruct o)
    constructTextTagFamily Text
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Maybe Text -> IO (GValueConstruct o)
    forall o. String -> Maybe Text -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyString String
    "family" (Text -> Maybe Text
    forall a. a -> Maybe a
    P.Just Text
    val)

    -- | Set the value of the “@family@” property to `Nothing`.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.clear' #family
    -- @
    clearTextTagFamily :: (MonadIO m, IsTextTag o) => o -> m ()
    clearTextTagFamily :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m ()
    clearTextTagFamily o
    obj = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ o -> String -> Maybe Text -> IO ()
    forall a. GObject a => a -> String -> Maybe Text -> IO ()
    B.Properties.setObjectPropertyString o
    obj String
    "family" (Maybe Text
    forall a. Maybe a
    Nothing :: Maybe T.Text)

    #if defined(ENABLE_OVERLOADING)
    data TextTagFamilyPropertyInfo
    instance AttrInfo TextTagFamilyPropertyInfo where
        type AttrAllowedOps TextTagFamilyPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
        type AttrBaseTypeConstraint TextTagFamilyPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagFamilyPropertyInfo = (~) T.Text
        type AttrTransferTypeConstraint TextTagFamilyPropertyInfo = (~) T.Text
        type AttrTransferType TextTagFamilyPropertyInfo = T.Text
        type AttrGetType TextTagFamilyPropertyInfo = (Maybe T.Text)
        type AttrLabel TextTagFamilyPropertyInfo = "family"
        type AttrOrigin TextTagFamilyPropertyInfo = TextTag
        attrGet = getTextTagFamily
        attrSet = setTextTagFamily
        attrPut = undefined
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagFamily
        attrClear = clearTextTagFamily
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.family"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:family"
            })
    #endif

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

    -- | Get the value of the “@family-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #familySet
    -- @
    getTextTagFamilySet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagFamilySet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagFamilySet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "family-set"

    -- | Set the value of the “@family-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #familySet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagFamilySet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagFamilySet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagFamilySet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "family-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@family-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagFamilySet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagFamilySet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagFamilySet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "family-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagFamilySetPropertyInfo
    instance AttrInfo TextTagFamilySetPropertyInfo where
        type AttrAllowedOps TextTagFamilySetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagFamilySetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagFamilySetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagFamilySetPropertyInfo = (~) Bool
        type AttrTransferType TextTagFamilySetPropertyInfo = Bool
        type AttrGetType TextTagFamilySetPropertyInfo = Bool
        type AttrLabel TextTagFamilySetPropertyInfo = "family-set"
        type AttrOrigin TextTagFamilySetPropertyInfo = TextTag
        attrGet = getTextTagFamilySet
        attrSet = setTextTagFamilySet
        attrPut = setTextTagFamilySet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagFamilySet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.familySet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:familySet"
            })
    #endif

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

    -- | Get the value of the “@font@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #font
    -- @
    getTextTagFont :: (MonadIO m, IsTextTag o) => o -> m (Maybe T.Text)
    getTextTagFont :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> m (Maybe Text)
    getTextTagFont o
    obj = IO (Maybe Text) -> m (Maybe Text)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (Maybe Text) -> m (Maybe Text))
    -> IO (Maybe Text) -> m (Maybe Text)
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO (Maybe Text)
    forall a. GObject a => a -> String -> IO (Maybe Text)
    B.Properties.getObjectPropertyString o
    obj String
    "font"

    -- | Set the value of the “@font@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #font 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagFont :: (MonadIO m, IsTextTag o) => o -> T.Text -> m ()
    setTextTagFont :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Text -> m ()
    setTextTagFont o
    obj Text
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Maybe Text -> IO ()
    forall a. GObject a => a -> String -> Maybe Text -> IO ()
    B.Properties.setObjectPropertyString o
    obj String
    "font" (Text -> Maybe Text
    forall a. a -> Maybe a
    Just Text
    val)

    -- | Construct a t'GValueConstruct' with valid value for the “@font@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagFont :: (IsTextTag o, MIO.MonadIO m) => T.Text -> m (GValueConstruct o)
    constructTextTagFont :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Text -> m (GValueConstruct o)
    constructTextTagFont Text
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Maybe Text -> IO (GValueConstruct o)
    forall o. String -> Maybe Text -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyString String
    "font" (Text -> Maybe Text
    forall a. a -> Maybe a
    P.Just Text
    val)

    -- | Set the value of the “@font@” property to `Nothing`.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.clear' #font
    -- @
    clearTextTagFont :: (MonadIO m, IsTextTag o) => o -> m ()
    clearTextTagFont :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m ()
    clearTextTagFont o
    obj = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ o -> String -> Maybe Text -> IO ()
    forall a. GObject a => a -> String -> Maybe Text -> IO ()
    B.Properties.setObjectPropertyString o
    obj String
    "font" (Maybe Text
    forall a. Maybe a
    Nothing :: Maybe T.Text)

    #if defined(ENABLE_OVERLOADING)
    data TextTagFontPropertyInfo
    instance AttrInfo TextTagFontPropertyInfo where
        type AttrAllowedOps TextTagFontPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
        type AttrBaseTypeConstraint TextTagFontPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagFontPropertyInfo = (~) T.Text
        type AttrTransferTypeConstraint TextTagFontPropertyInfo = (~) T.Text
        type AttrTransferType TextTagFontPropertyInfo = T.Text
        type AttrGetType TextTagFontPropertyInfo = (Maybe T.Text)
        type AttrLabel TextTagFontPropertyInfo = "font"
        type AttrOrigin TextTagFontPropertyInfo = TextTag
        attrGet = getTextTagFont
        attrSet = setTextTagFont
        attrPut = undefined
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagFont
        attrClear = clearTextTagFont
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.font"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:font"
            })
    #endif

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

    -- | Get the value of the “@font-desc@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #fontDesc
    -- @
    getTextTagFontDesc :: (MonadIO m, IsTextTag o) => o -> m (Maybe Pango.FontDescription.FontDescription)
    getTextTagFontDesc :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> m (Maybe FontDescription)
    getTextTagFontDesc o
    obj = IO (Maybe FontDescription) -> m (Maybe FontDescription)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (Maybe FontDescription) -> m (Maybe FontDescription))
    -> IO (Maybe FontDescription) -> m (Maybe FontDescription)
    forall a b. (a -> b) -> a -> b
    $ o
    -> String
    -> (ManagedPtr FontDescription -> FontDescription)
    -> IO (Maybe FontDescription)
    forall a b.
    (GObject a, GBoxed b) =>
    a -> String -> (ManagedPtr b -> b) -> IO (Maybe b)
    B.Properties.getObjectPropertyBoxed o
    obj String
    "font-desc" ManagedPtr FontDescription -> FontDescription
    Pango.FontDescription.FontDescription

    -- | Set the value of the “@font-desc@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #fontDesc 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagFontDesc :: (MonadIO m, IsTextTag o) => o -> Pango.FontDescription.FontDescription -> m ()
    setTextTagFontDesc :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> FontDescription -> m ()
    setTextTagFontDesc o
    obj FontDescription
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Maybe FontDescription -> IO ()
    forall a b.
    (GObject a, GBoxed b) =>
    a -> String -> Maybe b -> IO ()
    B.Properties.setObjectPropertyBoxed o
    obj String
    "font-desc" (FontDescription -> Maybe FontDescription
    forall a. a -> Maybe a
    Just FontDescription
    val)

    -- | Construct a t'GValueConstruct' with valid value for the “@font-desc@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagFontDesc :: (IsTextTag o, MIO.MonadIO m) => Pango.FontDescription.FontDescription -> m (GValueConstruct o)
    constructTextTagFontDesc :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    FontDescription -> m (GValueConstruct o)
    constructTextTagFontDesc FontDescription
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Maybe FontDescription -> IO (GValueConstruct o)
    forall a o. GBoxed a => String -> Maybe a -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBoxed String
    "font-desc" (FontDescription -> Maybe FontDescription
    forall a. a -> Maybe a
    P.Just FontDescription
    val)

    -- | Set the value of the “@font-desc@” property to `Nothing`.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.clear' #fontDesc
    -- @
    clearTextTagFontDesc :: (MonadIO m, IsTextTag o) => o -> m ()
    clearTextTagFontDesc :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m ()
    clearTextTagFontDesc o
    obj = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ o -> String -> Maybe FontDescription -> IO ()
    forall a b.
    (GObject a, GBoxed b) =>
    a -> String -> Maybe b -> IO ()
    B.Properties.setObjectPropertyBoxed o
    obj String
    "font-desc" (Maybe FontDescription
    forall a. Maybe a
    Nothing :: Maybe Pango.FontDescription.FontDescription)

    #if defined(ENABLE_OVERLOADING)
    data TextTagFontDescPropertyInfo
    instance AttrInfo TextTagFontDescPropertyInfo where
        type AttrAllowedOps TextTagFontDescPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
        type AttrBaseTypeConstraint TextTagFontDescPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagFontDescPropertyInfo = (~) Pango.FontDescription.FontDescription
        type AttrTransferTypeConstraint TextTagFontDescPropertyInfo = (~) Pango.FontDescription.FontDescription
        type AttrTransferType TextTagFontDescPropertyInfo = Pango.FontDescription.FontDescription
        type AttrGetType TextTagFontDescPropertyInfo = (Maybe Pango.FontDescription.FontDescription)
        type AttrLabel TextTagFontDescPropertyInfo = "font-desc"
        type AttrOrigin TextTagFontDescPropertyInfo = TextTag
        attrGet = getTextTagFontDesc
        attrSet = setTextTagFontDesc
        attrPut = undefined
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagFontDesc
        attrClear = clearTextTagFontDesc
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.fontDesc"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:fontDesc"
            })
    #endif

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

    -- | Get the value of the “@font-features@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #fontFeatures
    -- @
    getTextTagFontFeatures :: (MonadIO m, IsTextTag o) => o -> m (Maybe T.Text)
    getTextTagFontFeatures :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> m (Maybe Text)
    getTextTagFontFeatures o
    obj = IO (Maybe Text) -> m (Maybe Text)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (Maybe Text) -> m (Maybe Text))
    -> IO (Maybe Text) -> m (Maybe Text)
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO (Maybe Text)
    forall a. GObject a => a -> String -> IO (Maybe Text)
    B.Properties.getObjectPropertyString o
    obj String
    "font-features"

    -- | Set the value of the “@font-features@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #fontFeatures 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagFontFeatures :: (MonadIO m, IsTextTag o) => o -> T.Text -> m ()
    setTextTagFontFeatures :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Text -> m ()
    setTextTagFontFeatures o
    obj Text
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Maybe Text -> IO ()
    forall a. GObject a => a -> String -> Maybe Text -> IO ()
    B.Properties.setObjectPropertyString o
    obj String
    "font-features" (Text -> Maybe Text
    forall a. a -> Maybe a
    Just Text
    val)

    -- | Construct a t'GValueConstruct' with valid value for the “@font-features@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagFontFeatures :: (IsTextTag o, MIO.MonadIO m) => T.Text -> m (GValueConstruct o)
    constructTextTagFontFeatures :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Text -> m (GValueConstruct o)
    constructTextTagFontFeatures Text
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Maybe Text -> IO (GValueConstruct o)
    forall o. String -> Maybe Text -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyString String
    "font-features" (Text -> Maybe Text
    forall a. a -> Maybe a
    P.Just Text
    val)

    -- | Set the value of the “@font-features@” property to `Nothing`.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.clear' #fontFeatures
    -- @
    clearTextTagFontFeatures :: (MonadIO m, IsTextTag o) => o -> m ()
    clearTextTagFontFeatures :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m ()
    clearTextTagFontFeatures o
    obj = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ o -> String -> Maybe Text -> IO ()
    forall a. GObject a => a -> String -> Maybe Text -> IO ()
    B.Properties.setObjectPropertyString o
    obj String
    "font-features" (Maybe Text
    forall a. Maybe a
    Nothing :: Maybe T.Text)

    #if defined(ENABLE_OVERLOADING)
    data TextTagFontFeaturesPropertyInfo
    instance AttrInfo TextTagFontFeaturesPropertyInfo where
        type AttrAllowedOps TextTagFontFeaturesPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
        type AttrBaseTypeConstraint TextTagFontFeaturesPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagFontFeaturesPropertyInfo = (~) T.Text
        type AttrTransferTypeConstraint TextTagFontFeaturesPropertyInfo = (~) T.Text
        type AttrTransferType TextTagFontFeaturesPropertyInfo = T.Text
        type AttrGetType TextTagFontFeaturesPropertyInfo = (Maybe T.Text)
        type AttrLabel TextTagFontFeaturesPropertyInfo = "font-features"
        type AttrOrigin TextTagFontFeaturesPropertyInfo = TextTag
        attrGet = getTextTagFontFeatures
        attrSet = setTextTagFontFeatures
        attrPut = undefined
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagFontFeatures
        attrClear = clearTextTagFontFeatures
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.fontFeatures"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:fontFeatures"
            })
    #endif

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

    -- | Get the value of the “@font-features-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #fontFeaturesSet
    -- @
    getTextTagFontFeaturesSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagFontFeaturesSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagFontFeaturesSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "font-features-set"

    -- | Set the value of the “@font-features-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #fontFeaturesSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagFontFeaturesSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagFontFeaturesSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagFontFeaturesSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "font-features-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@font-features-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagFontFeaturesSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagFontFeaturesSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagFontFeaturesSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "font-features-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagFontFeaturesSetPropertyInfo
    instance AttrInfo TextTagFontFeaturesSetPropertyInfo where
        type AttrAllowedOps TextTagFontFeaturesSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagFontFeaturesSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagFontFeaturesSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagFontFeaturesSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagFontFeaturesSetPropertyInfo = Bool
        type AttrGetType TextTagFontFeaturesSetPropertyInfo = Bool
        type AttrLabel TextTagFontFeaturesSetPropertyInfo = "font-features-set"
        type AttrOrigin TextTagFontFeaturesSetPropertyInfo = TextTag
        attrGet = getTextTagFontFeaturesSet
        attrSet = setTextTagFontFeaturesSet
        attrPut = setTextTagFontFeaturesSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagFontFeaturesSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.fontFeaturesSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:fontFeaturesSet"
            })
    #endif

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

    -- | Set the value of the “@foreground@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #foreground 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagForeground :: (MonadIO m, IsTextTag o) => o -> T.Text -> m ()
    setTextTagForeground :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Text -> m ()
    setTextTagForeground o
    obj Text
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Maybe Text -> IO ()
    forall a. GObject a => a -> String -> Maybe Text -> IO ()
    B.Properties.setObjectPropertyString o
    obj String
    "foreground" (Text -> Maybe Text
    forall a. a -> Maybe a
    Just Text
    val)

    -- | Construct a t'GValueConstruct' with valid value for the “@foreground@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagForeground :: (IsTextTag o, MIO.MonadIO m) => T.Text -> m (GValueConstruct o)
    constructTextTagForeground :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Text -> m (GValueConstruct o)
    constructTextTagForeground Text
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Maybe Text -> IO (GValueConstruct o)
    forall o. String -> Maybe Text -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyString String
    "foreground" (Text -> Maybe Text
    forall a. a -> Maybe a
    P.Just Text
    val)

    -- | Set the value of the “@foreground@” property to `Nothing`.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.clear' #foreground
    -- @
    clearTextTagForeground :: (MonadIO m, IsTextTag o) => o -> m ()
    clearTextTagForeground :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m ()
    clearTextTagForeground o
    obj = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ o -> String -> Maybe Text -> IO ()
    forall a. GObject a => a -> String -> Maybe Text -> IO ()
    B.Properties.setObjectPropertyString o
    obj String
    "foreground" (Maybe Text
    forall a. Maybe a
    Nothing :: Maybe T.Text)

    #if defined(ENABLE_OVERLOADING)
    data TextTagForegroundPropertyInfo
    instance AttrInfo TextTagForegroundPropertyInfo where
        type AttrAllowedOps TextTagForegroundPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrClear]
        type AttrBaseTypeConstraint TextTagForegroundPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagForegroundPropertyInfo = (~) T.Text
        type AttrTransferTypeConstraint TextTagForegroundPropertyInfo = (~) T.Text
        type AttrTransferType TextTagForegroundPropertyInfo = T.Text
        type AttrGetType TextTagForegroundPropertyInfo = ()
        type AttrLabel TextTagForegroundPropertyInfo = "foreground"
        type AttrOrigin TextTagForegroundPropertyInfo = TextTag
        attrGet = undefined
        attrSet = setTextTagForeground
        attrPut = undefined
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagForeground
        attrClear = clearTextTagForeground
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.foreground"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:foreground"
            })
    #endif

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

    -- | Get the value of the “@foreground-rgba@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #foregroundRgba
    -- @
    getTextTagForegroundRgba :: (MonadIO m, IsTextTag o) => o -> m (Maybe Gdk.RGBA.RGBA)
    getTextTagForegroundRgba :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> m (Maybe RGBA)
    getTextTagForegroundRgba o
    obj = IO (Maybe RGBA) -> m (Maybe RGBA)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (Maybe RGBA) -> m (Maybe RGBA))
    -> IO (Maybe RGBA) -> m (Maybe RGBA)
    forall a b. (a -> b) -> a -> b
    $ o -> String -> (ManagedPtr RGBA -> RGBA) -> IO (Maybe RGBA)
    forall a b.
    (GObject a, GBoxed b) =>
    a -> String -> (ManagedPtr b -> b) -> IO (Maybe b)
    B.Properties.getObjectPropertyBoxed o
    obj String
    "foreground-rgba" ManagedPtr RGBA -> RGBA
    Gdk.RGBA.RGBA

    -- | Set the value of the “@foreground-rgba@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #foregroundRgba 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagForegroundRgba :: (MonadIO m, IsTextTag o) => o -> Gdk.RGBA.RGBA -> m ()
    setTextTagForegroundRgba :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> RGBA -> m ()
    setTextTagForegroundRgba o
    obj RGBA
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Maybe RGBA -> IO ()
    forall a b.
    (GObject a, GBoxed b) =>
    a -> String -> Maybe b -> IO ()
    B.Properties.setObjectPropertyBoxed o
    obj String
    "foreground-rgba" (RGBA -> Maybe RGBA
    forall a. a -> Maybe a
    Just RGBA
    val)

    -- | Construct a t'GValueConstruct' with valid value for the “@foreground-rgba@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagForegroundRgba :: (IsTextTag o, MIO.MonadIO m) => Gdk.RGBA.RGBA -> m (GValueConstruct o)
    constructTextTagForegroundRgba :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    RGBA -> m (GValueConstruct o)
    constructTextTagForegroundRgba RGBA
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Maybe RGBA -> IO (GValueConstruct o)
    forall a o. GBoxed a => String -> Maybe a -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBoxed String
    "foreground-rgba" (RGBA -> Maybe RGBA
    forall a. a -> Maybe a
    P.Just RGBA
    val)

    -- | Set the value of the “@foreground-rgba@” property to `Nothing`.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.clear' #foregroundRgba
    -- @
    clearTextTagForegroundRgba :: (MonadIO m, IsTextTag o) => o -> m ()
    clearTextTagForegroundRgba :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m ()
    clearTextTagForegroundRgba o
    obj = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ o -> String -> Maybe RGBA -> IO ()
    forall a b.
    (GObject a, GBoxed b) =>
    a -> String -> Maybe b -> IO ()
    B.Properties.setObjectPropertyBoxed o
    obj String
    "foreground-rgba" (Maybe RGBA
    forall a. Maybe a
    Nothing :: Maybe Gdk.RGBA.RGBA)

    #if defined(ENABLE_OVERLOADING)
    data TextTagForegroundRgbaPropertyInfo
    instance AttrInfo TextTagForegroundRgbaPropertyInfo where
        type AttrAllowedOps TextTagForegroundRgbaPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
        type AttrBaseTypeConstraint TextTagForegroundRgbaPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagForegroundRgbaPropertyInfo = (~) Gdk.RGBA.RGBA
        type AttrTransferTypeConstraint TextTagForegroundRgbaPropertyInfo = (~) Gdk.RGBA.RGBA
        type AttrTransferType TextTagForegroundRgbaPropertyInfo = Gdk.RGBA.RGBA
        type AttrGetType TextTagForegroundRgbaPropertyInfo = (Maybe Gdk.RGBA.RGBA)
        type AttrLabel TextTagForegroundRgbaPropertyInfo = "foreground-rgba"
        type AttrOrigin TextTagForegroundRgbaPropertyInfo = TextTag
        attrGet = getTextTagForegroundRgba
        attrSet = setTextTagForegroundRgba
        attrPut = undefined
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagForegroundRgba
        attrClear = clearTextTagForegroundRgba
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.foregroundRgba"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:foregroundRgba"
            })
    #endif

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

    -- | Get the value of the “@foreground-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #foregroundSet
    -- @
    getTextTagForegroundSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagForegroundSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagForegroundSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "foreground-set"

    -- | Set the value of the “@foreground-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #foregroundSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagForegroundSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagForegroundSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagForegroundSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "foreground-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@foreground-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagForegroundSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagForegroundSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagForegroundSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "foreground-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagForegroundSetPropertyInfo
    instance AttrInfo TextTagForegroundSetPropertyInfo where
        type AttrAllowedOps TextTagForegroundSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagForegroundSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagForegroundSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagForegroundSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagForegroundSetPropertyInfo = Bool
        type AttrGetType TextTagForegroundSetPropertyInfo = Bool
        type AttrLabel TextTagForegroundSetPropertyInfo = "foreground-set"
        type AttrOrigin TextTagForegroundSetPropertyInfo = TextTag
        attrGet = getTextTagForegroundSet
        attrSet = setTextTagForegroundSet
        attrPut = setTextTagForegroundSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagForegroundSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.foregroundSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:foregroundSet"
            })
    #endif

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

    -- | Get the value of the “@indent@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #indent
    -- @
    getTextTagIndent :: (MonadIO m, IsTextTag o) => o -> m Int32
    getTextTagIndent :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Int32
    getTextTagIndent o
    obj = IO Int32 -> m Int32
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Int32
    forall a. GObject a => a -> String -> IO Int32
    B.Properties.getObjectPropertyInt32 o
    obj String
    "indent"

    -- | Set the value of the “@indent@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #indent 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagIndent :: (MonadIO m, IsTextTag o) => o -> Int32 -> m ()
    setTextTagIndent :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Int32 -> m ()
    setTextTagIndent o
    obj Int32
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Int32 -> IO ()
    forall a. GObject a => a -> String -> Int32 -> IO ()
    B.Properties.setObjectPropertyInt32 o
    obj String
    "indent" Int32
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@indent@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagIndent :: (IsTextTag o, MIO.MonadIO m) => Int32 -> m (GValueConstruct o)
    constructTextTagIndent :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Int32 -> m (GValueConstruct o)
    constructTextTagIndent Int32
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Int32 -> IO (GValueConstruct o)
    forall o. String -> Int32 -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyInt32 String
    "indent" Int32
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagIndentPropertyInfo
    instance AttrInfo TextTagIndentPropertyInfo where
        type AttrAllowedOps TextTagIndentPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagIndentPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagIndentPropertyInfo = (~) Int32
        type AttrTransferTypeConstraint TextTagIndentPropertyInfo = (~) Int32
        type AttrTransferType TextTagIndentPropertyInfo = Int32
        type AttrGetType TextTagIndentPropertyInfo = Int32
        type AttrLabel TextTagIndentPropertyInfo = "indent"
        type AttrOrigin TextTagIndentPropertyInfo = TextTag
        attrGet = getTextTagIndent
        attrSet = setTextTagIndent
        attrPut = setTextTagIndent
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagIndent
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.indent"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:indent"
            })
    #endif

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

    -- | Get the value of the “@indent-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #indentSet
    -- @
    getTextTagIndentSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagIndentSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagIndentSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "indent-set"

    -- | Set the value of the “@indent-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #indentSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagIndentSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagIndentSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagIndentSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "indent-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@indent-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagIndentSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagIndentSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagIndentSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "indent-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagIndentSetPropertyInfo
    instance AttrInfo TextTagIndentSetPropertyInfo where
        type AttrAllowedOps TextTagIndentSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagIndentSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagIndentSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagIndentSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagIndentSetPropertyInfo = Bool
        type AttrGetType TextTagIndentSetPropertyInfo = Bool
        type AttrLabel TextTagIndentSetPropertyInfo = "indent-set"
        type AttrOrigin TextTagIndentSetPropertyInfo = TextTag
        attrGet = getTextTagIndentSet
        attrSet = setTextTagIndentSet
        attrPut = setTextTagIndentSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagIndentSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.indentSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:indentSet"
            })
    #endif

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

    -- | Get the value of the “@insert-hyphens@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #insertHyphens
    -- @
    getTextTagInsertHyphens :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagInsertHyphens :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagInsertHyphens o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "insert-hyphens"

    -- | Set the value of the “@insert-hyphens@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #insertHyphens 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagInsertHyphens :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagInsertHyphens :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagInsertHyphens o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "insert-hyphens" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@insert-hyphens@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagInsertHyphens :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagInsertHyphens :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagInsertHyphens Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "insert-hyphens" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagInsertHyphensPropertyInfo
    instance AttrInfo TextTagInsertHyphensPropertyInfo where
        type AttrAllowedOps TextTagInsertHyphensPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagInsertHyphensPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagInsertHyphensPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagInsertHyphensPropertyInfo = (~) Bool
        type AttrTransferType TextTagInsertHyphensPropertyInfo = Bool
        type AttrGetType TextTagInsertHyphensPropertyInfo = Bool
        type AttrLabel TextTagInsertHyphensPropertyInfo = "insert-hyphens"
        type AttrOrigin TextTagInsertHyphensPropertyInfo = TextTag
        attrGet = getTextTagInsertHyphens
        attrSet = setTextTagInsertHyphens
        attrPut = setTextTagInsertHyphens
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagInsertHyphens
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.insertHyphens"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:insertHyphens"
            })
    #endif

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

    -- | Get the value of the “@insert-hyphens-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #insertHyphensSet
    -- @
    getTextTagInsertHyphensSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagInsertHyphensSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagInsertHyphensSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "insert-hyphens-set"

    -- | Set the value of the “@insert-hyphens-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #insertHyphensSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagInsertHyphensSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagInsertHyphensSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagInsertHyphensSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "insert-hyphens-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@insert-hyphens-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagInsertHyphensSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagInsertHyphensSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagInsertHyphensSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "insert-hyphens-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagInsertHyphensSetPropertyInfo
    instance AttrInfo TextTagInsertHyphensSetPropertyInfo where
        type AttrAllowedOps TextTagInsertHyphensSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagInsertHyphensSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagInsertHyphensSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagInsertHyphensSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagInsertHyphensSetPropertyInfo = Bool
        type AttrGetType TextTagInsertHyphensSetPropertyInfo = Bool
        type AttrLabel TextTagInsertHyphensSetPropertyInfo = "insert-hyphens-set"
        type AttrOrigin TextTagInsertHyphensSetPropertyInfo = TextTag
        attrGet = getTextTagInsertHyphensSet
        attrSet = setTextTagInsertHyphensSet
        attrPut = setTextTagInsertHyphensSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagInsertHyphensSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.insertHyphensSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:insertHyphensSet"
            })
    #endif

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

    -- | Get the value of the “@invisible@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #invisible
    -- @
    getTextTagInvisible :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagInvisible :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagInvisible o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "invisible"

    -- | Set the value of the “@invisible@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #invisible 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagInvisible :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagInvisible :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagInvisible o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "invisible" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@invisible@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagInvisible :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagInvisible :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagInvisible Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "invisible" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagInvisiblePropertyInfo
    instance AttrInfo TextTagInvisiblePropertyInfo where
        type AttrAllowedOps TextTagInvisiblePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagInvisiblePropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagInvisiblePropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagInvisiblePropertyInfo = (~) Bool
        type AttrTransferType TextTagInvisiblePropertyInfo = Bool
        type AttrGetType TextTagInvisiblePropertyInfo = Bool
        type AttrLabel TextTagInvisiblePropertyInfo = "invisible"
        type AttrOrigin TextTagInvisiblePropertyInfo = TextTag
        attrGet = getTextTagInvisible
        attrSet = setTextTagInvisible
        attrPut = setTextTagInvisible
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagInvisible
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.invisible"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:invisible"
            })
    #endif

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

    -- | Get the value of the “@invisible-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #invisibleSet
    -- @
    getTextTagInvisibleSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagInvisibleSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagInvisibleSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "invisible-set"

    -- | Set the value of the “@invisible-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #invisibleSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagInvisibleSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagInvisibleSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagInvisibleSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "invisible-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@invisible-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagInvisibleSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagInvisibleSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagInvisibleSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "invisible-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagInvisibleSetPropertyInfo
    instance AttrInfo TextTagInvisibleSetPropertyInfo where
        type AttrAllowedOps TextTagInvisibleSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagInvisibleSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagInvisibleSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagInvisibleSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagInvisibleSetPropertyInfo = Bool
        type AttrGetType TextTagInvisibleSetPropertyInfo = Bool
        type AttrLabel TextTagInvisibleSetPropertyInfo = "invisible-set"
        type AttrOrigin TextTagInvisibleSetPropertyInfo = TextTag
        attrGet = getTextTagInvisibleSet
        attrSet = setTextTagInvisibleSet
        attrPut = setTextTagInvisibleSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagInvisibleSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.invisibleSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:invisibleSet"
            })
    #endif

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

    -- | Get the value of the “@justification@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #justification
    -- @
    getTextTagJustification :: (MonadIO m, IsTextTag o) => o -> m Gtk.Enums.Justification
    getTextTagJustification :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> m Justification
    getTextTagJustification o
    obj = IO Justification -> m Justification
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Justification -> m Justification)
    -> IO Justification -> m Justification
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Justification
    forall a b. (GObject a, Enum b, BoxedEnum b) => a -> String -> IO b
    B.Properties.getObjectPropertyEnum o
    obj String
    "justification"

    -- | Set the value of the “@justification@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #justification 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagJustification :: (MonadIO m, IsTextTag o) => o -> Gtk.Enums.Justification -> m ()
    setTextTagJustification :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Justification -> m ()
    setTextTagJustification o
    obj Justification
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Justification -> IO ()
    forall a b.
    (GObject a, Enum b, BoxedEnum b) =>
    a -> String -> b -> IO ()
    B.Properties.setObjectPropertyEnum o
    obj String
    "justification" Justification
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@justification@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagJustification :: (IsTextTag o, MIO.MonadIO m) => Gtk.Enums.Justification -> m (GValueConstruct o)
    constructTextTagJustification :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Justification -> m (GValueConstruct o)
    constructTextTagJustification Justification
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Justification -> IO (GValueConstruct o)
    forall a o.
    (Enum a, BoxedEnum a) =>
    String -> a -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyEnum String
    "justification" Justification
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagJustificationPropertyInfo
    instance AttrInfo TextTagJustificationPropertyInfo where
        type AttrAllowedOps TextTagJustificationPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagJustificationPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagJustificationPropertyInfo = (~) Gtk.Enums.Justification
        type AttrTransferTypeConstraint TextTagJustificationPropertyInfo = (~) Gtk.Enums.Justification
        type AttrTransferType TextTagJustificationPropertyInfo = Gtk.Enums.Justification
        type AttrGetType TextTagJustificationPropertyInfo = Gtk.Enums.Justification
        type AttrLabel TextTagJustificationPropertyInfo = "justification"
        type AttrOrigin TextTagJustificationPropertyInfo = TextTag
        attrGet = getTextTagJustification
        attrSet = setTextTagJustification
        attrPut = setTextTagJustification
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagJustification
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.justification"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:justification"
            })
    #endif

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

    -- | Get the value of the “@justification-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #justificationSet
    -- @
    getTextTagJustificationSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagJustificationSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagJustificationSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "justification-set"

    -- | Set the value of the “@justification-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #justificationSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagJustificationSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagJustificationSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagJustificationSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "justification-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@justification-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagJustificationSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagJustificationSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagJustificationSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "justification-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagJustificationSetPropertyInfo
    instance AttrInfo TextTagJustificationSetPropertyInfo where
        type AttrAllowedOps TextTagJustificationSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagJustificationSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagJustificationSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagJustificationSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagJustificationSetPropertyInfo = Bool
        type AttrGetType TextTagJustificationSetPropertyInfo = Bool
        type AttrLabel TextTagJustificationSetPropertyInfo = "justification-set"
        type AttrOrigin TextTagJustificationSetPropertyInfo = TextTag
        attrGet = getTextTagJustificationSet
        attrSet = setTextTagJustificationSet
        attrPut = setTextTagJustificationSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagJustificationSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.justificationSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:justificationSet"
            })
    #endif

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

    -- | Get the value of the “@language@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #language
    -- @
    getTextTagLanguage :: (MonadIO m, IsTextTag o) => o -> m (Maybe T.Text)
    getTextTagLanguage :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> m (Maybe Text)
    getTextTagLanguage o
    obj = IO (Maybe Text) -> m (Maybe Text)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (Maybe Text) -> m (Maybe Text))
    -> IO (Maybe Text) -> m (Maybe Text)
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO (Maybe Text)
    forall a. GObject a => a -> String -> IO (Maybe Text)
    B.Properties.getObjectPropertyString o
    obj String
    "language"

    -- | Set the value of the “@language@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #language 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagLanguage :: (MonadIO m, IsTextTag o) => o -> T.Text -> m ()
    setTextTagLanguage :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Text -> m ()
    setTextTagLanguage o
    obj Text
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Maybe Text -> IO ()
    forall a. GObject a => a -> String -> Maybe Text -> IO ()
    B.Properties.setObjectPropertyString o
    obj String
    "language" (Text -> Maybe Text
    forall a. a -> Maybe a
    Just Text
    val)

    -- | Construct a t'GValueConstruct' with valid value for the “@language@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagLanguage :: (IsTextTag o, MIO.MonadIO m) => T.Text -> m (GValueConstruct o)
    constructTextTagLanguage :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Text -> m (GValueConstruct o)
    constructTextTagLanguage Text
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Maybe Text -> IO (GValueConstruct o)
    forall o. String -> Maybe Text -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyString String
    "language" (Text -> Maybe Text
    forall a. a -> Maybe a
    P.Just Text
    val)

    -- | Set the value of the “@language@” property to `Nothing`.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.clear' #language
    -- @
    clearTextTagLanguage :: (MonadIO m, IsTextTag o) => o -> m ()
    clearTextTagLanguage :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m ()
    clearTextTagLanguage o
    obj = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ o -> String -> Maybe Text -> IO ()
    forall a. GObject a => a -> String -> Maybe Text -> IO ()
    B.Properties.setObjectPropertyString o
    obj String
    "language" (Maybe Text
    forall a. Maybe a
    Nothing :: Maybe T.Text)

    #if defined(ENABLE_OVERLOADING)
    data TextTagLanguagePropertyInfo
    instance AttrInfo TextTagLanguagePropertyInfo where
        type AttrAllowedOps TextTagLanguagePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
        type AttrBaseTypeConstraint TextTagLanguagePropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagLanguagePropertyInfo = (~) T.Text
        type AttrTransferTypeConstraint TextTagLanguagePropertyInfo = (~) T.Text
        type AttrTransferType TextTagLanguagePropertyInfo = T.Text
        type AttrGetType TextTagLanguagePropertyInfo = (Maybe T.Text)
        type AttrLabel TextTagLanguagePropertyInfo = "language"
        type AttrOrigin TextTagLanguagePropertyInfo = TextTag
        attrGet = getTextTagLanguage
        attrSet = setTextTagLanguage
        attrPut = undefined
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagLanguage
        attrClear = clearTextTagLanguage
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.language"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:language"
            })
    #endif

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

    -- | Get the value of the “@language-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #languageSet
    -- @
    getTextTagLanguageSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagLanguageSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagLanguageSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "language-set"

    -- | Set the value of the “@language-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #languageSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagLanguageSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagLanguageSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagLanguageSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "language-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@language-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagLanguageSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagLanguageSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagLanguageSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "language-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagLanguageSetPropertyInfo
    instance AttrInfo TextTagLanguageSetPropertyInfo where
        type AttrAllowedOps TextTagLanguageSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagLanguageSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagLanguageSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagLanguageSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagLanguageSetPropertyInfo = Bool
        type AttrGetType TextTagLanguageSetPropertyInfo = Bool
        type AttrLabel TextTagLanguageSetPropertyInfo = "language-set"
        type AttrOrigin TextTagLanguageSetPropertyInfo = TextTag
        attrGet = getTextTagLanguageSet
        attrSet = setTextTagLanguageSet
        attrPut = setTextTagLanguageSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagLanguageSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.languageSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:languageSet"
            })
    #endif

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

    -- | Get the value of the “@left-margin@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #leftMargin
    -- @
    getTextTagLeftMargin :: (MonadIO m, IsTextTag o) => o -> m Int32
    getTextTagLeftMargin :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Int32
    getTextTagLeftMargin o
    obj = IO Int32 -> m Int32
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Int32
    forall a. GObject a => a -> String -> IO Int32
    B.Properties.getObjectPropertyInt32 o
    obj String
    "left-margin"

    -- | Set the value of the “@left-margin@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #leftMargin 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagLeftMargin :: (MonadIO m, IsTextTag o) => o -> Int32 -> m ()
    setTextTagLeftMargin :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Int32 -> m ()
    setTextTagLeftMargin o
    obj Int32
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Int32 -> IO ()
    forall a. GObject a => a -> String -> Int32 -> IO ()
    B.Properties.setObjectPropertyInt32 o
    obj String
    "left-margin" Int32
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@left-margin@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagLeftMargin :: (IsTextTag o, MIO.MonadIO m) => Int32 -> m (GValueConstruct o)
    constructTextTagLeftMargin :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Int32 -> m (GValueConstruct o)
    constructTextTagLeftMargin Int32
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Int32 -> IO (GValueConstruct o)
    forall o. String -> Int32 -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyInt32 String
    "left-margin" Int32
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagLeftMarginPropertyInfo
    instance AttrInfo TextTagLeftMarginPropertyInfo where
        type AttrAllowedOps TextTagLeftMarginPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagLeftMarginPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagLeftMarginPropertyInfo = (~) Int32
        type AttrTransferTypeConstraint TextTagLeftMarginPropertyInfo = (~) Int32
        type AttrTransferType TextTagLeftMarginPropertyInfo = Int32
        type AttrGetType TextTagLeftMarginPropertyInfo = Int32
        type AttrLabel TextTagLeftMarginPropertyInfo = "left-margin"
        type AttrOrigin TextTagLeftMarginPropertyInfo = TextTag
        attrGet = getTextTagLeftMargin
        attrSet = setTextTagLeftMargin
        attrPut = setTextTagLeftMargin
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagLeftMargin
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.leftMargin"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:leftMargin"
            })
    #endif

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

    -- | Get the value of the “@left-margin-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #leftMarginSet
    -- @
    getTextTagLeftMarginSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagLeftMarginSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagLeftMarginSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "left-margin-set"

    -- | Set the value of the “@left-margin-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #leftMarginSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagLeftMarginSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagLeftMarginSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagLeftMarginSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "left-margin-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@left-margin-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagLeftMarginSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagLeftMarginSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagLeftMarginSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "left-margin-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagLeftMarginSetPropertyInfo
    instance AttrInfo TextTagLeftMarginSetPropertyInfo where
        type AttrAllowedOps TextTagLeftMarginSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagLeftMarginSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagLeftMarginSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagLeftMarginSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagLeftMarginSetPropertyInfo = Bool
        type AttrGetType TextTagLeftMarginSetPropertyInfo = Bool
        type AttrLabel TextTagLeftMarginSetPropertyInfo = "left-margin-set"
        type AttrOrigin TextTagLeftMarginSetPropertyInfo = TextTag
        attrGet = getTextTagLeftMarginSet
        attrSet = setTextTagLeftMarginSet
        attrPut = setTextTagLeftMarginSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagLeftMarginSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.leftMarginSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:leftMarginSet"
            })
    #endif

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

    -- | Get the value of the “@letter-spacing@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #letterSpacing
    -- @
    getTextTagLetterSpacing :: (MonadIO m, IsTextTag o) => o -> m Int32
    getTextTagLetterSpacing :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Int32
    getTextTagLetterSpacing o
    obj = IO Int32 -> m Int32
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Int32
    forall a. GObject a => a -> String -> IO Int32
    B.Properties.getObjectPropertyInt32 o
    obj String
    "letter-spacing"

    -- | Set the value of the “@letter-spacing@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #letterSpacing 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagLetterSpacing :: (MonadIO m, IsTextTag o) => o -> Int32 -> m ()
    setTextTagLetterSpacing :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Int32 -> m ()
    setTextTagLetterSpacing o
    obj Int32
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Int32 -> IO ()
    forall a. GObject a => a -> String -> Int32 -> IO ()
    B.Properties.setObjectPropertyInt32 o
    obj String
    "letter-spacing" Int32
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@letter-spacing@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagLetterSpacing :: (IsTextTag o, MIO.MonadIO m) => Int32 -> m (GValueConstruct o)
    constructTextTagLetterSpacing :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Int32 -> m (GValueConstruct o)
    constructTextTagLetterSpacing Int32
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Int32 -> IO (GValueConstruct o)
    forall o. String -> Int32 -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyInt32 String
    "letter-spacing" Int32
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagLetterSpacingPropertyInfo
    instance AttrInfo TextTagLetterSpacingPropertyInfo where
        type AttrAllowedOps TextTagLetterSpacingPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagLetterSpacingPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagLetterSpacingPropertyInfo = (~) Int32
        type AttrTransferTypeConstraint TextTagLetterSpacingPropertyInfo = (~) Int32
        type AttrTransferType TextTagLetterSpacingPropertyInfo = Int32
        type AttrGetType TextTagLetterSpacingPropertyInfo = Int32
        type AttrLabel TextTagLetterSpacingPropertyInfo = "letter-spacing"
        type AttrOrigin TextTagLetterSpacingPropertyInfo = TextTag
        attrGet = getTextTagLetterSpacing
        attrSet = setTextTagLetterSpacing
        attrPut = setTextTagLetterSpacing
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagLetterSpacing
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.letterSpacing"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:letterSpacing"
            })
    #endif

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

    -- | Get the value of the “@letter-spacing-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #letterSpacingSet
    -- @
    getTextTagLetterSpacingSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagLetterSpacingSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagLetterSpacingSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "letter-spacing-set"

    -- | Set the value of the “@letter-spacing-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #letterSpacingSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagLetterSpacingSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagLetterSpacingSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagLetterSpacingSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "letter-spacing-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@letter-spacing-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagLetterSpacingSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagLetterSpacingSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagLetterSpacingSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "letter-spacing-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagLetterSpacingSetPropertyInfo
    instance AttrInfo TextTagLetterSpacingSetPropertyInfo where
        type AttrAllowedOps TextTagLetterSpacingSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagLetterSpacingSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagLetterSpacingSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagLetterSpacingSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagLetterSpacingSetPropertyInfo = Bool
        type AttrGetType TextTagLetterSpacingSetPropertyInfo = Bool
        type AttrLabel TextTagLetterSpacingSetPropertyInfo = "letter-spacing-set"
        type AttrOrigin TextTagLetterSpacingSetPropertyInfo = TextTag
        attrGet = getTextTagLetterSpacingSet
        attrSet = setTextTagLetterSpacingSet
        attrPut = setTextTagLetterSpacingSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagLetterSpacingSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.letterSpacingSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:letterSpacingSet"
            })
    #endif

    -- VVV Prop "line-height"
       -- Type: TBasicType TFloat
       -- Flags: [PropertyReadable,PropertyWritable]
       -- Nullable: (Nothing,Nothing)

    -- | Get the value of the “@line-height@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #lineHeight
    -- @
    getTextTagLineHeight :: (MonadIO m, IsTextTag o) => o -> m Float
    getTextTagLineHeight :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Float
    getTextTagLineHeight o
    obj = IO Float -> m Float
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Float -> m Float) -> IO Float -> m Float
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Float
    forall a. GObject a => a -> String -> IO Float
    B.Properties.getObjectPropertyFloat o
    obj String
    "line-height"

    -- | Set the value of the “@line-height@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #lineHeight 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagLineHeight :: (MonadIO m, IsTextTag o) => o -> Float -> m ()
    setTextTagLineHeight :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Float -> m ()
    setTextTagLineHeight o
    obj Float
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Float -> IO ()
    forall a. GObject a => a -> String -> Float -> IO ()
    B.Properties.setObjectPropertyFloat o
    obj String
    "line-height" Float
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@line-height@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagLineHeight :: (IsTextTag o, MIO.MonadIO m) => Float -> m (GValueConstruct o)
    constructTextTagLineHeight :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Float -> m (GValueConstruct o)
    constructTextTagLineHeight Float
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Float -> IO (GValueConstruct o)
    forall o. String -> Float -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyFloat String
    "line-height" Float
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagLineHeightPropertyInfo
    instance AttrInfo TextTagLineHeightPropertyInfo where
        type AttrAllowedOps TextTagLineHeightPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagLineHeightPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagLineHeightPropertyInfo = (~) Float
        type AttrTransferTypeConstraint TextTagLineHeightPropertyInfo = (~) Float
        type AttrTransferType TextTagLineHeightPropertyInfo = Float
        type AttrGetType TextTagLineHeightPropertyInfo = Float
        type AttrLabel TextTagLineHeightPropertyInfo = "line-height"
        type AttrOrigin TextTagLineHeightPropertyInfo = TextTag
        attrGet = getTextTagLineHeight
        attrSet = setTextTagLineHeight
        attrPut = setTextTagLineHeight
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagLineHeight
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.lineHeight"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:lineHeight"
            })
    #endif

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

    -- | Get the value of the “@line-height-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #lineHeightSet
    -- @
    getTextTagLineHeightSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagLineHeightSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagLineHeightSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "line-height-set"

    -- | Set the value of the “@line-height-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #lineHeightSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagLineHeightSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagLineHeightSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagLineHeightSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "line-height-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@line-height-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagLineHeightSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagLineHeightSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagLineHeightSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "line-height-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagLineHeightSetPropertyInfo
    instance AttrInfo TextTagLineHeightSetPropertyInfo where
        type AttrAllowedOps TextTagLineHeightSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagLineHeightSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagLineHeightSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagLineHeightSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagLineHeightSetPropertyInfo = Bool
        type AttrGetType TextTagLineHeightSetPropertyInfo = Bool
        type AttrLabel TextTagLineHeightSetPropertyInfo = "line-height-set"
        type AttrOrigin TextTagLineHeightSetPropertyInfo = TextTag
        attrGet = getTextTagLineHeightSet
        attrSet = setTextTagLineHeightSet
        attrPut = setTextTagLineHeightSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagLineHeightSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.lineHeightSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:lineHeightSet"
            })
    #endif

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

    -- | Get the value of the “@name@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #name
    -- @
    getTextTagName :: (MonadIO m, IsTextTag o) => o -> m (Maybe T.Text)
    getTextTagName :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> m (Maybe Text)
    getTextTagName o
    obj = IO (Maybe Text) -> m (Maybe Text)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (Maybe Text) -> m (Maybe Text))
    -> IO (Maybe Text) -> m (Maybe Text)
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO (Maybe Text)
    forall a. GObject a => a -> String -> IO (Maybe Text)
    B.Properties.getObjectPropertyString o
    obj String
    "name"

    -- | Construct a t'GValueConstruct' with valid value for the “@name@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagName :: (IsTextTag o, MIO.MonadIO m) => T.Text -> m (GValueConstruct o)
    constructTextTagName :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Text -> m (GValueConstruct o)
    constructTextTagName Text
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Maybe Text -> IO (GValueConstruct o)
    forall o. String -> Maybe Text -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyString String
    "name" (Text -> Maybe Text
    forall a. a -> Maybe a
    P.Just Text
    val)

    #if defined(ENABLE_OVERLOADING)
    data TextTagNamePropertyInfo
    instance AttrInfo TextTagNamePropertyInfo where
        type AttrAllowedOps TextTagNamePropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
        type AttrBaseTypeConstraint TextTagNamePropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagNamePropertyInfo = (~) T.Text
        type AttrTransferTypeConstraint TextTagNamePropertyInfo = (~) T.Text
        type AttrTransferType TextTagNamePropertyInfo = T.Text
        type AttrGetType TextTagNamePropertyInfo = (Maybe T.Text)
        type AttrLabel TextTagNamePropertyInfo = "name"
        type AttrOrigin TextTagNamePropertyInfo = TextTag
        attrGet = getTextTagName
        attrSet = undefined
        attrPut = undefined
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagName
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.name"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:name"
            })
    #endif

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

    -- | Get the value of the “@overline@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #overline
    -- @
    getTextTagOverline :: (MonadIO m, IsTextTag o) => o -> m Pango.Enums.Overline
    getTextTagOverline :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Overline
    getTextTagOverline o
    obj = IO Overline -> m Overline
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Overline -> m Overline) -> IO Overline -> m Overline
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Overline
    forall a b. (GObject a, Enum b, BoxedEnum b) => a -> String -> IO b
    B.Properties.getObjectPropertyEnum o
    obj String
    "overline"

    -- | Set the value of the “@overline@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #overline 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagOverline :: (MonadIO m, IsTextTag o) => o -> Pango.Enums.Overline -> m ()
    setTextTagOverline :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Overline -> m ()
    setTextTagOverline o
    obj Overline
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Overline -> IO ()
    forall a b.
    (GObject a, Enum b, BoxedEnum b) =>
    a -> String -> b -> IO ()
    B.Properties.setObjectPropertyEnum o
    obj String
    "overline" Overline
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@overline@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagOverline :: (IsTextTag o, MIO.MonadIO m) => Pango.Enums.Overline -> m (GValueConstruct o)
    constructTextTagOverline :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Overline -> m (GValueConstruct o)
    constructTextTagOverline Overline
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Overline -> IO (GValueConstruct o)
    forall a o.
    (Enum a, BoxedEnum a) =>
    String -> a -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyEnum String
    "overline" Overline
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagOverlinePropertyInfo
    instance AttrInfo TextTagOverlinePropertyInfo where
        type AttrAllowedOps TextTagOverlinePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagOverlinePropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagOverlinePropertyInfo = (~) Pango.Enums.Overline
        type AttrTransferTypeConstraint TextTagOverlinePropertyInfo = (~) Pango.Enums.Overline
        type AttrTransferType TextTagOverlinePropertyInfo = Pango.Enums.Overline
        type AttrGetType TextTagOverlinePropertyInfo = Pango.Enums.Overline
        type AttrLabel TextTagOverlinePropertyInfo = "overline"
        type AttrOrigin TextTagOverlinePropertyInfo = TextTag
        attrGet = getTextTagOverline
        attrSet = setTextTagOverline
        attrPut = setTextTagOverline
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagOverline
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.overline"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:overline"
            })
    #endif

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

    -- | Get the value of the “@overline-rgba@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #overlineRgba
    -- @
    getTextTagOverlineRgba :: (MonadIO m, IsTextTag o) => o -> m (Maybe Gdk.RGBA.RGBA)
    getTextTagOverlineRgba :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> m (Maybe RGBA)
    getTextTagOverlineRgba o
    obj = IO (Maybe RGBA) -> m (Maybe RGBA)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (Maybe RGBA) -> m (Maybe RGBA))
    -> IO (Maybe RGBA) -> m (Maybe RGBA)
    forall a b. (a -> b) -> a -> b
    $ o -> String -> (ManagedPtr RGBA -> RGBA) -> IO (Maybe RGBA)
    forall a b.
    (GObject a, GBoxed b) =>
    a -> String -> (ManagedPtr b -> b) -> IO (Maybe b)
    B.Properties.getObjectPropertyBoxed o
    obj String
    "overline-rgba" ManagedPtr RGBA -> RGBA
    Gdk.RGBA.RGBA

    -- | Set the value of the “@overline-rgba@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #overlineRgba 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagOverlineRgba :: (MonadIO m, IsTextTag o) => o -> Gdk.RGBA.RGBA -> m ()
    setTextTagOverlineRgba :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> RGBA -> m ()
    setTextTagOverlineRgba o
    obj RGBA
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Maybe RGBA -> IO ()
    forall a b.
    (GObject a, GBoxed b) =>
    a -> String -> Maybe b -> IO ()
    B.Properties.setObjectPropertyBoxed o
    obj String
    "overline-rgba" (RGBA -> Maybe RGBA
    forall a. a -> Maybe a
    Just RGBA
    val)

    -- | Construct a t'GValueConstruct' with valid value for the “@overline-rgba@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagOverlineRgba :: (IsTextTag o, MIO.MonadIO m) => Gdk.RGBA.RGBA -> m (GValueConstruct o)
    constructTextTagOverlineRgba :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    RGBA -> m (GValueConstruct o)
    constructTextTagOverlineRgba RGBA
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Maybe RGBA -> IO (GValueConstruct o)
    forall a o. GBoxed a => String -> Maybe a -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBoxed String
    "overline-rgba" (RGBA -> Maybe RGBA
    forall a. a -> Maybe a
    P.Just RGBA
    val)

    -- | Set the value of the “@overline-rgba@” property to `Nothing`.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.clear' #overlineRgba
    -- @
    clearTextTagOverlineRgba :: (MonadIO m, IsTextTag o) => o -> m ()
    clearTextTagOverlineRgba :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m ()
    clearTextTagOverlineRgba o
    obj = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ o -> String -> Maybe RGBA -> IO ()
    forall a b.
    (GObject a, GBoxed b) =>
    a -> String -> Maybe b -> IO ()
    B.Properties.setObjectPropertyBoxed o
    obj String
    "overline-rgba" (Maybe RGBA
    forall a. Maybe a
    Nothing :: Maybe Gdk.RGBA.RGBA)

    #if defined(ENABLE_OVERLOADING)
    data TextTagOverlineRgbaPropertyInfo
    instance AttrInfo TextTagOverlineRgbaPropertyInfo where
        type AttrAllowedOps TextTagOverlineRgbaPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
        type AttrBaseTypeConstraint TextTagOverlineRgbaPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagOverlineRgbaPropertyInfo = (~) Gdk.RGBA.RGBA
        type AttrTransferTypeConstraint TextTagOverlineRgbaPropertyInfo = (~) Gdk.RGBA.RGBA
        type AttrTransferType TextTagOverlineRgbaPropertyInfo = Gdk.RGBA.RGBA
        type AttrGetType TextTagOverlineRgbaPropertyInfo = (Maybe Gdk.RGBA.RGBA)
        type AttrLabel TextTagOverlineRgbaPropertyInfo = "overline-rgba"
        type AttrOrigin TextTagOverlineRgbaPropertyInfo = TextTag
        attrGet = getTextTagOverlineRgba
        attrSet = setTextTagOverlineRgba
        attrPut = undefined
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagOverlineRgba
        attrClear = clearTextTagOverlineRgba
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.overlineRgba"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:overlineRgba"
            })
    #endif

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

    -- | Get the value of the “@overline-rgba-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #overlineRgbaSet
    -- @
    getTextTagOverlineRgbaSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagOverlineRgbaSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagOverlineRgbaSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "overline-rgba-set"

    -- | Set the value of the “@overline-rgba-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #overlineRgbaSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagOverlineRgbaSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagOverlineRgbaSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagOverlineRgbaSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "overline-rgba-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@overline-rgba-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagOverlineRgbaSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagOverlineRgbaSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagOverlineRgbaSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "overline-rgba-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagOverlineRgbaSetPropertyInfo
    instance AttrInfo TextTagOverlineRgbaSetPropertyInfo where
        type AttrAllowedOps TextTagOverlineRgbaSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagOverlineRgbaSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagOverlineRgbaSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagOverlineRgbaSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagOverlineRgbaSetPropertyInfo = Bool
        type AttrGetType TextTagOverlineRgbaSetPropertyInfo = Bool
        type AttrLabel TextTagOverlineRgbaSetPropertyInfo = "overline-rgba-set"
        type AttrOrigin TextTagOverlineRgbaSetPropertyInfo = TextTag
        attrGet = getTextTagOverlineRgbaSet
        attrSet = setTextTagOverlineRgbaSet
        attrPut = setTextTagOverlineRgbaSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagOverlineRgbaSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.overlineRgbaSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:overlineRgbaSet"
            })
    #endif

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

    -- | Get the value of the “@overline-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #overlineSet
    -- @
    getTextTagOverlineSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagOverlineSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagOverlineSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "overline-set"

    -- | Set the value of the “@overline-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #overlineSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagOverlineSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagOverlineSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagOverlineSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "overline-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@overline-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagOverlineSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagOverlineSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagOverlineSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "overline-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagOverlineSetPropertyInfo
    instance AttrInfo TextTagOverlineSetPropertyInfo where
        type AttrAllowedOps TextTagOverlineSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagOverlineSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagOverlineSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagOverlineSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagOverlineSetPropertyInfo = Bool
        type AttrGetType TextTagOverlineSetPropertyInfo = Bool
        type AttrLabel TextTagOverlineSetPropertyInfo = "overline-set"
        type AttrOrigin TextTagOverlineSetPropertyInfo = TextTag
        attrGet = getTextTagOverlineSet
        attrSet = setTextTagOverlineSet
        attrPut = setTextTagOverlineSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagOverlineSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.overlineSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:overlineSet"
            })
    #endif

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

    -- | Set the value of the “@paragraph-background@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #paragraphBackground 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagParagraphBackground :: (MonadIO m, IsTextTag o) => o -> T.Text -> m ()
    setTextTagParagraphBackground :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Text -> m ()
    setTextTagParagraphBackground o
    obj Text
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Maybe Text -> IO ()
    forall a. GObject a => a -> String -> Maybe Text -> IO ()
    B.Properties.setObjectPropertyString o
    obj String
    "paragraph-background" (Text -> Maybe Text
    forall a. a -> Maybe a
    Just Text
    val)

    -- | Construct a t'GValueConstruct' with valid value for the “@paragraph-background@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagParagraphBackground :: (IsTextTag o, MIO.MonadIO m) => T.Text -> m (GValueConstruct o)
    constructTextTagParagraphBackground :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Text -> m (GValueConstruct o)
    constructTextTagParagraphBackground Text
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Maybe Text -> IO (GValueConstruct o)
    forall o. String -> Maybe Text -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyString String
    "paragraph-background" (Text -> Maybe Text
    forall a. a -> Maybe a
    P.Just Text
    val)

    -- | Set the value of the “@paragraph-background@” property to `Nothing`.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.clear' #paragraphBackground
    -- @
    clearTextTagParagraphBackground :: (MonadIO m, IsTextTag o) => o -> m ()
    clearTextTagParagraphBackground :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m ()
    clearTextTagParagraphBackground o
    obj = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ o -> String -> Maybe Text -> IO ()
    forall a. GObject a => a -> String -> Maybe Text -> IO ()
    B.Properties.setObjectPropertyString o
    obj String
    "paragraph-background" (Maybe Text
    forall a. Maybe a
    Nothing :: Maybe T.Text)

    #if defined(ENABLE_OVERLOADING)
    data TextTagParagraphBackgroundPropertyInfo
    instance AttrInfo TextTagParagraphBackgroundPropertyInfo where
        type AttrAllowedOps TextTagParagraphBackgroundPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrClear]
        type AttrBaseTypeConstraint TextTagParagraphBackgroundPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagParagraphBackgroundPropertyInfo = (~) T.Text
        type AttrTransferTypeConstraint TextTagParagraphBackgroundPropertyInfo = (~) T.Text
        type AttrTransferType TextTagParagraphBackgroundPropertyInfo = T.Text
        type AttrGetType TextTagParagraphBackgroundPropertyInfo = ()
        type AttrLabel TextTagParagraphBackgroundPropertyInfo = "paragraph-background"
        type AttrOrigin TextTagParagraphBackgroundPropertyInfo = TextTag
        attrGet = undefined
        attrSet = setTextTagParagraphBackground
        attrPut = undefined
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagParagraphBackground
        attrClear = clearTextTagParagraphBackground
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.paragraphBackground"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:paragraphBackground"
            })
    #endif

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

    -- | Get the value of the “@paragraph-background-rgba@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #paragraphBackgroundRgba
    -- @
    getTextTagParagraphBackgroundRgba :: (MonadIO m, IsTextTag o) => o -> m (Maybe Gdk.RGBA.RGBA)
    getTextTagParagraphBackgroundRgba :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> m (Maybe RGBA)
    getTextTagParagraphBackgroundRgba o
    obj = IO (Maybe RGBA) -> m (Maybe RGBA)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (Maybe RGBA) -> m (Maybe RGBA))
    -> IO (Maybe RGBA) -> m (Maybe RGBA)
    forall a b. (a -> b) -> a -> b
    $ o -> String -> (ManagedPtr RGBA -> RGBA) -> IO (Maybe RGBA)
    forall a b.
    (GObject a, GBoxed b) =>
    a -> String -> (ManagedPtr b -> b) -> IO (Maybe b)
    B.Properties.getObjectPropertyBoxed o
    obj String
    "paragraph-background-rgba" ManagedPtr RGBA -> RGBA
    Gdk.RGBA.RGBA

    -- | Set the value of the “@paragraph-background-rgba@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #paragraphBackgroundRgba 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagParagraphBackgroundRgba :: (MonadIO m, IsTextTag o) => o -> Gdk.RGBA.RGBA -> m ()
    setTextTagParagraphBackgroundRgba :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> RGBA -> m ()
    setTextTagParagraphBackgroundRgba o
    obj RGBA
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Maybe RGBA -> IO ()
    forall a b.
    (GObject a, GBoxed b) =>
    a -> String -> Maybe b -> IO ()
    B.Properties.setObjectPropertyBoxed o
    obj String
    "paragraph-background-rgba" (RGBA -> Maybe RGBA
    forall a. a -> Maybe a
    Just RGBA
    val)

    -- | Construct a t'GValueConstruct' with valid value for the “@paragraph-background-rgba@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagParagraphBackgroundRgba :: (IsTextTag o, MIO.MonadIO m) => Gdk.RGBA.RGBA -> m (GValueConstruct o)
    constructTextTagParagraphBackgroundRgba :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    RGBA -> m (GValueConstruct o)
    constructTextTagParagraphBackgroundRgba RGBA
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Maybe RGBA -> IO (GValueConstruct o)
    forall a o. GBoxed a => String -> Maybe a -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBoxed String
    "paragraph-background-rgba" (RGBA -> Maybe RGBA
    forall a. a -> Maybe a
    P.Just RGBA
    val)

    -- | Set the value of the “@paragraph-background-rgba@” property to `Nothing`.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.clear' #paragraphBackgroundRgba
    -- @
    clearTextTagParagraphBackgroundRgba :: (MonadIO m, IsTextTag o) => o -> m ()
    clearTextTagParagraphBackgroundRgba :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m ()
    clearTextTagParagraphBackgroundRgba o
    obj = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ o -> String -> Maybe RGBA -> IO ()
    forall a b.
    (GObject a, GBoxed b) =>
    a -> String -> Maybe b -> IO ()
    B.Properties.setObjectPropertyBoxed o
    obj String
    "paragraph-background-rgba" (Maybe RGBA
    forall a. Maybe a
    Nothing :: Maybe Gdk.RGBA.RGBA)

    #if defined(ENABLE_OVERLOADING)
    data TextTagParagraphBackgroundRgbaPropertyInfo
    instance AttrInfo TextTagParagraphBackgroundRgbaPropertyInfo where
        type AttrAllowedOps TextTagParagraphBackgroundRgbaPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
        type AttrBaseTypeConstraint TextTagParagraphBackgroundRgbaPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagParagraphBackgroundRgbaPropertyInfo = (~) Gdk.RGBA.RGBA
        type AttrTransferTypeConstraint TextTagParagraphBackgroundRgbaPropertyInfo = (~) Gdk.RGBA.RGBA
        type AttrTransferType TextTagParagraphBackgroundRgbaPropertyInfo = Gdk.RGBA.RGBA
        type AttrGetType TextTagParagraphBackgroundRgbaPropertyInfo = (Maybe Gdk.RGBA.RGBA)
        type AttrLabel TextTagParagraphBackgroundRgbaPropertyInfo = "paragraph-background-rgba"
        type AttrOrigin TextTagParagraphBackgroundRgbaPropertyInfo = TextTag
        attrGet = getTextTagParagraphBackgroundRgba
        attrSet = setTextTagParagraphBackgroundRgba
        attrPut = undefined
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagParagraphBackgroundRgba
        attrClear = clearTextTagParagraphBackgroundRgba
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.paragraphBackgroundRgba"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:paragraphBackgroundRgba"
            })
    #endif

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

    -- | Get the value of the “@paragraph-background-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #paragraphBackgroundSet
    -- @
    getTextTagParagraphBackgroundSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagParagraphBackgroundSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagParagraphBackgroundSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "paragraph-background-set"

    -- | Set the value of the “@paragraph-background-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #paragraphBackgroundSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagParagraphBackgroundSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagParagraphBackgroundSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagParagraphBackgroundSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "paragraph-background-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@paragraph-background-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagParagraphBackgroundSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagParagraphBackgroundSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagParagraphBackgroundSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "paragraph-background-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagParagraphBackgroundSetPropertyInfo
    instance AttrInfo TextTagParagraphBackgroundSetPropertyInfo where
        type AttrAllowedOps TextTagParagraphBackgroundSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagParagraphBackgroundSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagParagraphBackgroundSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagParagraphBackgroundSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagParagraphBackgroundSetPropertyInfo = Bool
        type AttrGetType TextTagParagraphBackgroundSetPropertyInfo = Bool
        type AttrLabel TextTagParagraphBackgroundSetPropertyInfo = "paragraph-background-set"
        type AttrOrigin TextTagParagraphBackgroundSetPropertyInfo = TextTag
        attrGet = getTextTagParagraphBackgroundSet
        attrSet = setTextTagParagraphBackgroundSet
        attrPut = setTextTagParagraphBackgroundSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagParagraphBackgroundSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.paragraphBackgroundSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:paragraphBackgroundSet"
            })
    #endif

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

    -- | Get the value of the “@pixels-above-lines@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #pixelsAboveLines
    -- @
    getTextTagPixelsAboveLines :: (MonadIO m, IsTextTag o) => o -> m Int32
    getTextTagPixelsAboveLines :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Int32
    getTextTagPixelsAboveLines o
    obj = IO Int32 -> m Int32
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Int32
    forall a. GObject a => a -> String -> IO Int32
    B.Properties.getObjectPropertyInt32 o
    obj String
    "pixels-above-lines"

    -- | Set the value of the “@pixels-above-lines@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #pixelsAboveLines 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagPixelsAboveLines :: (MonadIO m, IsTextTag o) => o -> Int32 -> m ()
    setTextTagPixelsAboveLines :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Int32 -> m ()
    setTextTagPixelsAboveLines o
    obj Int32
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Int32 -> IO ()
    forall a. GObject a => a -> String -> Int32 -> IO ()
    B.Properties.setObjectPropertyInt32 o
    obj String
    "pixels-above-lines" Int32
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@pixels-above-lines@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagPixelsAboveLines :: (IsTextTag o, MIO.MonadIO m) => Int32 -> m (GValueConstruct o)
    constructTextTagPixelsAboveLines :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Int32 -> m (GValueConstruct o)
    constructTextTagPixelsAboveLines Int32
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Int32 -> IO (GValueConstruct o)
    forall o. String -> Int32 -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyInt32 String
    "pixels-above-lines" Int32
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagPixelsAboveLinesPropertyInfo
    instance AttrInfo TextTagPixelsAboveLinesPropertyInfo where
        type AttrAllowedOps TextTagPixelsAboveLinesPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagPixelsAboveLinesPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagPixelsAboveLinesPropertyInfo = (~) Int32
        type AttrTransferTypeConstraint TextTagPixelsAboveLinesPropertyInfo = (~) Int32
        type AttrTransferType TextTagPixelsAboveLinesPropertyInfo = Int32
        type AttrGetType TextTagPixelsAboveLinesPropertyInfo = Int32
        type AttrLabel TextTagPixelsAboveLinesPropertyInfo = "pixels-above-lines"
        type AttrOrigin TextTagPixelsAboveLinesPropertyInfo = TextTag
        attrGet = getTextTagPixelsAboveLines
        attrSet = setTextTagPixelsAboveLines
        attrPut = setTextTagPixelsAboveLines
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagPixelsAboveLines
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.pixelsAboveLines"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:pixelsAboveLines"
            })
    #endif

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

    -- | Get the value of the “@pixels-above-lines-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #pixelsAboveLinesSet
    -- @
    getTextTagPixelsAboveLinesSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagPixelsAboveLinesSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagPixelsAboveLinesSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "pixels-above-lines-set"

    -- | Set the value of the “@pixels-above-lines-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #pixelsAboveLinesSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagPixelsAboveLinesSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagPixelsAboveLinesSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagPixelsAboveLinesSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "pixels-above-lines-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@pixels-above-lines-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagPixelsAboveLinesSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagPixelsAboveLinesSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagPixelsAboveLinesSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "pixels-above-lines-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagPixelsAboveLinesSetPropertyInfo
    instance AttrInfo TextTagPixelsAboveLinesSetPropertyInfo where
        type AttrAllowedOps TextTagPixelsAboveLinesSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagPixelsAboveLinesSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagPixelsAboveLinesSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagPixelsAboveLinesSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagPixelsAboveLinesSetPropertyInfo = Bool
        type AttrGetType TextTagPixelsAboveLinesSetPropertyInfo = Bool
        type AttrLabel TextTagPixelsAboveLinesSetPropertyInfo = "pixels-above-lines-set"
        type AttrOrigin TextTagPixelsAboveLinesSetPropertyInfo = TextTag
        attrGet = getTextTagPixelsAboveLinesSet
        attrSet = setTextTagPixelsAboveLinesSet
        attrPut = setTextTagPixelsAboveLinesSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagPixelsAboveLinesSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.pixelsAboveLinesSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:pixelsAboveLinesSet"
            })
    #endif

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

    -- | Get the value of the “@pixels-below-lines@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #pixelsBelowLines
    -- @
    getTextTagPixelsBelowLines :: (MonadIO m, IsTextTag o) => o -> m Int32
    getTextTagPixelsBelowLines :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Int32
    getTextTagPixelsBelowLines o
    obj = IO Int32 -> m Int32
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Int32
    forall a. GObject a => a -> String -> IO Int32
    B.Properties.getObjectPropertyInt32 o
    obj String
    "pixels-below-lines"

    -- | Set the value of the “@pixels-below-lines@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #pixelsBelowLines 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagPixelsBelowLines :: (MonadIO m, IsTextTag o) => o -> Int32 -> m ()
    setTextTagPixelsBelowLines :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Int32 -> m ()
    setTextTagPixelsBelowLines o
    obj Int32
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Int32 -> IO ()
    forall a. GObject a => a -> String -> Int32 -> IO ()
    B.Properties.setObjectPropertyInt32 o
    obj String
    "pixels-below-lines" Int32
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@pixels-below-lines@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagPixelsBelowLines :: (IsTextTag o, MIO.MonadIO m) => Int32 -> m (GValueConstruct o)
    constructTextTagPixelsBelowLines :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Int32 -> m (GValueConstruct o)
    constructTextTagPixelsBelowLines Int32
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Int32 -> IO (GValueConstruct o)
    forall o. String -> Int32 -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyInt32 String
    "pixels-below-lines" Int32
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagPixelsBelowLinesPropertyInfo
    instance AttrInfo TextTagPixelsBelowLinesPropertyInfo where
        type AttrAllowedOps TextTagPixelsBelowLinesPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagPixelsBelowLinesPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagPixelsBelowLinesPropertyInfo = (~) Int32
        type AttrTransferTypeConstraint TextTagPixelsBelowLinesPropertyInfo = (~) Int32
        type AttrTransferType TextTagPixelsBelowLinesPropertyInfo = Int32
        type AttrGetType TextTagPixelsBelowLinesPropertyInfo = Int32
        type AttrLabel TextTagPixelsBelowLinesPropertyInfo = "pixels-below-lines"
        type AttrOrigin TextTagPixelsBelowLinesPropertyInfo = TextTag
        attrGet = getTextTagPixelsBelowLines
        attrSet = setTextTagPixelsBelowLines
        attrPut = setTextTagPixelsBelowLines
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagPixelsBelowLines
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.pixelsBelowLines"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:pixelsBelowLines"
            })
    #endif

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

    -- | Get the value of the “@pixels-below-lines-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #pixelsBelowLinesSet
    -- @
    getTextTagPixelsBelowLinesSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagPixelsBelowLinesSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagPixelsBelowLinesSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "pixels-below-lines-set"

    -- | Set the value of the “@pixels-below-lines-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #pixelsBelowLinesSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagPixelsBelowLinesSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagPixelsBelowLinesSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagPixelsBelowLinesSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "pixels-below-lines-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@pixels-below-lines-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagPixelsBelowLinesSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagPixelsBelowLinesSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagPixelsBelowLinesSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "pixels-below-lines-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagPixelsBelowLinesSetPropertyInfo
    instance AttrInfo TextTagPixelsBelowLinesSetPropertyInfo where
        type AttrAllowedOps TextTagPixelsBelowLinesSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagPixelsBelowLinesSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagPixelsBelowLinesSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagPixelsBelowLinesSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagPixelsBelowLinesSetPropertyInfo = Bool
        type AttrGetType TextTagPixelsBelowLinesSetPropertyInfo = Bool
        type AttrLabel TextTagPixelsBelowLinesSetPropertyInfo = "pixels-below-lines-set"
        type AttrOrigin TextTagPixelsBelowLinesSetPropertyInfo = TextTag
        attrGet = getTextTagPixelsBelowLinesSet
        attrSet = setTextTagPixelsBelowLinesSet
        attrPut = setTextTagPixelsBelowLinesSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagPixelsBelowLinesSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.pixelsBelowLinesSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:pixelsBelowLinesSet"
            })
    #endif

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

    -- | Get the value of the “@pixels-inside-wrap@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #pixelsInsideWrap
    -- @
    getTextTagPixelsInsideWrap :: (MonadIO m, IsTextTag o) => o -> m Int32
    getTextTagPixelsInsideWrap :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Int32
    getTextTagPixelsInsideWrap o
    obj = IO Int32 -> m Int32
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Int32
    forall a. GObject a => a -> String -> IO Int32
    B.Properties.getObjectPropertyInt32 o
    obj String
    "pixels-inside-wrap"

    -- | Set the value of the “@pixels-inside-wrap@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #pixelsInsideWrap 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagPixelsInsideWrap :: (MonadIO m, IsTextTag o) => o -> Int32 -> m ()
    setTextTagPixelsInsideWrap :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Int32 -> m ()
    setTextTagPixelsInsideWrap o
    obj Int32
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Int32 -> IO ()
    forall a. GObject a => a -> String -> Int32 -> IO ()
    B.Properties.setObjectPropertyInt32 o
    obj String
    "pixels-inside-wrap" Int32
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@pixels-inside-wrap@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagPixelsInsideWrap :: (IsTextTag o, MIO.MonadIO m) => Int32 -> m (GValueConstruct o)
    constructTextTagPixelsInsideWrap :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Int32 -> m (GValueConstruct o)
    constructTextTagPixelsInsideWrap Int32
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Int32 -> IO (GValueConstruct o)
    forall o. String -> Int32 -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyInt32 String
    "pixels-inside-wrap" Int32
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagPixelsInsideWrapPropertyInfo
    instance AttrInfo TextTagPixelsInsideWrapPropertyInfo where
        type AttrAllowedOps TextTagPixelsInsideWrapPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagPixelsInsideWrapPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagPixelsInsideWrapPropertyInfo = (~) Int32
        type AttrTransferTypeConstraint TextTagPixelsInsideWrapPropertyInfo = (~) Int32
        type AttrTransferType TextTagPixelsInsideWrapPropertyInfo = Int32
        type AttrGetType TextTagPixelsInsideWrapPropertyInfo = Int32
        type AttrLabel TextTagPixelsInsideWrapPropertyInfo = "pixels-inside-wrap"
        type AttrOrigin TextTagPixelsInsideWrapPropertyInfo = TextTag
        attrGet = getTextTagPixelsInsideWrap
        attrSet = setTextTagPixelsInsideWrap
        attrPut = setTextTagPixelsInsideWrap
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagPixelsInsideWrap
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.pixelsInsideWrap"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:pixelsInsideWrap"
            })
    #endif

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

    -- | Get the value of the “@pixels-inside-wrap-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #pixelsInsideWrapSet
    -- @
    getTextTagPixelsInsideWrapSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagPixelsInsideWrapSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagPixelsInsideWrapSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "pixels-inside-wrap-set"

    -- | Set the value of the “@pixels-inside-wrap-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #pixelsInsideWrapSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagPixelsInsideWrapSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagPixelsInsideWrapSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagPixelsInsideWrapSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "pixels-inside-wrap-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@pixels-inside-wrap-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagPixelsInsideWrapSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagPixelsInsideWrapSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagPixelsInsideWrapSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "pixels-inside-wrap-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagPixelsInsideWrapSetPropertyInfo
    instance AttrInfo TextTagPixelsInsideWrapSetPropertyInfo where
        type AttrAllowedOps TextTagPixelsInsideWrapSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagPixelsInsideWrapSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagPixelsInsideWrapSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagPixelsInsideWrapSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagPixelsInsideWrapSetPropertyInfo = Bool
        type AttrGetType TextTagPixelsInsideWrapSetPropertyInfo = Bool
        type AttrLabel TextTagPixelsInsideWrapSetPropertyInfo = "pixels-inside-wrap-set"
        type AttrOrigin TextTagPixelsInsideWrapSetPropertyInfo = TextTag
        attrGet = getTextTagPixelsInsideWrapSet
        attrSet = setTextTagPixelsInsideWrapSet
        attrPut = setTextTagPixelsInsideWrapSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagPixelsInsideWrapSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.pixelsInsideWrapSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:pixelsInsideWrapSet"
            })
    #endif

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

    -- | Get the value of the “@right-margin@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #rightMargin
    -- @
    getTextTagRightMargin :: (MonadIO m, IsTextTag o) => o -> m Int32
    getTextTagRightMargin :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Int32
    getTextTagRightMargin o
    obj = IO Int32 -> m Int32
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Int32
    forall a. GObject a => a -> String -> IO Int32
    B.Properties.getObjectPropertyInt32 o
    obj String
    "right-margin"

    -- | Set the value of the “@right-margin@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #rightMargin 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagRightMargin :: (MonadIO m, IsTextTag o) => o -> Int32 -> m ()
    setTextTagRightMargin :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Int32 -> m ()
    setTextTagRightMargin o
    obj Int32
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Int32 -> IO ()
    forall a. GObject a => a -> String -> Int32 -> IO ()
    B.Properties.setObjectPropertyInt32 o
    obj String
    "right-margin" Int32
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@right-margin@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagRightMargin :: (IsTextTag o, MIO.MonadIO m) => Int32 -> m (GValueConstruct o)
    constructTextTagRightMargin :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Int32 -> m (GValueConstruct o)
    constructTextTagRightMargin Int32
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Int32 -> IO (GValueConstruct o)
    forall o. String -> Int32 -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyInt32 String
    "right-margin" Int32
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagRightMarginPropertyInfo
    instance AttrInfo TextTagRightMarginPropertyInfo where
        type AttrAllowedOps TextTagRightMarginPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagRightMarginPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagRightMarginPropertyInfo = (~) Int32
        type AttrTransferTypeConstraint TextTagRightMarginPropertyInfo = (~) Int32
        type AttrTransferType TextTagRightMarginPropertyInfo = Int32
        type AttrGetType TextTagRightMarginPropertyInfo = Int32
        type AttrLabel TextTagRightMarginPropertyInfo = "right-margin"
        type AttrOrigin TextTagRightMarginPropertyInfo = TextTag
        attrGet = getTextTagRightMargin
        attrSet = setTextTagRightMargin
        attrPut = setTextTagRightMargin
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagRightMargin
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.rightMargin"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:rightMargin"
            })
    #endif

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

    -- | Get the value of the “@right-margin-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #rightMarginSet
    -- @
    getTextTagRightMarginSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagRightMarginSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagRightMarginSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "right-margin-set"

    -- | Set the value of the “@right-margin-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #rightMarginSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagRightMarginSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagRightMarginSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagRightMarginSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "right-margin-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@right-margin-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagRightMarginSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagRightMarginSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagRightMarginSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "right-margin-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagRightMarginSetPropertyInfo
    instance AttrInfo TextTagRightMarginSetPropertyInfo where
        type AttrAllowedOps TextTagRightMarginSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagRightMarginSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagRightMarginSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagRightMarginSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagRightMarginSetPropertyInfo = Bool
        type AttrGetType TextTagRightMarginSetPropertyInfo = Bool
        type AttrLabel TextTagRightMarginSetPropertyInfo = "right-margin-set"
        type AttrOrigin TextTagRightMarginSetPropertyInfo = TextTag
        attrGet = getTextTagRightMarginSet
        attrSet = setTextTagRightMarginSet
        attrPut = setTextTagRightMarginSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagRightMarginSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.rightMarginSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:rightMarginSet"
            })
    #endif

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

    -- | Get the value of the “@rise@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #rise
    -- @
    getTextTagRise :: (MonadIO m, IsTextTag o) => o -> m Int32
    getTextTagRise :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Int32
    getTextTagRise o
    obj = IO Int32 -> m Int32
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Int32
    forall a. GObject a => a -> String -> IO Int32
    B.Properties.getObjectPropertyInt32 o
    obj String
    "rise"

    -- | Set the value of the “@rise@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #rise 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagRise :: (MonadIO m, IsTextTag o) => o -> Int32 -> m ()
    setTextTagRise :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Int32 -> m ()
    setTextTagRise o
    obj Int32
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Int32 -> IO ()
    forall a. GObject a => a -> String -> Int32 -> IO ()
    B.Properties.setObjectPropertyInt32 o
    obj String
    "rise" Int32
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@rise@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagRise :: (IsTextTag o, MIO.MonadIO m) => Int32 -> m (GValueConstruct o)
    constructTextTagRise :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Int32 -> m (GValueConstruct o)
    constructTextTagRise Int32
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Int32 -> IO (GValueConstruct o)
    forall o. String -> Int32 -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyInt32 String
    "rise" Int32
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagRisePropertyInfo
    instance AttrInfo TextTagRisePropertyInfo where
        type AttrAllowedOps TextTagRisePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagRisePropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagRisePropertyInfo = (~) Int32
        type AttrTransferTypeConstraint TextTagRisePropertyInfo = (~) Int32
        type AttrTransferType TextTagRisePropertyInfo = Int32
        type AttrGetType TextTagRisePropertyInfo = Int32
        type AttrLabel TextTagRisePropertyInfo = "rise"
        type AttrOrigin TextTagRisePropertyInfo = TextTag
        attrGet = getTextTagRise
        attrSet = setTextTagRise
        attrPut = setTextTagRise
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagRise
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.rise"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:rise"
            })
    #endif

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

    -- | Get the value of the “@rise-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #riseSet
    -- @
    getTextTagRiseSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagRiseSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagRiseSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "rise-set"

    -- | Set the value of the “@rise-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #riseSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagRiseSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagRiseSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagRiseSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "rise-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@rise-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagRiseSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagRiseSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagRiseSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "rise-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagRiseSetPropertyInfo
    instance AttrInfo TextTagRiseSetPropertyInfo where
        type AttrAllowedOps TextTagRiseSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagRiseSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagRiseSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagRiseSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagRiseSetPropertyInfo = Bool
        type AttrGetType TextTagRiseSetPropertyInfo = Bool
        type AttrLabel TextTagRiseSetPropertyInfo = "rise-set"
        type AttrOrigin TextTagRiseSetPropertyInfo = TextTag
        attrGet = getTextTagRiseSet
        attrSet = setTextTagRiseSet
        attrPut = setTextTagRiseSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagRiseSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.riseSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:riseSet"
            })
    #endif

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

    -- | Get the value of the “@scale@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #scale
    -- @
    getTextTagScale :: (MonadIO m, IsTextTag o) => o -> m Double
    getTextTagScale :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Double
    getTextTagScale o
    obj = IO Double -> m Double
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Double -> m Double) -> IO Double -> m Double
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Double
    forall a. GObject a => a -> String -> IO Double
    B.Properties.getObjectPropertyDouble o
    obj String
    "scale"

    -- | Set the value of the “@scale@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #scale 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagScale :: (MonadIO m, IsTextTag o) => o -> Double -> m ()
    setTextTagScale :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Double -> m ()
    setTextTagScale o
    obj Double
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Double -> IO ()
    forall a. GObject a => a -> String -> Double -> IO ()
    B.Properties.setObjectPropertyDouble o
    obj String
    "scale" Double
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@scale@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagScale :: (IsTextTag o, MIO.MonadIO m) => Double -> m (GValueConstruct o)
    constructTextTagScale :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Double -> m (GValueConstruct o)
    constructTextTagScale Double
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Double -> IO (GValueConstruct o)
    forall o. String -> Double -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyDouble String
    "scale" Double
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagScalePropertyInfo
    instance AttrInfo TextTagScalePropertyInfo where
        type AttrAllowedOps TextTagScalePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagScalePropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagScalePropertyInfo = (~) Double
        type AttrTransferTypeConstraint TextTagScalePropertyInfo = (~) Double
        type AttrTransferType TextTagScalePropertyInfo = Double
        type AttrGetType TextTagScalePropertyInfo = Double
        type AttrLabel TextTagScalePropertyInfo = "scale"
        type AttrOrigin TextTagScalePropertyInfo = TextTag
        attrGet = getTextTagScale
        attrSet = setTextTagScale
        attrPut = setTextTagScale
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagScale
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.scale"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:scale"
            })
    #endif

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

    -- | Get the value of the “@scale-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #scaleSet
    -- @
    getTextTagScaleSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagScaleSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagScaleSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "scale-set"

    -- | Set the value of the “@scale-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #scaleSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagScaleSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagScaleSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagScaleSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "scale-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@scale-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagScaleSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagScaleSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagScaleSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "scale-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagScaleSetPropertyInfo
    instance AttrInfo TextTagScaleSetPropertyInfo where
        type AttrAllowedOps TextTagScaleSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagScaleSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagScaleSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagScaleSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagScaleSetPropertyInfo = Bool
        type AttrGetType TextTagScaleSetPropertyInfo = Bool
        type AttrLabel TextTagScaleSetPropertyInfo = "scale-set"
        type AttrOrigin TextTagScaleSetPropertyInfo = TextTag
        attrGet = getTextTagScaleSet
        attrSet = setTextTagScaleSet
        attrPut = setTextTagScaleSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagScaleSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.scaleSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:scaleSet"
            })
    #endif

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

    -- | Get the value of the “@sentence@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #sentence
    -- @
    getTextTagSentence :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagSentence :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagSentence o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "sentence"

    -- | Set the value of the “@sentence@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #sentence 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagSentence :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagSentence :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagSentence o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "sentence" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@sentence@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagSentence :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagSentence :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagSentence Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "sentence" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagSentencePropertyInfo
    instance AttrInfo TextTagSentencePropertyInfo where
        type AttrAllowedOps TextTagSentencePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagSentencePropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagSentencePropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagSentencePropertyInfo = (~) Bool
        type AttrTransferType TextTagSentencePropertyInfo = Bool
        type AttrGetType TextTagSentencePropertyInfo = Bool
        type AttrLabel TextTagSentencePropertyInfo = "sentence"
        type AttrOrigin TextTagSentencePropertyInfo = TextTag
        attrGet = getTextTagSentence
        attrSet = setTextTagSentence
        attrPut = setTextTagSentence
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagSentence
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.sentence"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:sentence"
            })
    #endif

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

    -- | Get the value of the “@sentence-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #sentenceSet
    -- @
    getTextTagSentenceSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagSentenceSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagSentenceSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "sentence-set"

    -- | Set the value of the “@sentence-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #sentenceSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagSentenceSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagSentenceSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagSentenceSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "sentence-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@sentence-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagSentenceSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagSentenceSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagSentenceSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "sentence-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagSentenceSetPropertyInfo
    instance AttrInfo TextTagSentenceSetPropertyInfo where
        type AttrAllowedOps TextTagSentenceSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagSentenceSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagSentenceSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagSentenceSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagSentenceSetPropertyInfo = Bool
        type AttrGetType TextTagSentenceSetPropertyInfo = Bool
        type AttrLabel TextTagSentenceSetPropertyInfo = "sentence-set"
        type AttrOrigin TextTagSentenceSetPropertyInfo = TextTag
        attrGet = getTextTagSentenceSet
        attrSet = setTextTagSentenceSet
        attrPut = setTextTagSentenceSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagSentenceSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.sentenceSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:sentenceSet"
            })
    #endif

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

    -- | Get the value of the “@show-spaces@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #showSpaces
    -- @
    getTextTagShowSpaces :: (MonadIO m, IsTextTag o) => o -> m [Pango.Flags.ShowFlags]
    getTextTagShowSpaces :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> m [ShowFlags]
    getTextTagShowSpaces o
    obj = IO [ShowFlags] -> m [ShowFlags]
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO [ShowFlags] -> m [ShowFlags])
    -> IO [ShowFlags] -> m [ShowFlags]
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO [ShowFlags]
    forall a b.
    (GObject a, IsGFlag b, BoxedFlags b) =>
    a -> String -> IO [b]
    B.Properties.getObjectPropertyFlags o
    obj String
    "show-spaces"

    -- | Set the value of the “@show-spaces@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #showSpaces 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagShowSpaces :: (MonadIO m, IsTextTag o) => o -> [Pango.Flags.ShowFlags] -> m ()
    setTextTagShowSpaces :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> [ShowFlags] -> m ()
    setTextTagShowSpaces o
    obj [ShowFlags]
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> [ShowFlags] -> IO ()
    forall a b.
    (IsGFlag b, BoxedFlags b, GObject a) =>
    a -> String -> [b] -> IO ()
    B.Properties.setObjectPropertyFlags o
    obj String
    "show-spaces" [ShowFlags]
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@show-spaces@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagShowSpaces :: (IsTextTag o, MIO.MonadIO m) => [Pango.Flags.ShowFlags] -> m (GValueConstruct o)
    constructTextTagShowSpaces :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    [ShowFlags] -> m (GValueConstruct o)
    constructTextTagShowSpaces [ShowFlags]
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> [ShowFlags] -> IO (GValueConstruct o)
    forall a o.
    (IsGFlag a, BoxedFlags a) =>
    String -> [a] -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyFlags String
    "show-spaces" [ShowFlags]
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagShowSpacesPropertyInfo
    instance AttrInfo TextTagShowSpacesPropertyInfo where
        type AttrAllowedOps TextTagShowSpacesPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagShowSpacesPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagShowSpacesPropertyInfo = (~) [Pango.Flags.ShowFlags]
        type AttrTransferTypeConstraint TextTagShowSpacesPropertyInfo = (~) [Pango.Flags.ShowFlags]
        type AttrTransferType TextTagShowSpacesPropertyInfo = [Pango.Flags.ShowFlags]
        type AttrGetType TextTagShowSpacesPropertyInfo = [Pango.Flags.ShowFlags]
        type AttrLabel TextTagShowSpacesPropertyInfo = "show-spaces"
        type AttrOrigin TextTagShowSpacesPropertyInfo = TextTag
        attrGet = getTextTagShowSpaces
        attrSet = setTextTagShowSpaces
        attrPut = setTextTagShowSpaces
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagShowSpaces
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.showSpaces"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:showSpaces"
            })
    #endif

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

    -- | Get the value of the “@show-spaces-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #showSpacesSet
    -- @
    getTextTagShowSpacesSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagShowSpacesSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagShowSpacesSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "show-spaces-set"

    -- | Set the value of the “@show-spaces-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #showSpacesSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagShowSpacesSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagShowSpacesSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagShowSpacesSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "show-spaces-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@show-spaces-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagShowSpacesSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagShowSpacesSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagShowSpacesSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "show-spaces-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagShowSpacesSetPropertyInfo
    instance AttrInfo TextTagShowSpacesSetPropertyInfo where
        type AttrAllowedOps TextTagShowSpacesSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagShowSpacesSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagShowSpacesSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagShowSpacesSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagShowSpacesSetPropertyInfo = Bool
        type AttrGetType TextTagShowSpacesSetPropertyInfo = Bool
        type AttrLabel TextTagShowSpacesSetPropertyInfo = "show-spaces-set"
        type AttrOrigin TextTagShowSpacesSetPropertyInfo = TextTag
        attrGet = getTextTagShowSpacesSet
        attrSet = setTextTagShowSpacesSet
        attrPut = setTextTagShowSpacesSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagShowSpacesSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.showSpacesSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:showSpacesSet"
            })
    #endif

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

    -- | Get the value of the “@size@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #size
    -- @
    getTextTagSize :: (MonadIO m, IsTextTag o) => o -> m Int32
    getTextTagSize :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Int32
    getTextTagSize o
    obj = IO Int32 -> m Int32
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Int32
    forall a. GObject a => a -> String -> IO Int32
    B.Properties.getObjectPropertyInt32 o
    obj String
    "size"

    -- | Set the value of the “@size@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #size 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagSize :: (MonadIO m, IsTextTag o) => o -> Int32 -> m ()
    setTextTagSize :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Int32 -> m ()
    setTextTagSize o
    obj Int32
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Int32 -> IO ()
    forall a. GObject a => a -> String -> Int32 -> IO ()
    B.Properties.setObjectPropertyInt32 o
    obj String
    "size" Int32
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@size@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagSize :: (IsTextTag o, MIO.MonadIO m) => Int32 -> m (GValueConstruct o)
    constructTextTagSize :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Int32 -> m (GValueConstruct o)
    constructTextTagSize Int32
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Int32 -> IO (GValueConstruct o)
    forall o. String -> Int32 -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyInt32 String
    "size" Int32
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagSizePropertyInfo
    instance AttrInfo TextTagSizePropertyInfo where
        type AttrAllowedOps TextTagSizePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagSizePropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagSizePropertyInfo = (~) Int32
        type AttrTransferTypeConstraint TextTagSizePropertyInfo = (~) Int32
        type AttrTransferType TextTagSizePropertyInfo = Int32
        type AttrGetType TextTagSizePropertyInfo = Int32
        type AttrLabel TextTagSizePropertyInfo = "size"
        type AttrOrigin TextTagSizePropertyInfo = TextTag
        attrGet = getTextTagSize
        attrSet = setTextTagSize
        attrPut = setTextTagSize
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagSize
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.size"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:size"
            })
    #endif

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

    -- | Get the value of the “@size-points@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #sizePoints
    -- @
    getTextTagSizePoints :: (MonadIO m, IsTextTag o) => o -> m Double
    getTextTagSizePoints :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Double
    getTextTagSizePoints o
    obj = IO Double -> m Double
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Double -> m Double) -> IO Double -> m Double
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Double
    forall a. GObject a => a -> String -> IO Double
    B.Properties.getObjectPropertyDouble o
    obj String
    "size-points"

    -- | Set the value of the “@size-points@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #sizePoints 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagSizePoints :: (MonadIO m, IsTextTag o) => o -> Double -> m ()
    setTextTagSizePoints :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Double -> m ()
    setTextTagSizePoints o
    obj Double
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Double -> IO ()
    forall a. GObject a => a -> String -> Double -> IO ()
    B.Properties.setObjectPropertyDouble o
    obj String
    "size-points" Double
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@size-points@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagSizePoints :: (IsTextTag o, MIO.MonadIO m) => Double -> m (GValueConstruct o)
    constructTextTagSizePoints :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Double -> m (GValueConstruct o)
    constructTextTagSizePoints Double
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Double -> IO (GValueConstruct o)
    forall o. String -> Double -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyDouble String
    "size-points" Double
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagSizePointsPropertyInfo
    instance AttrInfo TextTagSizePointsPropertyInfo where
        type AttrAllowedOps TextTagSizePointsPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagSizePointsPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagSizePointsPropertyInfo = (~) Double
        type AttrTransferTypeConstraint TextTagSizePointsPropertyInfo = (~) Double
        type AttrTransferType TextTagSizePointsPropertyInfo = Double
        type AttrGetType TextTagSizePointsPropertyInfo = Double
        type AttrLabel TextTagSizePointsPropertyInfo = "size-points"
        type AttrOrigin TextTagSizePointsPropertyInfo = TextTag
        attrGet = getTextTagSizePoints
        attrSet = setTextTagSizePoints
        attrPut = setTextTagSizePoints
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagSizePoints
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.sizePoints"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:sizePoints"
            })
    #endif

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

    -- | Get the value of the “@size-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #sizeSet
    -- @
    getTextTagSizeSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagSizeSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagSizeSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "size-set"

    -- | Set the value of the “@size-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #sizeSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagSizeSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagSizeSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagSizeSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "size-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@size-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagSizeSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagSizeSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagSizeSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "size-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagSizeSetPropertyInfo
    instance AttrInfo TextTagSizeSetPropertyInfo where
        type AttrAllowedOps TextTagSizeSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagSizeSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagSizeSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagSizeSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagSizeSetPropertyInfo = Bool
        type AttrGetType TextTagSizeSetPropertyInfo = Bool
        type AttrLabel TextTagSizeSetPropertyInfo = "size-set"
        type AttrOrigin TextTagSizeSetPropertyInfo = TextTag
        attrGet = getTextTagSizeSet
        attrSet = setTextTagSizeSet
        attrPut = setTextTagSizeSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagSizeSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.sizeSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:sizeSet"
            })
    #endif

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

    -- | Get the value of the “@stretch@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #stretch
    -- @
    getTextTagStretch :: (MonadIO m, IsTextTag o) => o -> m Pango.Enums.Stretch
    getTextTagStretch :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Stretch
    getTextTagStretch o
    obj = IO Stretch -> m Stretch
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Stretch -> m Stretch) -> IO Stretch -> m Stretch
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Stretch
    forall a b. (GObject a, Enum b, BoxedEnum b) => a -> String -> IO b
    B.Properties.getObjectPropertyEnum o
    obj String
    "stretch"

    -- | Set the value of the “@stretch@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #stretch 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagStretch :: (MonadIO m, IsTextTag o) => o -> Pango.Enums.Stretch -> m ()
    setTextTagStretch :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Stretch -> m ()
    setTextTagStretch o
    obj Stretch
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Stretch -> IO ()
    forall a b.
    (GObject a, Enum b, BoxedEnum b) =>
    a -> String -> b -> IO ()
    B.Properties.setObjectPropertyEnum o
    obj String
    "stretch" Stretch
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@stretch@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagStretch :: (IsTextTag o, MIO.MonadIO m) => Pango.Enums.Stretch -> m (GValueConstruct o)
    constructTextTagStretch :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Stretch -> m (GValueConstruct o)
    constructTextTagStretch Stretch
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Stretch -> IO (GValueConstruct o)
    forall a o.
    (Enum a, BoxedEnum a) =>
    String -> a -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyEnum String
    "stretch" Stretch
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagStretchPropertyInfo
    instance AttrInfo TextTagStretchPropertyInfo where
        type AttrAllowedOps TextTagStretchPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagStretchPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagStretchPropertyInfo = (~) Pango.Enums.Stretch
        type AttrTransferTypeConstraint TextTagStretchPropertyInfo = (~) Pango.Enums.Stretch
        type AttrTransferType TextTagStretchPropertyInfo = Pango.Enums.Stretch
        type AttrGetType TextTagStretchPropertyInfo = Pango.Enums.Stretch
        type AttrLabel TextTagStretchPropertyInfo = "stretch"
        type AttrOrigin TextTagStretchPropertyInfo = TextTag
        attrGet = getTextTagStretch
        attrSet = setTextTagStretch
        attrPut = setTextTagStretch
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagStretch
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.stretch"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:stretch"
            })
    #endif

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

    -- | Get the value of the “@stretch-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #stretchSet
    -- @
    getTextTagStretchSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagStretchSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagStretchSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "stretch-set"

    -- | Set the value of the “@stretch-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #stretchSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagStretchSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagStretchSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagStretchSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "stretch-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@stretch-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagStretchSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagStretchSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagStretchSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "stretch-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagStretchSetPropertyInfo
    instance AttrInfo TextTagStretchSetPropertyInfo where
        type AttrAllowedOps TextTagStretchSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagStretchSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagStretchSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagStretchSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagStretchSetPropertyInfo = Bool
        type AttrGetType TextTagStretchSetPropertyInfo = Bool
        type AttrLabel TextTagStretchSetPropertyInfo = "stretch-set"
        type AttrOrigin TextTagStretchSetPropertyInfo = TextTag
        attrGet = getTextTagStretchSet
        attrSet = setTextTagStretchSet
        attrPut = setTextTagStretchSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagStretchSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.stretchSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:stretchSet"
            })
    #endif

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

    -- | Get the value of the “@strikethrough@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #strikethrough
    -- @
    getTextTagStrikethrough :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagStrikethrough :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagStrikethrough o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "strikethrough"

    -- | Set the value of the “@strikethrough@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #strikethrough 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagStrikethrough :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagStrikethrough :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagStrikethrough o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "strikethrough" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@strikethrough@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagStrikethrough :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagStrikethrough :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagStrikethrough Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "strikethrough" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagStrikethroughPropertyInfo
    instance AttrInfo TextTagStrikethroughPropertyInfo where
        type AttrAllowedOps TextTagStrikethroughPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagStrikethroughPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagStrikethroughPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagStrikethroughPropertyInfo = (~) Bool
        type AttrTransferType TextTagStrikethroughPropertyInfo = Bool
        type AttrGetType TextTagStrikethroughPropertyInfo = Bool
        type AttrLabel TextTagStrikethroughPropertyInfo = "strikethrough"
        type AttrOrigin TextTagStrikethroughPropertyInfo = TextTag
        attrGet = getTextTagStrikethrough
        attrSet = setTextTagStrikethrough
        attrPut = setTextTagStrikethrough
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagStrikethrough
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.strikethrough"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:strikethrough"
            })
    #endif

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

    -- | Get the value of the “@strikethrough-rgba@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #strikethroughRgba
    -- @
    getTextTagStrikethroughRgba :: (MonadIO m, IsTextTag o) => o -> m (Maybe Gdk.RGBA.RGBA)
    getTextTagStrikethroughRgba :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> m (Maybe RGBA)
    getTextTagStrikethroughRgba o
    obj = IO (Maybe RGBA) -> m (Maybe RGBA)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (Maybe RGBA) -> m (Maybe RGBA))
    -> IO (Maybe RGBA) -> m (Maybe RGBA)
    forall a b. (a -> b) -> a -> b
    $ o -> String -> (ManagedPtr RGBA -> RGBA) -> IO (Maybe RGBA)
    forall a b.
    (GObject a, GBoxed b) =>
    a -> String -> (ManagedPtr b -> b) -> IO (Maybe b)
    B.Properties.getObjectPropertyBoxed o
    obj String
    "strikethrough-rgba" ManagedPtr RGBA -> RGBA
    Gdk.RGBA.RGBA

    -- | Set the value of the “@strikethrough-rgba@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #strikethroughRgba 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagStrikethroughRgba :: (MonadIO m, IsTextTag o) => o -> Gdk.RGBA.RGBA -> m ()
    setTextTagStrikethroughRgba :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> RGBA -> m ()
    setTextTagStrikethroughRgba o
    obj RGBA
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Maybe RGBA -> IO ()
    forall a b.
    (GObject a, GBoxed b) =>
    a -> String -> Maybe b -> IO ()
    B.Properties.setObjectPropertyBoxed o
    obj String
    "strikethrough-rgba" (RGBA -> Maybe RGBA
    forall a. a -> Maybe a
    Just RGBA
    val)

    -- | Construct a t'GValueConstruct' with valid value for the “@strikethrough-rgba@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagStrikethroughRgba :: (IsTextTag o, MIO.MonadIO m) => Gdk.RGBA.RGBA -> m (GValueConstruct o)
    constructTextTagStrikethroughRgba :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    RGBA -> m (GValueConstruct o)
    constructTextTagStrikethroughRgba RGBA
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Maybe RGBA -> IO (GValueConstruct o)
    forall a o. GBoxed a => String -> Maybe a -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBoxed String
    "strikethrough-rgba" (RGBA -> Maybe RGBA
    forall a. a -> Maybe a
    P.Just RGBA
    val)

    -- | Set the value of the “@strikethrough-rgba@” property to `Nothing`.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.clear' #strikethroughRgba
    -- @
    clearTextTagStrikethroughRgba :: (MonadIO m, IsTextTag o) => o -> m ()
    clearTextTagStrikethroughRgba :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m ()
    clearTextTagStrikethroughRgba o
    obj = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ o -> String -> Maybe RGBA -> IO ()
    forall a b.
    (GObject a, GBoxed b) =>
    a -> String -> Maybe b -> IO ()
    B.Properties.setObjectPropertyBoxed o
    obj String
    "strikethrough-rgba" (Maybe RGBA
    forall a. Maybe a
    Nothing :: Maybe Gdk.RGBA.RGBA)

    #if defined(ENABLE_OVERLOADING)
    data TextTagStrikethroughRgbaPropertyInfo
    instance AttrInfo TextTagStrikethroughRgbaPropertyInfo where
        type AttrAllowedOps TextTagStrikethroughRgbaPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
        type AttrBaseTypeConstraint TextTagStrikethroughRgbaPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagStrikethroughRgbaPropertyInfo = (~) Gdk.RGBA.RGBA
        type AttrTransferTypeConstraint TextTagStrikethroughRgbaPropertyInfo = (~) Gdk.RGBA.RGBA
        type AttrTransferType TextTagStrikethroughRgbaPropertyInfo = Gdk.RGBA.RGBA
        type AttrGetType TextTagStrikethroughRgbaPropertyInfo = (Maybe Gdk.RGBA.RGBA)
        type AttrLabel TextTagStrikethroughRgbaPropertyInfo = "strikethrough-rgba"
        type AttrOrigin TextTagStrikethroughRgbaPropertyInfo = TextTag
        attrGet = getTextTagStrikethroughRgba
        attrSet = setTextTagStrikethroughRgba
        attrPut = undefined
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagStrikethroughRgba
        attrClear = clearTextTagStrikethroughRgba
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.strikethroughRgba"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:strikethroughRgba"
            })
    #endif

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

    -- | Get the value of the “@strikethrough-rgba-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #strikethroughRgbaSet
    -- @
    getTextTagStrikethroughRgbaSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagStrikethroughRgbaSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagStrikethroughRgbaSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "strikethrough-rgba-set"

    -- | Set the value of the “@strikethrough-rgba-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #strikethroughRgbaSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagStrikethroughRgbaSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagStrikethroughRgbaSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagStrikethroughRgbaSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "strikethrough-rgba-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@strikethrough-rgba-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagStrikethroughRgbaSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagStrikethroughRgbaSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagStrikethroughRgbaSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "strikethrough-rgba-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagStrikethroughRgbaSetPropertyInfo
    instance AttrInfo TextTagStrikethroughRgbaSetPropertyInfo where
        type AttrAllowedOps TextTagStrikethroughRgbaSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagStrikethroughRgbaSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagStrikethroughRgbaSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagStrikethroughRgbaSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagStrikethroughRgbaSetPropertyInfo = Bool
        type AttrGetType TextTagStrikethroughRgbaSetPropertyInfo = Bool
        type AttrLabel TextTagStrikethroughRgbaSetPropertyInfo = "strikethrough-rgba-set"
        type AttrOrigin TextTagStrikethroughRgbaSetPropertyInfo = TextTag
        attrGet = getTextTagStrikethroughRgbaSet
        attrSet = setTextTagStrikethroughRgbaSet
        attrPut = setTextTagStrikethroughRgbaSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagStrikethroughRgbaSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.strikethroughRgbaSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:strikethroughRgbaSet"
            })
    #endif

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

    -- | Get the value of the “@strikethrough-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #strikethroughSet
    -- @
    getTextTagStrikethroughSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagStrikethroughSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagStrikethroughSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "strikethrough-set"

    -- | Set the value of the “@strikethrough-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #strikethroughSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagStrikethroughSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagStrikethroughSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagStrikethroughSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "strikethrough-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@strikethrough-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagStrikethroughSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagStrikethroughSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagStrikethroughSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "strikethrough-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagStrikethroughSetPropertyInfo
    instance AttrInfo TextTagStrikethroughSetPropertyInfo where
        type AttrAllowedOps TextTagStrikethroughSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagStrikethroughSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagStrikethroughSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagStrikethroughSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagStrikethroughSetPropertyInfo = Bool
        type AttrGetType TextTagStrikethroughSetPropertyInfo = Bool
        type AttrLabel TextTagStrikethroughSetPropertyInfo = "strikethrough-set"
        type AttrOrigin TextTagStrikethroughSetPropertyInfo = TextTag
        attrGet = getTextTagStrikethroughSet
        attrSet = setTextTagStrikethroughSet
        attrPut = setTextTagStrikethroughSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagStrikethroughSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.strikethroughSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:strikethroughSet"
            })
    #endif

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

    -- | Get the value of the “@style@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #style
    -- @
    getTextTagStyle :: (MonadIO m, IsTextTag o) => o -> m Pango.Enums.Style
    getTextTagStyle :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Style
    getTextTagStyle o
    obj = IO Style -> m Style
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Style -> m Style) -> IO Style -> m Style
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Style
    forall a b. (GObject a, Enum b, BoxedEnum b) => a -> String -> IO b
    B.Properties.getObjectPropertyEnum o
    obj String
    "style"

    -- | Set the value of the “@style@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #style 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagStyle :: (MonadIO m, IsTextTag o) => o -> Pango.Enums.Style -> m ()
    setTextTagStyle :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Style -> m ()
    setTextTagStyle o
    obj Style
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Style -> IO ()
    forall a b.
    (GObject a, Enum b, BoxedEnum b) =>
    a -> String -> b -> IO ()
    B.Properties.setObjectPropertyEnum o
    obj String
    "style" Style
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@style@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagStyle :: (IsTextTag o, MIO.MonadIO m) => Pango.Enums.Style -> m (GValueConstruct o)
    constructTextTagStyle :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Style -> m (GValueConstruct o)
    constructTextTagStyle Style
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Style -> IO (GValueConstruct o)
    forall a o.
    (Enum a, BoxedEnum a) =>
    String -> a -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyEnum String
    "style" Style
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagStylePropertyInfo
    instance AttrInfo TextTagStylePropertyInfo where
        type AttrAllowedOps TextTagStylePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagStylePropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagStylePropertyInfo = (~) Pango.Enums.Style
        type AttrTransferTypeConstraint TextTagStylePropertyInfo = (~) Pango.Enums.Style
        type AttrTransferType TextTagStylePropertyInfo = Pango.Enums.Style
        type AttrGetType TextTagStylePropertyInfo = Pango.Enums.Style
        type AttrLabel TextTagStylePropertyInfo = "style"
        type AttrOrigin TextTagStylePropertyInfo = TextTag
        attrGet = getTextTagStyle
        attrSet = setTextTagStyle
        attrPut = setTextTagStyle
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagStyle
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.style"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:style"
            })
    #endif

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

    -- | Get the value of the “@style-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #styleSet
    -- @
    getTextTagStyleSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagStyleSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagStyleSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "style-set"

    -- | Set the value of the “@style-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #styleSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagStyleSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagStyleSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagStyleSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "style-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@style-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagStyleSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagStyleSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagStyleSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "style-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagStyleSetPropertyInfo
    instance AttrInfo TextTagStyleSetPropertyInfo where
        type AttrAllowedOps TextTagStyleSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagStyleSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagStyleSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagStyleSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagStyleSetPropertyInfo = Bool
        type AttrGetType TextTagStyleSetPropertyInfo = Bool
        type AttrLabel TextTagStyleSetPropertyInfo = "style-set"
        type AttrOrigin TextTagStyleSetPropertyInfo = TextTag
        attrGet = getTextTagStyleSet
        attrSet = setTextTagStyleSet
        attrPut = setTextTagStyleSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagStyleSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.styleSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:styleSet"
            })
    #endif

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

    -- | Get the value of the “@tabs@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #tabs
    -- @
    getTextTagTabs :: (MonadIO m, IsTextTag o) => o -> m (Maybe Pango.TabArray.TabArray)
    getTextTagTabs :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> m (Maybe TabArray)
    getTextTagTabs o
    obj = IO (Maybe TabArray) -> m (Maybe TabArray)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (Maybe TabArray) -> m (Maybe TabArray))
    -> IO (Maybe TabArray) -> m (Maybe TabArray)
    forall a b. (a -> b) -> a -> b
    $ o
    -> String
    -> (ManagedPtr TabArray -> TabArray)
    -> IO (Maybe TabArray)
    forall a b.
    (GObject a, GBoxed b) =>
    a -> String -> (ManagedPtr b -> b) -> IO (Maybe b)
    B.Properties.getObjectPropertyBoxed o
    obj String
    "tabs" ManagedPtr TabArray -> TabArray
    Pango.TabArray.TabArray

    -- | Set the value of the “@tabs@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #tabs 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagTabs :: (MonadIO m, IsTextTag o) => o -> Pango.TabArray.TabArray -> m ()
    setTextTagTabs :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> TabArray -> m ()
    setTextTagTabs o
    obj TabArray
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Maybe TabArray -> IO ()
    forall a b.
    (GObject a, GBoxed b) =>
    a -> String -> Maybe b -> IO ()
    B.Properties.setObjectPropertyBoxed o
    obj String
    "tabs" (TabArray -> Maybe TabArray
    forall a. a -> Maybe a
    Just TabArray
    val)

    -- | Construct a t'GValueConstruct' with valid value for the “@tabs@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagTabs :: (IsTextTag o, MIO.MonadIO m) => Pango.TabArray.TabArray -> m (GValueConstruct o)
    constructTextTagTabs :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    TabArray -> m (GValueConstruct o)
    constructTextTagTabs TabArray
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Maybe TabArray -> IO (GValueConstruct o)
    forall a o. GBoxed a => String -> Maybe a -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBoxed String
    "tabs" (TabArray -> Maybe TabArray
    forall a. a -> Maybe a
    P.Just TabArray
    val)

    -- | Set the value of the “@tabs@” property to `Nothing`.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.clear' #tabs
    -- @
    clearTextTagTabs :: (MonadIO m, IsTextTag o) => o -> m ()
    clearTextTagTabs :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m ()
    clearTextTagTabs o
    obj = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ o -> String -> Maybe TabArray -> IO ()
    forall a b.
    (GObject a, GBoxed b) =>
    a -> String -> Maybe b -> IO ()
    B.Properties.setObjectPropertyBoxed o
    obj String
    "tabs" (Maybe TabArray
    forall a. Maybe a
    Nothing :: Maybe Pango.TabArray.TabArray)

    #if defined(ENABLE_OVERLOADING)
    data TextTagTabsPropertyInfo
    instance AttrInfo TextTagTabsPropertyInfo where
        type AttrAllowedOps TextTagTabsPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
        type AttrBaseTypeConstraint TextTagTabsPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagTabsPropertyInfo = (~) Pango.TabArray.TabArray
        type AttrTransferTypeConstraint TextTagTabsPropertyInfo = (~) Pango.TabArray.TabArray
        type AttrTransferType TextTagTabsPropertyInfo = Pango.TabArray.TabArray
        type AttrGetType TextTagTabsPropertyInfo = (Maybe Pango.TabArray.TabArray)
        type AttrLabel TextTagTabsPropertyInfo = "tabs"
        type AttrOrigin TextTagTabsPropertyInfo = TextTag
        attrGet = getTextTagTabs
        attrSet = setTextTagTabs
        attrPut = undefined
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagTabs
        attrClear = clearTextTagTabs
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.tabs"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:tabs"
            })
    #endif

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

    -- | Get the value of the “@tabs-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #tabsSet
    -- @
    getTextTagTabsSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagTabsSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagTabsSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "tabs-set"

    -- | Set the value of the “@tabs-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #tabsSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagTabsSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagTabsSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagTabsSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "tabs-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@tabs-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagTabsSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagTabsSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagTabsSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "tabs-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagTabsSetPropertyInfo
    instance AttrInfo TextTagTabsSetPropertyInfo where
        type AttrAllowedOps TextTagTabsSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagTabsSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagTabsSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagTabsSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagTabsSetPropertyInfo = Bool
        type AttrGetType TextTagTabsSetPropertyInfo = Bool
        type AttrLabel TextTagTabsSetPropertyInfo = "tabs-set"
        type AttrOrigin TextTagTabsSetPropertyInfo = TextTag
        attrGet = getTextTagTabsSet
        attrSet = setTextTagTabsSet
        attrPut = setTextTagTabsSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagTabsSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.tabsSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:tabsSet"
            })
    #endif

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

    -- | Get the value of the “@text-transform@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #textTransform
    -- @
    getTextTagTextTransform :: (MonadIO m, IsTextTag o) => o -> m Pango.Enums.TextTransform
    getTextTagTextTransform :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> m TextTransform
    getTextTagTextTransform o
    obj = IO TextTransform -> m TextTransform
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO TextTransform -> m TextTransform)
    -> IO TextTransform -> m TextTransform
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO TextTransform
    forall a b. (GObject a, Enum b, BoxedEnum b) => a -> String -> IO b
    B.Properties.getObjectPropertyEnum o
    obj String
    "text-transform"

    -- | Set the value of the “@text-transform@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #textTransform 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagTextTransform :: (MonadIO m, IsTextTag o) => o -> Pango.Enums.TextTransform -> m ()
    setTextTagTextTransform :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> TextTransform -> m ()
    setTextTagTextTransform o
    obj TextTransform
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> TextTransform -> IO ()
    forall a b.
    (GObject a, Enum b, BoxedEnum b) =>
    a -> String -> b -> IO ()
    B.Properties.setObjectPropertyEnum o
    obj String
    "text-transform" TextTransform
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@text-transform@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagTextTransform :: (IsTextTag o, MIO.MonadIO m) => Pango.Enums.TextTransform -> m (GValueConstruct o)
    constructTextTagTextTransform :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    TextTransform -> m (GValueConstruct o)
    constructTextTagTextTransform TextTransform
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> TextTransform -> IO (GValueConstruct o)
    forall a o.
    (Enum a, BoxedEnum a) =>
    String -> a -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyEnum String
    "text-transform" TextTransform
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagTextTransformPropertyInfo
    instance AttrInfo TextTagTextTransformPropertyInfo where
        type AttrAllowedOps TextTagTextTransformPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagTextTransformPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagTextTransformPropertyInfo = (~) Pango.Enums.TextTransform
        type AttrTransferTypeConstraint TextTagTextTransformPropertyInfo = (~) Pango.Enums.TextTransform
        type AttrTransferType TextTagTextTransformPropertyInfo = Pango.Enums.TextTransform
        type AttrGetType TextTagTextTransformPropertyInfo = Pango.Enums.TextTransform
        type AttrLabel TextTagTextTransformPropertyInfo = "text-transform"
        type AttrOrigin TextTagTextTransformPropertyInfo = TextTag
        attrGet = getTextTagTextTransform
        attrSet = setTextTagTextTransform
        attrPut = setTextTagTextTransform
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagTextTransform
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.textTransform"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:textTransform"
            })
    #endif

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

    -- | Get the value of the “@text-transform-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #textTransformSet
    -- @
    getTextTagTextTransformSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagTextTransformSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagTextTransformSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "text-transform-set"

    -- | Set the value of the “@text-transform-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #textTransformSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagTextTransformSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagTextTransformSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagTextTransformSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "text-transform-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@text-transform-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagTextTransformSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagTextTransformSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagTextTransformSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "text-transform-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagTextTransformSetPropertyInfo
    instance AttrInfo TextTagTextTransformSetPropertyInfo where
        type AttrAllowedOps TextTagTextTransformSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagTextTransformSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagTextTransformSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagTextTransformSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagTextTransformSetPropertyInfo = Bool
        type AttrGetType TextTagTextTransformSetPropertyInfo = Bool
        type AttrLabel TextTagTextTransformSetPropertyInfo = "text-transform-set"
        type AttrOrigin TextTagTextTransformSetPropertyInfo = TextTag
        attrGet = getTextTagTextTransformSet
        attrSet = setTextTagTextTransformSet
        attrPut = setTextTagTextTransformSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagTextTransformSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.textTransformSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:textTransformSet"
            })
    #endif

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

    -- | Get the value of the “@underline@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #underline
    -- @
    getTextTagUnderline :: (MonadIO m, IsTextTag o) => o -> m Pango.Enums.Underline
    getTextTagUnderline :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> m Underline
    getTextTagUnderline o
    obj = IO Underline -> m Underline
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Underline -> m Underline) -> IO Underline -> m Underline
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Underline
    forall a b. (GObject a, Enum b, BoxedEnum b) => a -> String -> IO b
    B.Properties.getObjectPropertyEnum o
    obj String
    "underline"

    -- | Set the value of the “@underline@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #underline 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagUnderline :: (MonadIO m, IsTextTag o) => o -> Pango.Enums.Underline -> m ()
    setTextTagUnderline :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Underline -> m ()
    setTextTagUnderline o
    obj Underline
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Underline -> IO ()
    forall a b.
    (GObject a, Enum b, BoxedEnum b) =>
    a -> String -> b -> IO ()
    B.Properties.setObjectPropertyEnum o
    obj String
    "underline" Underline
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@underline@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagUnderline :: (IsTextTag o, MIO.MonadIO m) => Pango.Enums.Underline -> m (GValueConstruct o)
    constructTextTagUnderline :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Underline -> m (GValueConstruct o)
    constructTextTagUnderline Underline
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Underline -> IO (GValueConstruct o)
    forall a o.
    (Enum a, BoxedEnum a) =>
    String -> a -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyEnum String
    "underline" Underline
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagUnderlinePropertyInfo
    instance AttrInfo TextTagUnderlinePropertyInfo where
        type AttrAllowedOps TextTagUnderlinePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagUnderlinePropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagUnderlinePropertyInfo = (~) Pango.Enums.Underline
        type AttrTransferTypeConstraint TextTagUnderlinePropertyInfo = (~) Pango.Enums.Underline
        type AttrTransferType TextTagUnderlinePropertyInfo = Pango.Enums.Underline
        type AttrGetType TextTagUnderlinePropertyInfo = Pango.Enums.Underline
        type AttrLabel TextTagUnderlinePropertyInfo = "underline"
        type AttrOrigin TextTagUnderlinePropertyInfo = TextTag
        attrGet = getTextTagUnderline
        attrSet = setTextTagUnderline
        attrPut = setTextTagUnderline
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagUnderline
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.underline"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:underline"
            })
    #endif

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

    -- | Get the value of the “@underline-rgba@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #underlineRgba
    -- @
    getTextTagUnderlineRgba :: (MonadIO m, IsTextTag o) => o -> m (Maybe Gdk.RGBA.RGBA)
    getTextTagUnderlineRgba :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> m (Maybe RGBA)
    getTextTagUnderlineRgba o
    obj = IO (Maybe RGBA) -> m (Maybe RGBA)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (Maybe RGBA) -> m (Maybe RGBA))
    -> IO (Maybe RGBA) -> m (Maybe RGBA)
    forall a b. (a -> b) -> a -> b
    $ o -> String -> (ManagedPtr RGBA -> RGBA) -> IO (Maybe RGBA)
    forall a b.
    (GObject a, GBoxed b) =>
    a -> String -> (ManagedPtr b -> b) -> IO (Maybe b)
    B.Properties.getObjectPropertyBoxed o
    obj String
    "underline-rgba" ManagedPtr RGBA -> RGBA
    Gdk.RGBA.RGBA

    -- | Set the value of the “@underline-rgba@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #underlineRgba 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagUnderlineRgba :: (MonadIO m, IsTextTag o) => o -> Gdk.RGBA.RGBA -> m ()
    setTextTagUnderlineRgba :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> RGBA -> m ()
    setTextTagUnderlineRgba o
    obj RGBA
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Maybe RGBA -> IO ()
    forall a b.
    (GObject a, GBoxed b) =>
    a -> String -> Maybe b -> IO ()
    B.Properties.setObjectPropertyBoxed o
    obj String
    "underline-rgba" (RGBA -> Maybe RGBA
    forall a. a -> Maybe a
    Just RGBA
    val)

    -- | Construct a t'GValueConstruct' with valid value for the “@underline-rgba@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagUnderlineRgba :: (IsTextTag o, MIO.MonadIO m) => Gdk.RGBA.RGBA -> m (GValueConstruct o)
    constructTextTagUnderlineRgba :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    RGBA -> m (GValueConstruct o)
    constructTextTagUnderlineRgba RGBA
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Maybe RGBA -> IO (GValueConstruct o)
    forall a o. GBoxed a => String -> Maybe a -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBoxed String
    "underline-rgba" (RGBA -> Maybe RGBA
    forall a. a -> Maybe a
    P.Just RGBA
    val)

    -- | Set the value of the “@underline-rgba@” property to `Nothing`.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.clear' #underlineRgba
    -- @
    clearTextTagUnderlineRgba :: (MonadIO m, IsTextTag o) => o -> m ()
    clearTextTagUnderlineRgba :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m ()
    clearTextTagUnderlineRgba o
    obj = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ o -> String -> Maybe RGBA -> IO ()
    forall a b.
    (GObject a, GBoxed b) =>
    a -> String -> Maybe b -> IO ()
    B.Properties.setObjectPropertyBoxed o
    obj String
    "underline-rgba" (Maybe RGBA
    forall a. Maybe a
    Nothing :: Maybe Gdk.RGBA.RGBA)

    #if defined(ENABLE_OVERLOADING)
    data TextTagUnderlineRgbaPropertyInfo
    instance AttrInfo TextTagUnderlineRgbaPropertyInfo where
        type AttrAllowedOps TextTagUnderlineRgbaPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
        type AttrBaseTypeConstraint TextTagUnderlineRgbaPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagUnderlineRgbaPropertyInfo = (~) Gdk.RGBA.RGBA
        type AttrTransferTypeConstraint TextTagUnderlineRgbaPropertyInfo = (~) Gdk.RGBA.RGBA
        type AttrTransferType TextTagUnderlineRgbaPropertyInfo = Gdk.RGBA.RGBA
        type AttrGetType TextTagUnderlineRgbaPropertyInfo = (Maybe Gdk.RGBA.RGBA)
        type AttrLabel TextTagUnderlineRgbaPropertyInfo = "underline-rgba"
        type AttrOrigin TextTagUnderlineRgbaPropertyInfo = TextTag
        attrGet = getTextTagUnderlineRgba
        attrSet = setTextTagUnderlineRgba
        attrPut = undefined
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagUnderlineRgba
        attrClear = clearTextTagUnderlineRgba
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.underlineRgba"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:underlineRgba"
            })
    #endif

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

    -- | Get the value of the “@underline-rgba-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #underlineRgbaSet
    -- @
    getTextTagUnderlineRgbaSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagUnderlineRgbaSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagUnderlineRgbaSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "underline-rgba-set"

    -- | Set the value of the “@underline-rgba-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #underlineRgbaSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagUnderlineRgbaSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagUnderlineRgbaSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagUnderlineRgbaSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "underline-rgba-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@underline-rgba-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagUnderlineRgbaSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagUnderlineRgbaSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagUnderlineRgbaSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "underline-rgba-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagUnderlineRgbaSetPropertyInfo
    instance AttrInfo TextTagUnderlineRgbaSetPropertyInfo where
        type AttrAllowedOps TextTagUnderlineRgbaSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagUnderlineRgbaSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagUnderlineRgbaSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagUnderlineRgbaSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagUnderlineRgbaSetPropertyInfo = Bool
        type AttrGetType TextTagUnderlineRgbaSetPropertyInfo = Bool
        type AttrLabel TextTagUnderlineRgbaSetPropertyInfo = "underline-rgba-set"
        type AttrOrigin TextTagUnderlineRgbaSetPropertyInfo = TextTag
        attrGet = getTextTagUnderlineRgbaSet
        attrSet = setTextTagUnderlineRgbaSet
        attrPut = setTextTagUnderlineRgbaSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagUnderlineRgbaSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.underlineRgbaSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:underlineRgbaSet"
            })
    #endif

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

    -- | Get the value of the “@underline-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #underlineSet
    -- @
    getTextTagUnderlineSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagUnderlineSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagUnderlineSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "underline-set"

    -- | Set the value of the “@underline-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #underlineSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagUnderlineSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagUnderlineSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagUnderlineSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "underline-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@underline-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagUnderlineSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagUnderlineSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagUnderlineSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "underline-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagUnderlineSetPropertyInfo
    instance AttrInfo TextTagUnderlineSetPropertyInfo where
        type AttrAllowedOps TextTagUnderlineSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagUnderlineSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagUnderlineSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagUnderlineSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagUnderlineSetPropertyInfo = Bool
        type AttrGetType TextTagUnderlineSetPropertyInfo = Bool
        type AttrLabel TextTagUnderlineSetPropertyInfo = "underline-set"
        type AttrOrigin TextTagUnderlineSetPropertyInfo = TextTag
        attrGet = getTextTagUnderlineSet
        attrSet = setTextTagUnderlineSet
        attrPut = setTextTagUnderlineSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagUnderlineSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.underlineSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:underlineSet"
            })
    #endif

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

    -- | Get the value of the “@variant@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #variant
    -- @
    getTextTagVariant :: (MonadIO m, IsTextTag o) => o -> m Pango.Enums.Variant
    getTextTagVariant :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Variant
    getTextTagVariant o
    obj = IO Variant -> m Variant
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Variant -> m Variant) -> IO Variant -> m Variant
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Variant
    forall a b. (GObject a, Enum b, BoxedEnum b) => a -> String -> IO b
    B.Properties.getObjectPropertyEnum o
    obj String
    "variant"

    -- | Set the value of the “@variant@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #variant 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagVariant :: (MonadIO m, IsTextTag o) => o -> Pango.Enums.Variant -> m ()
    setTextTagVariant :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Variant -> m ()
    setTextTagVariant o
    obj Variant
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Variant -> IO ()
    forall a b.
    (GObject a, Enum b, BoxedEnum b) =>
    a -> String -> b -> IO ()
    B.Properties.setObjectPropertyEnum o
    obj String
    "variant" Variant
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@variant@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagVariant :: (IsTextTag o, MIO.MonadIO m) => Pango.Enums.Variant -> m (GValueConstruct o)
    constructTextTagVariant :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Variant -> m (GValueConstruct o)
    constructTextTagVariant Variant
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Variant -> IO (GValueConstruct o)
    forall a o.
    (Enum a, BoxedEnum a) =>
    String -> a -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyEnum String
    "variant" Variant
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagVariantPropertyInfo
    instance AttrInfo TextTagVariantPropertyInfo where
        type AttrAllowedOps TextTagVariantPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagVariantPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagVariantPropertyInfo = (~) Pango.Enums.Variant
        type AttrTransferTypeConstraint TextTagVariantPropertyInfo = (~) Pango.Enums.Variant
        type AttrTransferType TextTagVariantPropertyInfo = Pango.Enums.Variant
        type AttrGetType TextTagVariantPropertyInfo = Pango.Enums.Variant
        type AttrLabel TextTagVariantPropertyInfo = "variant"
        type AttrOrigin TextTagVariantPropertyInfo = TextTag
        attrGet = getTextTagVariant
        attrSet = setTextTagVariant
        attrPut = setTextTagVariant
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagVariant
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.variant"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:variant"
            })
    #endif

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

    -- | Get the value of the “@variant-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #variantSet
    -- @
    getTextTagVariantSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagVariantSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagVariantSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "variant-set"

    -- | Set the value of the “@variant-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #variantSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagVariantSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagVariantSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagVariantSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "variant-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@variant-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagVariantSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagVariantSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagVariantSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "variant-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagVariantSetPropertyInfo
    instance AttrInfo TextTagVariantSetPropertyInfo where
        type AttrAllowedOps TextTagVariantSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagVariantSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagVariantSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagVariantSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagVariantSetPropertyInfo = Bool
        type AttrGetType TextTagVariantSetPropertyInfo = Bool
        type AttrLabel TextTagVariantSetPropertyInfo = "variant-set"
        type AttrOrigin TextTagVariantSetPropertyInfo = TextTag
        attrGet = getTextTagVariantSet
        attrSet = setTextTagVariantSet
        attrPut = setTextTagVariantSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagVariantSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.variantSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:variantSet"
            })
    #endif

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

    -- | Get the value of the “@weight@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #weight
    -- @
    getTextTagWeight :: (MonadIO m, IsTextTag o) => o -> m Int32
    getTextTagWeight :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Int32
    getTextTagWeight o
    obj = IO Int32 -> m Int32
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Int32
    forall a. GObject a => a -> String -> IO Int32
    B.Properties.getObjectPropertyInt32 o
    obj String
    "weight"

    -- | Set the value of the “@weight@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #weight 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagWeight :: (MonadIO m, IsTextTag o) => o -> Int32 -> m ()
    setTextTagWeight :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Int32 -> m ()
    setTextTagWeight o
    obj Int32
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Int32 -> IO ()
    forall a. GObject a => a -> String -> Int32 -> IO ()
    B.Properties.setObjectPropertyInt32 o
    obj String
    "weight" Int32
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@weight@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagWeight :: (IsTextTag o, MIO.MonadIO m) => Int32 -> m (GValueConstruct o)
    constructTextTagWeight :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Int32 -> m (GValueConstruct o)
    constructTextTagWeight Int32
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Int32 -> IO (GValueConstruct o)
    forall o. String -> Int32 -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyInt32 String
    "weight" Int32
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagWeightPropertyInfo
    instance AttrInfo TextTagWeightPropertyInfo where
        type AttrAllowedOps TextTagWeightPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagWeightPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagWeightPropertyInfo = (~) Int32
        type AttrTransferTypeConstraint TextTagWeightPropertyInfo = (~) Int32
        type AttrTransferType TextTagWeightPropertyInfo = Int32
        type AttrGetType TextTagWeightPropertyInfo = Int32
        type AttrLabel TextTagWeightPropertyInfo = "weight"
        type AttrOrigin TextTagWeightPropertyInfo = TextTag
        attrGet = getTextTagWeight
        attrSet = setTextTagWeight
        attrPut = setTextTagWeight
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagWeight
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.weight"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:weight"
            })
    #endif

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

    -- | Get the value of the “@weight-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #weightSet
    -- @
    getTextTagWeightSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagWeightSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagWeightSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "weight-set"

    -- | Set the value of the “@weight-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #weightSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagWeightSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagWeightSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagWeightSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "weight-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@weight-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagWeightSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagWeightSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagWeightSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "weight-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagWeightSetPropertyInfo
    instance AttrInfo TextTagWeightSetPropertyInfo where
        type AttrAllowedOps TextTagWeightSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagWeightSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagWeightSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagWeightSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagWeightSetPropertyInfo = Bool
        type AttrGetType TextTagWeightSetPropertyInfo = Bool
        type AttrLabel TextTagWeightSetPropertyInfo = "weight-set"
        type AttrOrigin TextTagWeightSetPropertyInfo = TextTag
        attrGet = getTextTagWeightSet
        attrSet = setTextTagWeightSet
        attrPut = setTextTagWeightSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagWeightSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.weightSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:weightSet"
            })
    #endif

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

    -- | Get the value of the “@word@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #word
    -- @
    getTextTagWord :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagWord :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagWord o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "word"

    -- | Set the value of the “@word@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #word 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagWord :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagWord :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagWord o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "word" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@word@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagWord :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagWord :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagWord Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "word" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagWordPropertyInfo
    instance AttrInfo TextTagWordPropertyInfo where
        type AttrAllowedOps TextTagWordPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagWordPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagWordPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagWordPropertyInfo = (~) Bool
        type AttrTransferType TextTagWordPropertyInfo = Bool
        type AttrGetType TextTagWordPropertyInfo = Bool
        type AttrLabel TextTagWordPropertyInfo = "word"
        type AttrOrigin TextTagWordPropertyInfo = TextTag
        attrGet = getTextTagWord
        attrSet = setTextTagWord
        attrPut = setTextTagWord
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagWord
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.word"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:word"
            })
    #endif

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

    -- | Get the value of the “@word-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #wordSet
    -- @
    getTextTagWordSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagWordSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagWordSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "word-set"

    -- | Set the value of the “@word-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #wordSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagWordSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagWordSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagWordSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "word-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@word-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagWordSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagWordSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagWordSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "word-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagWordSetPropertyInfo
    instance AttrInfo TextTagWordSetPropertyInfo where
        type AttrAllowedOps TextTagWordSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagWordSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagWordSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagWordSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagWordSetPropertyInfo = Bool
        type AttrGetType TextTagWordSetPropertyInfo = Bool
        type AttrLabel TextTagWordSetPropertyInfo = "word-set"
        type AttrOrigin TextTagWordSetPropertyInfo = TextTag
        attrGet = getTextTagWordSet
        attrSet = setTextTagWordSet
        attrPut = setTextTagWordSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagWordSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.wordSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:wordSet"
            })
    #endif

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

    -- | Get the value of the “@wrap-mode@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #wrapMode
    -- @
    getTextTagWrapMode :: (MonadIO m, IsTextTag o) => o -> m Gtk.Enums.WrapMode
    getTextTagWrapMode :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m WrapMode
    getTextTagWrapMode o
    obj = IO WrapMode -> m WrapMode
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO WrapMode -> m WrapMode) -> IO WrapMode -> m WrapMode
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO WrapMode
    forall a b. (GObject a, Enum b, BoxedEnum b) => a -> String -> IO b
    B.Properties.getObjectPropertyEnum o
    obj String
    "wrap-mode"

    -- | Set the value of the “@wrap-mode@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #wrapMode 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagWrapMode :: (MonadIO m, IsTextTag o) => o -> Gtk.Enums.WrapMode -> m ()
    setTextTagWrapMode :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> WrapMode -> m ()
    setTextTagWrapMode o
    obj WrapMode
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> WrapMode -> IO ()
    forall a b.
    (GObject a, Enum b, BoxedEnum b) =>
    a -> String -> b -> IO ()
    B.Properties.setObjectPropertyEnum o
    obj String
    "wrap-mode" WrapMode
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@wrap-mode@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagWrapMode :: (IsTextTag o, MIO.MonadIO m) => Gtk.Enums.WrapMode -> m (GValueConstruct o)
    constructTextTagWrapMode :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    WrapMode -> m (GValueConstruct o)
    constructTextTagWrapMode WrapMode
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> WrapMode -> IO (GValueConstruct o)
    forall a o.
    (Enum a, BoxedEnum a) =>
    String -> a -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyEnum String
    "wrap-mode" WrapMode
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagWrapModePropertyInfo
    instance AttrInfo TextTagWrapModePropertyInfo where
        type AttrAllowedOps TextTagWrapModePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagWrapModePropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagWrapModePropertyInfo = (~) Gtk.Enums.WrapMode
        type AttrTransferTypeConstraint TextTagWrapModePropertyInfo = (~) Gtk.Enums.WrapMode
        type AttrTransferType TextTagWrapModePropertyInfo = Gtk.Enums.WrapMode
        type AttrGetType TextTagWrapModePropertyInfo = Gtk.Enums.WrapMode
        type AttrLabel TextTagWrapModePropertyInfo = "wrap-mode"
        type AttrOrigin TextTagWrapModePropertyInfo = TextTag
        attrGet = getTextTagWrapMode
        attrSet = setTextTagWrapMode
        attrPut = setTextTagWrapMode
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagWrapMode
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.wrapMode"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:wrapMode"
            })
    #endif

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

    -- | Get the value of the “@wrap-mode-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' textTag #wrapModeSet
    -- @
    getTextTagWrapModeSet :: (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagWrapModeSet :: forall (m :: * -> *) o. (MonadIO m, IsTextTag o) => o -> m Bool
    getTextTagWrapModeSet o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "wrap-mode-set"

    -- | Set the value of the “@wrap-mode-set@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.set' textTag [ #wrapModeSet 'Data.GI.Base.Attributes.:=' value ]
    -- @
    setTextTagWrapModeSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
    setTextTagWrapModeSet :: forall (m :: * -> *) o.
    (MonadIO m, IsTextTag o) =>
    o -> Bool -> m ()
    setTextTagWrapModeSet o
    obj Bool
    val = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        o -> String -> Bool -> IO ()
    forall a. GObject a => a -> String -> Bool -> IO ()
    B.Properties.setObjectPropertyBool o
    obj String
    "wrap-mode-set" Bool
    val

    -- | Construct a t'GValueConstruct' with valid value for the “@wrap-mode-set@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructTextTagWrapModeSet :: (IsTextTag o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
    constructTextTagWrapModeSet :: forall o (m :: * -> *).
    (IsTextTag o, MonadIO m) =>
    Bool -> m (GValueConstruct o)
    constructTextTagWrapModeSet Bool
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Bool -> IO (GValueConstruct o)
    forall o. String -> Bool -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyBool String
    "wrap-mode-set" Bool
    val

    #if defined(ENABLE_OVERLOADING)
    data TextTagWrapModeSetPropertyInfo
    instance AttrInfo TextTagWrapModeSetPropertyInfo where
        type AttrAllowedOps TextTagWrapModeSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrPut]
        type AttrBaseTypeConstraint TextTagWrapModeSetPropertyInfo = IsTextTag
        type AttrSetTypeConstraint TextTagWrapModeSetPropertyInfo = (~) Bool
        type AttrTransferTypeConstraint TextTagWrapModeSetPropertyInfo = (~) Bool
        type AttrTransferType TextTagWrapModeSetPropertyInfo = Bool
        type AttrGetType TextTagWrapModeSetPropertyInfo = Bool
        type AttrLabel TextTagWrapModeSetPropertyInfo = "wrap-mode-set"
        type AttrOrigin TextTagWrapModeSetPropertyInfo = TextTag
        attrGet = getTextTagWrapModeSet
        attrSet = setTextTagWrapModeSet
        attrPut = setTextTagWrapModeSet
        attrTransfer _ v = do
            return v
        attrConstruct = constructTextTagWrapModeSet
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.wrapModeSet"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#g:attr:wrapModeSet"
            })
    #endif

    #if defined(ENABLE_OVERLOADING)
    instance O.HasAttributeList TextTag
    type instance O.AttributeList TextTag = TextTagAttributeList
    type TextTagAttributeList = ('[ '("accumulativeMargin", TextTagAccumulativeMarginPropertyInfo), '("allowBreaks", TextTagAllowBreaksPropertyInfo), '("allowBreaksSet", TextTagAllowBreaksSetPropertyInfo), '("background", TextTagBackgroundPropertyInfo), '("backgroundFullHeight", TextTagBackgroundFullHeightPropertyInfo), '("backgroundFullHeightSet", TextTagBackgroundFullHeightSetPropertyInfo), '("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), '("foregroundRgba", TextTagForegroundRgbaPropertyInfo), '("foregroundSet", TextTagForegroundSetPropertyInfo), '("indent", TextTagIndentPropertyInfo), '("indentSet", TextTagIndentSetPropertyInfo), '("insertHyphens", TextTagInsertHyphensPropertyInfo), '("insertHyphensSet", TextTagInsertHyphensSetPropertyInfo), '("invisible", TextTagInvisiblePropertyInfo), '("invisibleSet", TextTagInvisibleSetPropertyInfo), '("justification", TextTagJustificationPropertyInfo), '("justificationSet", TextTagJustificationSetPropertyInfo), '("language", TextTagLanguagePropertyInfo), '("languageSet", TextTagLanguageSetPropertyInfo), '("leftMargin", TextTagLeftMarginPropertyInfo), '("leftMarginSet", TextTagLeftMarginSetPropertyInfo), '("letterSpacing", TextTagLetterSpacingPropertyInfo), '("letterSpacingSet", TextTagLetterSpacingSetPropertyInfo), '("lineHeight", TextTagLineHeightPropertyInfo), '("lineHeightSet", TextTagLineHeightSetPropertyInfo), '("name", TextTagNamePropertyInfo), '("overline", TextTagOverlinePropertyInfo), '("overlineRgba", TextTagOverlineRgbaPropertyInfo), '("overlineRgbaSet", TextTagOverlineRgbaSetPropertyInfo), '("overlineSet", TextTagOverlineSetPropertyInfo), '("paragraphBackground", TextTagParagraphBackgroundPropertyInfo), '("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), '("sentence", TextTagSentencePropertyInfo), '("sentenceSet", TextTagSentenceSetPropertyInfo), '("showSpaces", TextTagShowSpacesPropertyInfo), '("showSpacesSet", TextTagShowSpacesSetPropertyInfo), '("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), '("textTransform", TextTagTextTransformPropertyInfo), '("textTransformSet", TextTagTextTransformSetPropertyInfo), '("underline", TextTagUnderlinePropertyInfo), '("underlineRgba", TextTagUnderlineRgbaPropertyInfo), '("underlineRgbaSet", TextTagUnderlineRgbaSetPropertyInfo), '("underlineSet", TextTagUnderlineSetPropertyInfo), '("variant", TextTagVariantPropertyInfo), '("variantSet", TextTagVariantSetPropertyInfo), '("weight", TextTagWeightPropertyInfo), '("weightSet", TextTagWeightSetPropertyInfo), '("word", TextTagWordPropertyInfo), '("wordSet", TextTagWordSetPropertyInfo), '("wrapMode", TextTagWrapModePropertyInfo), '("wrapModeSet", TextTagWrapModeSetPropertyInfo)] :: [(Symbol, DK.Type)])
    #endif

    #if defined(ENABLE_OVERLOADING)
    textTagAccumulativeMargin :: AttrLabelProxy "accumulativeMargin"
    textTagAccumulativeMargin = AttrLabelProxy

    textTagAllowBreaks :: AttrLabelProxy "allowBreaks"
    textTagAllowBreaks = AttrLabelProxy

    textTagAllowBreaksSet :: AttrLabelProxy "allowBreaksSet"
    textTagAllowBreaksSet = AttrLabelProxy

    textTagBackground :: AttrLabelProxy "background"
    textTagBackground = AttrLabelProxy

    textTagBackgroundFullHeight :: AttrLabelProxy "backgroundFullHeight"
    textTagBackgroundFullHeight = AttrLabelProxy

    textTagBackgroundFullHeightSet :: AttrLabelProxy "backgroundFullHeightSet"
    textTagBackgroundFullHeightSet = 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

    textTagForegroundRgba :: AttrLabelProxy "foregroundRgba"
    textTagForegroundRgba = AttrLabelProxy

    textTagForegroundSet :: AttrLabelProxy "foregroundSet"
    textTagForegroundSet = AttrLabelProxy

    textTagIndent :: AttrLabelProxy "indent"
    textTagIndent = AttrLabelProxy

    textTagIndentSet :: AttrLabelProxy "indentSet"
    textTagIndentSet = AttrLabelProxy

    textTagInsertHyphens :: AttrLabelProxy "insertHyphens"
    textTagInsertHyphens = AttrLabelProxy

    textTagInsertHyphensSet :: AttrLabelProxy "insertHyphensSet"
    textTagInsertHyphensSet = 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

    textTagLineHeight :: AttrLabelProxy "lineHeight"
    textTagLineHeight = AttrLabelProxy

    textTagLineHeightSet :: AttrLabelProxy "lineHeightSet"
    textTagLineHeightSet = AttrLabelProxy

    textTagName :: AttrLabelProxy "name"
    textTagName = AttrLabelProxy

    textTagOverline :: AttrLabelProxy "overline"
    textTagOverline = AttrLabelProxy

    textTagOverlineRgba :: AttrLabelProxy "overlineRgba"
    textTagOverlineRgba = AttrLabelProxy

    textTagOverlineRgbaSet :: AttrLabelProxy "overlineRgbaSet"
    textTagOverlineRgbaSet = AttrLabelProxy

    textTagOverlineSet :: AttrLabelProxy "overlineSet"
    textTagOverlineSet = AttrLabelProxy

    textTagParagraphBackground :: AttrLabelProxy "paragraphBackground"
    textTagParagraphBackground = 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

    textTagSentence :: AttrLabelProxy "sentence"
    textTagSentence = AttrLabelProxy

    textTagSentenceSet :: AttrLabelProxy "sentenceSet"
    textTagSentenceSet = AttrLabelProxy

    textTagShowSpaces :: AttrLabelProxy "showSpaces"
    textTagShowSpaces = AttrLabelProxy

    textTagShowSpacesSet :: AttrLabelProxy "showSpacesSet"
    textTagShowSpacesSet = 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

    textTagTextTransform :: AttrLabelProxy "textTransform"
    textTagTextTransform = AttrLabelProxy

    textTagTextTransformSet :: AttrLabelProxy "textTransformSet"
    textTagTextTransformSet = 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

    textTagWord :: AttrLabelProxy "word"
    textTagWord = AttrLabelProxy

    textTagWordSet :: AttrLabelProxy "wordSet"
    textTagWordSet = AttrLabelProxy

    textTagWrapMode :: AttrLabelProxy "wrapMode"
    textTagWrapMode = AttrLabelProxy

    textTagWrapModeSet :: AttrLabelProxy "wrapModeSet"
    textTagWrapModeSet = AttrLabelProxy

    #endif

    #if defined(ENABLE_OVERLOADING)
    type instance O.SignalList TextTag = TextTagSignalList
    type TextTagSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, DK.Type)])

    #endif

    -- method TextTag::new
    -- method type : Constructor
    -- Args: [ Arg
    --           { argCName = "name"
    --           , argType = TBasicType TUTF8
    --           , argCType = Just "const char*"
    --           , direction = DirectionIn
    --           , mayBeNull = True
    --           , argDoc =
    --               Documentation
    --                 { rawDocText = Just "tag name" , sinceVersion = Nothing }
    --           , argScope = ScopeTypeInvalid
    --           , argClosure = -1
    --           , argDestroy = -1
    --           , argCallerAllocates = False
    --           , argCallbackUserData = 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 @GtkTextTag@.
    textTagNew ::
        (B.CallStack.HasCallStack, MonadIO m) =>
        Maybe (T.Text)
        -- ^ /@name@/: tag name
        -> m TextTag
        -- ^ __Returns:__ a new @GtkTextTag@
    textTagNew :: forall (m :: * -> *).
    (HasCallStack, MonadIO m) =>
    Maybe Text -> m TextTag
    textTagNew Maybe Text
    name = IO TextTag -> m TextTag
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO TextTag -> m TextTag) -> IO TextTag -> m TextTag
    forall a b. (a -> b) -> a -> b
    $ do
        maybeName <- case Maybe Text
    name of
            Maybe Text
    Nothing -> Ptr CChar -> IO (Ptr CChar)
    forall a. a -> IO a
    forall (m :: * -> *) a. Monad m => a -> m a
    return Ptr CChar
    forall a. Ptr a
    FP.nullPtr
            Just Text
    jName -> do
                jName' <- Text -> IO (Ptr CChar)
    textToCString Text
    jName
                return jName'
        result <- gtk_text_tag_new maybeName
        checkUnexpectedReturnNULL "textTagNew" result
        result' <- (wrapObject TextTag) result
        freeMem maybeName
        return result'

    #if defined(ENABLE_OVERLOADING)
    #endif

    -- method TextTag::changed
    -- method type : OrdinaryMethod
    -- Args: [ Arg
    --           { argCName = "tag"
    --           , argType =
    --               TInterface Name { namespace = "Gtk" , name = "TextTag" }
    --           , argCType = Just "GtkTextTag*"
    --           , direction = DirectionIn
    --           , mayBeNull = False
    --           , argDoc =
    --               Documentation
    --                 { rawDocText = Just "a `GtkTextTag`" , sinceVersion = Nothing }
    --           , argScope = ScopeTypeInvalid
    --           , argClosure = -1
    --           , argDestroy = -1
    --           , argCallerAllocates = False
    --           , argCallbackUserData = False
    --           , transfer = TransferNothing
    --           }
    --       , Arg
    --           { argCName = "size_changed"
    --           , argType = TBasicType TBoolean
    --           , argCType = Just "gboolean"
    --           , 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
    --           , argCallbackUserData = 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 [TextTagTable::tagChanged]("GI.Gtk.Objects.TextTagTable#g:signal:tagChanged") signal on the
    -- @GtkTextTagTable@ where the tag is included.
    --
    -- The signal is already emitted when setting a @GtkTextTag@ property.
    -- This function is useful for a @GtkTextTag@ subclass.
    textTagChanged ::
        (B.CallStack.HasCallStack, MonadIO m, IsTextTag a) =>
        a
        -- ^ /@tag@/: a @GtkTextTag@
        -> Bool
        -- ^ /@sizeChanged@/: whether the change affects the @GtkTextView@ layout
        -> m ()
    textTagChanged :: forall (m :: * -> *) a.
    (HasCallStack, MonadIO m, IsTextTag a) =>
    a -> Bool -> m ()
    textTagChanged a
    tag Bool
    sizeChanged = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        tag' <- a -> IO (Ptr TextTag)
    forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
    unsafeManagedPtrCastPtr a
    tag
        let sizeChanged' = (Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    P.fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . Bool -> Int
    forall a. Enum a => a -> Int
    P.fromEnum) Bool
    sizeChanged
        gtk_text_tag_changed tag' sizeChanged'
        touchManagedPtr tag
        return ()

    #if defined(ENABLE_OVERLOADING)
    data TextTagChangedMethodInfo
    instance (signature ~ (Bool -> m ()), MonadIO m, IsTextTag a) => O.OverloadedMethod TextTagChangedMethodInfo a signature where
        overloadedMethod = textTagChanged

    instance O.OverloadedMethodInfo TextTagChangedMethodInfo a where
        overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.textTagChanged",
            O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#v:textTagChanged"
            })

    #endif

    -- method TextTag::get_priority
    -- method type : OrdinaryMethod
    -- Args: [ Arg
    --           { argCName = "tag"
    --           , argType =
    --               TInterface Name { namespace = "Gtk" , name = "TextTag" }
    --           , argCType = Just "GtkTextTag*"
    --           , direction = DirectionIn
    --           , mayBeNull = False
    --           , argDoc =
    --               Documentation
    --                 { rawDocText = Just "a `GtkTextTag`" , sinceVersion = Nothing }
    --           , argScope = ScopeTypeInvalid
    --           , argClosure = -1
    --           , argDestroy = -1
    --           , argCallerAllocates = False
    --           , argCallbackUserData = 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 @GtkTextTag@
        -> m Int32
        -- ^ __Returns:__ The tag’s priority.
    textTagGetPriority :: forall (m :: * -> *) a.
    (HasCallStack, MonadIO m, IsTextTag a) =>
    a -> m Int32
    textTagGetPriority a
    tag = IO Int32 -> m Int32
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
    forall a b. (a -> b) -> a -> b
    $ do
        tag' <- a -> IO (Ptr TextTag)
    forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
    unsafeManagedPtrCastPtr a
    tag
        result <- gtk_text_tag_get_priority tag'
        touchManagedPtr tag
        return result

    #if defined(ENABLE_OVERLOADING)
    data TextTagGetPriorityMethodInfo
    instance (signature ~ (m Int32), MonadIO m, IsTextTag a) => O.OverloadedMethod TextTagGetPriorityMethodInfo a signature where
        overloadedMethod = textTagGetPriority

    instance O.OverloadedMethodInfo TextTagGetPriorityMethodInfo a where
        overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.textTagGetPriority",
            O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#v:textTagGetPriority"
            })

    #endif

    -- method TextTag::set_priority
    -- method type : OrdinaryMethod
    -- Args: [ Arg
    --           { argCName = "tag"
    --           , argType =
    --               TInterface Name { namespace = "Gtk" , name = "TextTag" }
    --           , argCType = Just "GtkTextTag*"
    --           , direction = DirectionIn
    --           , mayBeNull = False
    --           , argDoc =
    --               Documentation
    --                 { rawDocText = Just "a `GtkTextTag`" , sinceVersion = Nothing }
    --           , argScope = ScopeTypeInvalid
    --           , argClosure = -1
    --           , argDestroy = -1
    --           , argCallerAllocates = False
    --           , argCallbackUserData = False
    --           , transfer = TransferNothing
    --           }
    --       , Arg
    --           { argCName = "priority"
    --           , argType = TBasicType TInt
    --           , argCType = Just "int"
    --           , direction = DirectionIn
    --           , mayBeNull = False
    --           , argDoc =
    --               Documentation
    --                 { rawDocText = Just "the new priority" , sinceVersion = Nothing }
    --           , argScope = ScopeTypeInvalid
    --           , argClosure = -1
    --           , argDestroy = -1
    --           , argCallerAllocates = False
    --           , argCallbackUserData = 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 @GtkTextTag@.
    --
    -- 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 t'GI.Gtk.Objects.TextBuffer.TextBuffer'.@/create_tag/@(),
    -- which adds the tag to the buffer’s table automatically.
    textTagSetPriority ::
        (B.CallStack.HasCallStack, MonadIO m, IsTextTag a) =>
        a
        -- ^ /@tag@/: a @GtkTextTag@
        -> Int32
        -- ^ /@priority@/: the new priority
        -> m ()
    textTagSetPriority :: forall (m :: * -> *) a.
    (HasCallStack, MonadIO m, IsTextTag a) =>
    a -> Int32 -> m ()
    textTagSetPriority a
    tag Int32
    priority = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ do
        tag' <- a -> IO (Ptr TextTag)
    forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
    unsafeManagedPtrCastPtr a
    tag
        gtk_text_tag_set_priority tag' priority
        touchManagedPtr tag
        return ()

    #if defined(ENABLE_OVERLOADING)
    data TextTagSetPriorityMethodInfo
    instance (signature ~ (Int32 -> m ()), MonadIO m, IsTextTag a) => O.OverloadedMethod TextTagSetPriorityMethodInfo a signature where
        overloadedMethod = textTagSetPriority

    instance O.OverloadedMethodInfo TextTagSetPriorityMethodInfo a where
        overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gtk.Objects.TextTag.textTagSetPriority",
            O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk4-4.0.12/docs/GI-Gtk-Objects-TextTag.html#v:textTagSetPriority"
            })

    #endif