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

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

= CSS nodes


=== /plain code/
>
>textview.view
>├── border.top
>├── border.left
>├── text
>│   ╰── [selection]
>├── border.right
>├── border.bottom
>╰── [window.popup]


GtkTextView has a main css node with name textview and style class .view,
and subnodes for each of the border windows, and the main text area,
with names border and text, respectively. The border nodes each get
one of the style classes .left, .right, .top or .bottom.

A node representing the selection will appear below the text node.

If a context menu is opened, the window node will appear as a subnode
of the main node.
-}

module GI.Gtk.Objects.TextView
    ( 

-- * Exported types
    TextView(..)                            ,
    IsTextView                              ,
    toTextView                              ,
    noTextView                              ,


 -- * Methods
-- ** addChildAtAnchor #method:addChildAtAnchor#
    TextViewAddChildAtAnchorMethodInfo      ,
    textViewAddChildAtAnchor                ,


-- ** addChildInWindow #method:addChildInWindow#
    TextViewAddChildInWindowMethodInfo      ,
    textViewAddChildInWindow                ,


-- ** backwardDisplayLine #method:backwardDisplayLine#
    TextViewBackwardDisplayLineMethodInfo   ,
    textViewBackwardDisplayLine             ,


-- ** backwardDisplayLineStart #method:backwardDisplayLineStart#
    TextViewBackwardDisplayLineStartMethodInfo,
    textViewBackwardDisplayLineStart        ,


-- ** bufferToWindowCoords #method:bufferToWindowCoords#
    TextViewBufferToWindowCoordsMethodInfo  ,
    textViewBufferToWindowCoords            ,


-- ** forwardDisplayLine #method:forwardDisplayLine#
    TextViewForwardDisplayLineMethodInfo    ,
    textViewForwardDisplayLine              ,


-- ** forwardDisplayLineEnd #method:forwardDisplayLineEnd#
    TextViewForwardDisplayLineEndMethodInfo ,
    textViewForwardDisplayLineEnd           ,


-- ** getAcceptsTab #method:getAcceptsTab#
    TextViewGetAcceptsTabMethodInfo         ,
    textViewGetAcceptsTab                   ,


-- ** getBorderWindowSize #method:getBorderWindowSize#
    TextViewGetBorderWindowSizeMethodInfo   ,
    textViewGetBorderWindowSize             ,


-- ** getBottomMargin #method:getBottomMargin#
    TextViewGetBottomMarginMethodInfo       ,
    textViewGetBottomMargin                 ,


-- ** getBuffer #method:getBuffer#
    TextViewGetBufferMethodInfo             ,
    textViewGetBuffer                       ,


-- ** getCursorLocations #method:getCursorLocations#
    TextViewGetCursorLocationsMethodInfo    ,
    textViewGetCursorLocations              ,


-- ** getCursorVisible #method:getCursorVisible#
    TextViewGetCursorVisibleMethodInfo      ,
    textViewGetCursorVisible                ,


-- ** getDefaultAttributes #method:getDefaultAttributes#
    TextViewGetDefaultAttributesMethodInfo  ,
    textViewGetDefaultAttributes            ,


-- ** getEditable #method:getEditable#
    TextViewGetEditableMethodInfo           ,
    textViewGetEditable                     ,


-- ** getHadjustment #method:getHadjustment#
    TextViewGetHadjustmentMethodInfo        ,
    textViewGetHadjustment                  ,


-- ** getIndent #method:getIndent#
    TextViewGetIndentMethodInfo             ,
    textViewGetIndent                       ,


-- ** getInputHints #method:getInputHints#
    TextViewGetInputHintsMethodInfo         ,
    textViewGetInputHints                   ,


-- ** getInputPurpose #method:getInputPurpose#
    TextViewGetInputPurposeMethodInfo       ,
    textViewGetInputPurpose                 ,


-- ** getIterAtLocation #method:getIterAtLocation#
    TextViewGetIterAtLocationMethodInfo     ,
    textViewGetIterAtLocation               ,


-- ** getIterAtPosition #method:getIterAtPosition#
    TextViewGetIterAtPositionMethodInfo     ,
    textViewGetIterAtPosition               ,


-- ** getIterLocation #method:getIterLocation#
    TextViewGetIterLocationMethodInfo       ,
    textViewGetIterLocation                 ,


-- ** getJustification #method:getJustification#
    TextViewGetJustificationMethodInfo      ,
    textViewGetJustification                ,


-- ** getLeftMargin #method:getLeftMargin#
    TextViewGetLeftMarginMethodInfo         ,
    textViewGetLeftMargin                   ,


-- ** getLineAtY #method:getLineAtY#
    TextViewGetLineAtYMethodInfo            ,
    textViewGetLineAtY                      ,


-- ** getLineYrange #method:getLineYrange#
    TextViewGetLineYrangeMethodInfo         ,
    textViewGetLineYrange                   ,


-- ** getMonospace #method:getMonospace#
    TextViewGetMonospaceMethodInfo          ,
    textViewGetMonospace                    ,


-- ** getOverwrite #method:getOverwrite#
    TextViewGetOverwriteMethodInfo          ,
    textViewGetOverwrite                    ,


-- ** getPixelsAboveLines #method:getPixelsAboveLines#
    TextViewGetPixelsAboveLinesMethodInfo   ,
    textViewGetPixelsAboveLines             ,


-- ** getPixelsBelowLines #method:getPixelsBelowLines#
    TextViewGetPixelsBelowLinesMethodInfo   ,
    textViewGetPixelsBelowLines             ,


-- ** getPixelsInsideWrap #method:getPixelsInsideWrap#
    TextViewGetPixelsInsideWrapMethodInfo   ,
    textViewGetPixelsInsideWrap             ,


-- ** getRightMargin #method:getRightMargin#
    TextViewGetRightMarginMethodInfo        ,
    textViewGetRightMargin                  ,


-- ** getTabs #method:getTabs#
    TextViewGetTabsMethodInfo               ,
    textViewGetTabs                         ,


-- ** getTopMargin #method:getTopMargin#
    TextViewGetTopMarginMethodInfo          ,
    textViewGetTopMargin                    ,


-- ** getVadjustment #method:getVadjustment#
    TextViewGetVadjustmentMethodInfo        ,
    textViewGetVadjustment                  ,


-- ** getVisibleRect #method:getVisibleRect#
    TextViewGetVisibleRectMethodInfo        ,
    textViewGetVisibleRect                  ,


-- ** getWindow #method:getWindow#
    TextViewGetWindowMethodInfo             ,
    textViewGetWindow                       ,


-- ** getWindowType #method:getWindowType#
    TextViewGetWindowTypeMethodInfo         ,
    textViewGetWindowType                   ,


-- ** getWrapMode #method:getWrapMode#
    TextViewGetWrapModeMethodInfo           ,
    textViewGetWrapMode                     ,


-- ** imContextFilterKeypress #method:imContextFilterKeypress#
    TextViewImContextFilterKeypressMethodInfo,
    textViewImContextFilterKeypress         ,


-- ** moveChild #method:moveChild#
    TextViewMoveChildMethodInfo             ,
    textViewMoveChild                       ,


-- ** moveMarkOnscreen #method:moveMarkOnscreen#
    TextViewMoveMarkOnscreenMethodInfo      ,
    textViewMoveMarkOnscreen                ,


-- ** moveVisually #method:moveVisually#
    TextViewMoveVisuallyMethodInfo          ,
    textViewMoveVisually                    ,


-- ** new #method:new#
    textViewNew                             ,


-- ** newWithBuffer #method:newWithBuffer#
    textViewNewWithBuffer                   ,


-- ** placeCursorOnscreen #method:placeCursorOnscreen#
    TextViewPlaceCursorOnscreenMethodInfo   ,
    textViewPlaceCursorOnscreen             ,


-- ** resetCursorBlink #method:resetCursorBlink#
    TextViewResetCursorBlinkMethodInfo      ,
    textViewResetCursorBlink                ,


-- ** resetImContext #method:resetImContext#
    TextViewResetImContextMethodInfo        ,
    textViewResetImContext                  ,


-- ** scrollMarkOnscreen #method:scrollMarkOnscreen#
    TextViewScrollMarkOnscreenMethodInfo    ,
    textViewScrollMarkOnscreen              ,


-- ** scrollToIter #method:scrollToIter#
    TextViewScrollToIterMethodInfo          ,
    textViewScrollToIter                    ,


-- ** scrollToMark #method:scrollToMark#
    TextViewScrollToMarkMethodInfo          ,
    textViewScrollToMark                    ,


-- ** setAcceptsTab #method:setAcceptsTab#
    TextViewSetAcceptsTabMethodInfo         ,
    textViewSetAcceptsTab                   ,


-- ** setBorderWindowSize #method:setBorderWindowSize#
    TextViewSetBorderWindowSizeMethodInfo   ,
    textViewSetBorderWindowSize             ,


-- ** setBottomMargin #method:setBottomMargin#
    TextViewSetBottomMarginMethodInfo       ,
    textViewSetBottomMargin                 ,


-- ** setBuffer #method:setBuffer#
    TextViewSetBufferMethodInfo             ,
    textViewSetBuffer                       ,


-- ** setCursorVisible #method:setCursorVisible#
    TextViewSetCursorVisibleMethodInfo      ,
    textViewSetCursorVisible                ,


-- ** setEditable #method:setEditable#
    TextViewSetEditableMethodInfo           ,
    textViewSetEditable                     ,


-- ** setIndent #method:setIndent#
    TextViewSetIndentMethodInfo             ,
    textViewSetIndent                       ,


-- ** setInputHints #method:setInputHints#
    TextViewSetInputHintsMethodInfo         ,
    textViewSetInputHints                   ,


-- ** setInputPurpose #method:setInputPurpose#
    TextViewSetInputPurposeMethodInfo       ,
    textViewSetInputPurpose                 ,


-- ** setJustification #method:setJustification#
    TextViewSetJustificationMethodInfo      ,
    textViewSetJustification                ,


-- ** setLeftMargin #method:setLeftMargin#
    TextViewSetLeftMarginMethodInfo         ,
    textViewSetLeftMargin                   ,


-- ** setMonospace #method:setMonospace#
    TextViewSetMonospaceMethodInfo          ,
    textViewSetMonospace                    ,


-- ** setOverwrite #method:setOverwrite#
    TextViewSetOverwriteMethodInfo          ,
    textViewSetOverwrite                    ,


-- ** setPixelsAboveLines #method:setPixelsAboveLines#
    TextViewSetPixelsAboveLinesMethodInfo   ,
    textViewSetPixelsAboveLines             ,


-- ** setPixelsBelowLines #method:setPixelsBelowLines#
    TextViewSetPixelsBelowLinesMethodInfo   ,
    textViewSetPixelsBelowLines             ,


-- ** setPixelsInsideWrap #method:setPixelsInsideWrap#
    TextViewSetPixelsInsideWrapMethodInfo   ,
    textViewSetPixelsInsideWrap             ,


-- ** setRightMargin #method:setRightMargin#
    TextViewSetRightMarginMethodInfo        ,
    textViewSetRightMargin                  ,


-- ** setTabs #method:setTabs#
    TextViewSetTabsMethodInfo               ,
    textViewSetTabs                         ,


-- ** setTopMargin #method:setTopMargin#
    TextViewSetTopMarginMethodInfo          ,
    textViewSetTopMargin                    ,


-- ** setWrapMode #method:setWrapMode#
    TextViewSetWrapModeMethodInfo           ,
    textViewSetWrapMode                     ,


-- ** startsDisplayLine #method:startsDisplayLine#
    TextViewStartsDisplayLineMethodInfo     ,
    textViewStartsDisplayLine               ,


-- ** windowToBufferCoords #method:windowToBufferCoords#
    TextViewWindowToBufferCoordsMethodInfo  ,
    textViewWindowToBufferCoords            ,




 -- * Properties
-- ** acceptsTab #attr:acceptsTab#
    TextViewAcceptsTabPropertyInfo          ,
    constructTextViewAcceptsTab             ,
    getTextViewAcceptsTab                   ,
    setTextViewAcceptsTab                   ,
    textViewAcceptsTab                      ,


-- ** bottomMargin #attr:bottomMargin#
    TextViewBottomMarginPropertyInfo        ,
    constructTextViewBottomMargin           ,
    getTextViewBottomMargin                 ,
    setTextViewBottomMargin                 ,
    textViewBottomMargin                    ,


-- ** buffer #attr:buffer#
    TextViewBufferPropertyInfo              ,
    clearTextViewBuffer                     ,
    constructTextViewBuffer                 ,
    getTextViewBuffer                       ,
    setTextViewBuffer                       ,
    textViewBuffer                          ,


-- ** cursorVisible #attr:cursorVisible#
    TextViewCursorVisiblePropertyInfo       ,
    constructTextViewCursorVisible          ,
    getTextViewCursorVisible                ,
    setTextViewCursorVisible                ,
    textViewCursorVisible                   ,


-- ** editable #attr:editable#
    TextViewEditablePropertyInfo            ,
    constructTextViewEditable               ,
    getTextViewEditable                     ,
    setTextViewEditable                     ,
    textViewEditable                        ,


-- ** imModule #attr:imModule#
    TextViewImModulePropertyInfo            ,
    clearTextViewImModule                   ,
    constructTextViewImModule               ,
    getTextViewImModule                     ,
    setTextViewImModule                     ,
    textViewImModule                        ,


-- ** indent #attr:indent#
    TextViewIndentPropertyInfo              ,
    constructTextViewIndent                 ,
    getTextViewIndent                       ,
    setTextViewIndent                       ,
    textViewIndent                          ,


-- ** inputHints #attr:inputHints#
    TextViewInputHintsPropertyInfo          ,
    constructTextViewInputHints             ,
    getTextViewInputHints                   ,
    setTextViewInputHints                   ,
    textViewInputHints                      ,


-- ** inputPurpose #attr:inputPurpose#
    TextViewInputPurposePropertyInfo        ,
    constructTextViewInputPurpose           ,
    getTextViewInputPurpose                 ,
    setTextViewInputPurpose                 ,
    textViewInputPurpose                    ,


-- ** justification #attr:justification#
    TextViewJustificationPropertyInfo       ,
    constructTextViewJustification          ,
    getTextViewJustification                ,
    setTextViewJustification                ,
    textViewJustification                   ,


-- ** leftMargin #attr:leftMargin#
    TextViewLeftMarginPropertyInfo          ,
    constructTextViewLeftMargin             ,
    getTextViewLeftMargin                   ,
    setTextViewLeftMargin                   ,
    textViewLeftMargin                      ,


-- ** monospace #attr:monospace#
    TextViewMonospacePropertyInfo           ,
    constructTextViewMonospace              ,
    getTextViewMonospace                    ,
    setTextViewMonospace                    ,
    textViewMonospace                       ,


-- ** overwrite #attr:overwrite#
    TextViewOverwritePropertyInfo           ,
    constructTextViewOverwrite              ,
    getTextViewOverwrite                    ,
    setTextViewOverwrite                    ,
    textViewOverwrite                       ,


-- ** pixelsAboveLines #attr:pixelsAboveLines#
    TextViewPixelsAboveLinesPropertyInfo    ,
    constructTextViewPixelsAboveLines       ,
    getTextViewPixelsAboveLines             ,
    setTextViewPixelsAboveLines             ,
    textViewPixelsAboveLines                ,


-- ** pixelsBelowLines #attr:pixelsBelowLines#
    TextViewPixelsBelowLinesPropertyInfo    ,
    constructTextViewPixelsBelowLines       ,
    getTextViewPixelsBelowLines             ,
    setTextViewPixelsBelowLines             ,
    textViewPixelsBelowLines                ,


-- ** pixelsInsideWrap #attr:pixelsInsideWrap#
    TextViewPixelsInsideWrapPropertyInfo    ,
    constructTextViewPixelsInsideWrap       ,
    getTextViewPixelsInsideWrap             ,
    setTextViewPixelsInsideWrap             ,
    textViewPixelsInsideWrap                ,


-- ** populateAll #attr:populateAll#
    TextViewPopulateAllPropertyInfo         ,
    constructTextViewPopulateAll            ,
    getTextViewPopulateAll                  ,
    setTextViewPopulateAll                  ,
    textViewPopulateAll                     ,


-- ** rightMargin #attr:rightMargin#
    TextViewRightMarginPropertyInfo         ,
    constructTextViewRightMargin            ,
    getTextViewRightMargin                  ,
    setTextViewRightMargin                  ,
    textViewRightMargin                     ,


-- ** tabs #attr:tabs#
    TextViewTabsPropertyInfo                ,
    constructTextViewTabs                   ,
    getTextViewTabs                         ,
    setTextViewTabs                         ,
    textViewTabs                            ,


-- ** topMargin #attr:topMargin#
    TextViewTopMarginPropertyInfo           ,
    constructTextViewTopMargin              ,
    getTextViewTopMargin                    ,
    setTextViewTopMargin                    ,
    textViewTopMargin                       ,


-- ** wrapMode #attr:wrapMode#
    TextViewWrapModePropertyInfo            ,
    constructTextViewWrapMode               ,
    getTextViewWrapMode                     ,
    setTextViewWrapMode                     ,
    textViewWrapMode                        ,




 -- * Signals
-- ** backspace #signal:backspace#
    C_TextViewBackspaceCallback             ,
    TextViewBackspaceCallback               ,
    TextViewBackspaceSignalInfo             ,
    afterTextViewBackspace                  ,
    genClosure_TextViewBackspace            ,
    mk_TextViewBackspaceCallback            ,
    noTextViewBackspaceCallback             ,
    onTextViewBackspace                     ,
    wrap_TextViewBackspaceCallback          ,


-- ** copyClipboard #signal:copyClipboard#
    C_TextViewCopyClipboardCallback         ,
    TextViewCopyClipboardCallback           ,
    TextViewCopyClipboardSignalInfo         ,
    afterTextViewCopyClipboard              ,
    genClosure_TextViewCopyClipboard        ,
    mk_TextViewCopyClipboardCallback        ,
    noTextViewCopyClipboardCallback         ,
    onTextViewCopyClipboard                 ,
    wrap_TextViewCopyClipboardCallback      ,


-- ** cutClipboard #signal:cutClipboard#
    C_TextViewCutClipboardCallback          ,
    TextViewCutClipboardCallback            ,
    TextViewCutClipboardSignalInfo          ,
    afterTextViewCutClipboard               ,
    genClosure_TextViewCutClipboard         ,
    mk_TextViewCutClipboardCallback         ,
    noTextViewCutClipboardCallback          ,
    onTextViewCutClipboard                  ,
    wrap_TextViewCutClipboardCallback       ,


-- ** deleteFromCursor #signal:deleteFromCursor#
    C_TextViewDeleteFromCursorCallback      ,
    TextViewDeleteFromCursorCallback        ,
    TextViewDeleteFromCursorSignalInfo      ,
    afterTextViewDeleteFromCursor           ,
    genClosure_TextViewDeleteFromCursor     ,
    mk_TextViewDeleteFromCursorCallback     ,
    noTextViewDeleteFromCursorCallback      ,
    onTextViewDeleteFromCursor              ,
    wrap_TextViewDeleteFromCursorCallback   ,


-- ** extendSelection #signal:extendSelection#
    C_TextViewExtendSelectionCallback       ,
    TextViewExtendSelectionCallback         ,
    TextViewExtendSelectionSignalInfo       ,
    afterTextViewExtendSelection            ,
    genClosure_TextViewExtendSelection      ,
    mk_TextViewExtendSelectionCallback      ,
    noTextViewExtendSelectionCallback       ,
    onTextViewExtendSelection               ,
    wrap_TextViewExtendSelectionCallback    ,


-- ** insertAtCursor #signal:insertAtCursor#
    C_TextViewInsertAtCursorCallback        ,
    TextViewInsertAtCursorCallback          ,
    TextViewInsertAtCursorSignalInfo        ,
    afterTextViewInsertAtCursor             ,
    genClosure_TextViewInsertAtCursor       ,
    mk_TextViewInsertAtCursorCallback       ,
    noTextViewInsertAtCursorCallback        ,
    onTextViewInsertAtCursor                ,
    wrap_TextViewInsertAtCursorCallback     ,


-- ** moveCursor #signal:moveCursor#
    C_TextViewMoveCursorCallback            ,
    TextViewMoveCursorCallback              ,
    TextViewMoveCursorSignalInfo            ,
    afterTextViewMoveCursor                 ,
    genClosure_TextViewMoveCursor           ,
    mk_TextViewMoveCursorCallback           ,
    noTextViewMoveCursorCallback            ,
    onTextViewMoveCursor                    ,
    wrap_TextViewMoveCursorCallback         ,


-- ** moveViewport #signal:moveViewport#
    C_TextViewMoveViewportCallback          ,
    TextViewMoveViewportCallback            ,
    TextViewMoveViewportSignalInfo          ,
    afterTextViewMoveViewport               ,
    genClosure_TextViewMoveViewport         ,
    mk_TextViewMoveViewportCallback         ,
    noTextViewMoveViewportCallback          ,
    onTextViewMoveViewport                  ,
    wrap_TextViewMoveViewportCallback       ,


-- ** pasteClipboard #signal:pasteClipboard#
    C_TextViewPasteClipboardCallback        ,
    TextViewPasteClipboardCallback          ,
    TextViewPasteClipboardSignalInfo        ,
    afterTextViewPasteClipboard             ,
    genClosure_TextViewPasteClipboard       ,
    mk_TextViewPasteClipboardCallback       ,
    noTextViewPasteClipboardCallback        ,
    onTextViewPasteClipboard                ,
    wrap_TextViewPasteClipboardCallback     ,


-- ** populatePopup #signal:populatePopup#
    C_TextViewPopulatePopupCallback         ,
    TextViewPopulatePopupCallback           ,
    TextViewPopulatePopupSignalInfo         ,
    afterTextViewPopulatePopup              ,
    genClosure_TextViewPopulatePopup        ,
    mk_TextViewPopulatePopupCallback        ,
    noTextViewPopulatePopupCallback         ,
    onTextViewPopulatePopup                 ,
    wrap_TextViewPopulatePopupCallback      ,


-- ** preeditChanged #signal:preeditChanged#
    C_TextViewPreeditChangedCallback        ,
    TextViewPreeditChangedCallback          ,
    TextViewPreeditChangedSignalInfo        ,
    afterTextViewPreeditChanged             ,
    genClosure_TextViewPreeditChanged       ,
    mk_TextViewPreeditChangedCallback       ,
    noTextViewPreeditChangedCallback        ,
    onTextViewPreeditChanged                ,
    wrap_TextViewPreeditChangedCallback     ,


-- ** selectAll #signal:selectAll#
    C_TextViewSelectAllCallback             ,
    TextViewSelectAllCallback               ,
    TextViewSelectAllSignalInfo             ,
    afterTextViewSelectAll                  ,
    genClosure_TextViewSelectAll            ,
    mk_TextViewSelectAllCallback            ,
    noTextViewSelectAllCallback             ,
    onTextViewSelectAll                     ,
    wrap_TextViewSelectAllCallback          ,


-- ** setAnchor #signal:setAnchor#
    C_TextViewSetAnchorCallback             ,
    TextViewSetAnchorCallback               ,
    TextViewSetAnchorSignalInfo             ,
    afterTextViewSetAnchor                  ,
    genClosure_TextViewSetAnchor            ,
    mk_TextViewSetAnchorCallback            ,
    noTextViewSetAnchorCallback             ,
    onTextViewSetAnchor                     ,
    wrap_TextViewSetAnchorCallback          ,


-- ** toggleCursorVisible #signal:toggleCursorVisible#
    C_TextViewToggleCursorVisibleCallback   ,
    TextViewToggleCursorVisibleCallback     ,
    TextViewToggleCursorVisibleSignalInfo   ,
    afterTextViewToggleCursorVisible        ,
    genClosure_TextViewToggleCursorVisible  ,
    mk_TextViewToggleCursorVisibleCallback  ,
    noTextViewToggleCursorVisibleCallback   ,
    onTextViewToggleCursorVisible           ,
    wrap_TextViewToggleCursorVisibleCallback,


-- ** toggleOverwrite #signal:toggleOverwrite#
    C_TextViewToggleOverwriteCallback       ,
    TextViewToggleOverwriteCallback         ,
    TextViewToggleOverwriteSignalInfo       ,
    afterTextViewToggleOverwrite            ,
    genClosure_TextViewToggleOverwrite      ,
    mk_TextViewToggleOverwriteCallback      ,
    noTextViewToggleOverwriteCallback       ,
    onTextViewToggleOverwrite               ,
    wrap_TextViewToggleOverwriteCallback    ,




    ) where

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

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

import qualified GI.Atk.Interfaces.ImplementorIface as Atk.ImplementorIface
import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.Gdk.Objects.Window as Gdk.Window
import qualified GI.Gdk.Structs.EventKey as Gdk.EventKey
import qualified GI.Gdk.Structs.Rectangle as Gdk.Rectangle
import {-# SOURCE #-} qualified GI.Gtk.Enums as Gtk.Enums
import {-# SOURCE #-} qualified GI.Gtk.Flags as Gtk.Flags
import {-# SOURCE #-} qualified GI.Gtk.Interfaces.Buildable as Gtk.Buildable
import {-# SOURCE #-} qualified GI.Gtk.Interfaces.Scrollable as Gtk.Scrollable
import {-# SOURCE #-} qualified GI.Gtk.Objects.Adjustment as Gtk.Adjustment
import {-# SOURCE #-} qualified GI.Gtk.Objects.Container as Gtk.Container
import {-# SOURCE #-} qualified GI.Gtk.Objects.TextBuffer as Gtk.TextBuffer
import {-# SOURCE #-} qualified GI.Gtk.Objects.TextChildAnchor as Gtk.TextChildAnchor
import {-# SOURCE #-} qualified GI.Gtk.Objects.TextMark as Gtk.TextMark
import {-# SOURCE #-} qualified GI.Gtk.Objects.Widget as Gtk.Widget
import {-# SOURCE #-} qualified GI.Gtk.Structs.TextAttributes as Gtk.TextAttributes
import {-# SOURCE #-} qualified GI.Gtk.Structs.TextIter as Gtk.TextIter
import qualified GI.Pango.Structs.TabArray as Pango.TabArray

newtype TextView = TextView (ManagedPtr TextView)
foreign import ccall "gtk_text_view_get_type"
    c_gtk_text_view_get_type :: IO GType

instance GObject TextView where
    gobjectType _ = c_gtk_text_view_get_type
    

class GObject o => IsTextView o
#if MIN_VERSION_base(4,9,0)
instance {-# OVERLAPPABLE #-} (GObject a, O.UnknownAncestorError TextView a) =>
    IsTextView a
#endif
instance IsTextView TextView
instance Gtk.Container.IsContainer TextView
instance Gtk.Widget.IsWidget TextView
instance GObject.Object.IsObject TextView
instance Atk.ImplementorIface.IsImplementorIface TextView
instance Gtk.Buildable.IsBuildable TextView
instance Gtk.Scrollable.IsScrollable TextView

toTextView :: IsTextView o => o -> IO TextView
toTextView = unsafeCastTo TextView

noTextView :: Maybe TextView
noTextView = Nothing

type family ResolveTextViewMethod (t :: Symbol) (o :: *) :: * where
    ResolveTextViewMethod "activate" o = Gtk.Widget.WidgetActivateMethodInfo
    ResolveTextViewMethod "add" o = Gtk.Container.ContainerAddMethodInfo
    ResolveTextViewMethod "addAccelerator" o = Gtk.Widget.WidgetAddAcceleratorMethodInfo
    ResolveTextViewMethod "addChild" o = Gtk.Buildable.BuildableAddChildMethodInfo
    ResolveTextViewMethod "addChildAtAnchor" o = TextViewAddChildAtAnchorMethodInfo
    ResolveTextViewMethod "addChildInWindow" o = TextViewAddChildInWindowMethodInfo
    ResolveTextViewMethod "addDeviceEvents" o = Gtk.Widget.WidgetAddDeviceEventsMethodInfo
    ResolveTextViewMethod "addEvents" o = Gtk.Widget.WidgetAddEventsMethodInfo
    ResolveTextViewMethod "addMnemonicLabel" o = Gtk.Widget.WidgetAddMnemonicLabelMethodInfo
    ResolveTextViewMethod "addTickCallback" o = Gtk.Widget.WidgetAddTickCallbackMethodInfo
    ResolveTextViewMethod "backwardDisplayLine" o = TextViewBackwardDisplayLineMethodInfo
    ResolveTextViewMethod "backwardDisplayLineStart" o = TextViewBackwardDisplayLineStartMethodInfo
    ResolveTextViewMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveTextViewMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveTextViewMethod "bufferToWindowCoords" o = TextViewBufferToWindowCoordsMethodInfo
    ResolveTextViewMethod "canActivateAccel" o = Gtk.Widget.WidgetCanActivateAccelMethodInfo
    ResolveTextViewMethod "checkResize" o = Gtk.Container.ContainerCheckResizeMethodInfo
    ResolveTextViewMethod "childFocus" o = Gtk.Widget.WidgetChildFocusMethodInfo
    ResolveTextViewMethod "childGetProperty" o = Gtk.Container.ContainerChildGetPropertyMethodInfo
    ResolveTextViewMethod "childNotify" o = Gtk.Container.ContainerChildNotifyMethodInfo
    ResolveTextViewMethod "childNotifyByPspec" o = Gtk.Container.ContainerChildNotifyByPspecMethodInfo
    ResolveTextViewMethod "childSetProperty" o = Gtk.Container.ContainerChildSetPropertyMethodInfo
    ResolveTextViewMethod "childType" o = Gtk.Container.ContainerChildTypeMethodInfo
    ResolveTextViewMethod "classPath" o = Gtk.Widget.WidgetClassPathMethodInfo
    ResolveTextViewMethod "computeExpand" o = Gtk.Widget.WidgetComputeExpandMethodInfo
    ResolveTextViewMethod "constructChild" o = Gtk.Buildable.BuildableConstructChildMethodInfo
    ResolveTextViewMethod "createPangoContext" o = Gtk.Widget.WidgetCreatePangoContextMethodInfo
    ResolveTextViewMethod "createPangoLayout" o = Gtk.Widget.WidgetCreatePangoLayoutMethodInfo
    ResolveTextViewMethod "customFinished" o = Gtk.Buildable.BuildableCustomFinishedMethodInfo
    ResolveTextViewMethod "customTagEnd" o = Gtk.Buildable.BuildableCustomTagEndMethodInfo
    ResolveTextViewMethod "customTagStart" o = Gtk.Buildable.BuildableCustomTagStartMethodInfo
    ResolveTextViewMethod "destroy" o = Gtk.Widget.WidgetDestroyMethodInfo
    ResolveTextViewMethod "destroyed" o = Gtk.Widget.WidgetDestroyedMethodInfo
    ResolveTextViewMethod "deviceIsShadowed" o = Gtk.Widget.WidgetDeviceIsShadowedMethodInfo
    ResolveTextViewMethod "dragBegin" o = Gtk.Widget.WidgetDragBeginMethodInfo
    ResolveTextViewMethod "dragBeginWithCoordinates" o = Gtk.Widget.WidgetDragBeginWithCoordinatesMethodInfo
    ResolveTextViewMethod "dragCheckThreshold" o = Gtk.Widget.WidgetDragCheckThresholdMethodInfo
    ResolveTextViewMethod "dragDestAddImageTargets" o = Gtk.Widget.WidgetDragDestAddImageTargetsMethodInfo
    ResolveTextViewMethod "dragDestAddTextTargets" o = Gtk.Widget.WidgetDragDestAddTextTargetsMethodInfo
    ResolveTextViewMethod "dragDestAddUriTargets" o = Gtk.Widget.WidgetDragDestAddUriTargetsMethodInfo
    ResolveTextViewMethod "dragDestFindTarget" o = Gtk.Widget.WidgetDragDestFindTargetMethodInfo
    ResolveTextViewMethod "dragDestGetTargetList" o = Gtk.Widget.WidgetDragDestGetTargetListMethodInfo
    ResolveTextViewMethod "dragDestGetTrackMotion" o = Gtk.Widget.WidgetDragDestGetTrackMotionMethodInfo
    ResolveTextViewMethod "dragDestSet" o = Gtk.Widget.WidgetDragDestSetMethodInfo
    ResolveTextViewMethod "dragDestSetProxy" o = Gtk.Widget.WidgetDragDestSetProxyMethodInfo
    ResolveTextViewMethod "dragDestSetTargetList" o = Gtk.Widget.WidgetDragDestSetTargetListMethodInfo
    ResolveTextViewMethod "dragDestSetTrackMotion" o = Gtk.Widget.WidgetDragDestSetTrackMotionMethodInfo
    ResolveTextViewMethod "dragDestUnset" o = Gtk.Widget.WidgetDragDestUnsetMethodInfo
    ResolveTextViewMethod "dragGetData" o = Gtk.Widget.WidgetDragGetDataMethodInfo
    ResolveTextViewMethod "dragHighlight" o = Gtk.Widget.WidgetDragHighlightMethodInfo
    ResolveTextViewMethod "dragSourceAddImageTargets" o = Gtk.Widget.WidgetDragSourceAddImageTargetsMethodInfo
    ResolveTextViewMethod "dragSourceAddTextTargets" o = Gtk.Widget.WidgetDragSourceAddTextTargetsMethodInfo
    ResolveTextViewMethod "dragSourceAddUriTargets" o = Gtk.Widget.WidgetDragSourceAddUriTargetsMethodInfo
    ResolveTextViewMethod "dragSourceGetTargetList" o = Gtk.Widget.WidgetDragSourceGetTargetListMethodInfo
    ResolveTextViewMethod "dragSourceSet" o = Gtk.Widget.WidgetDragSourceSetMethodInfo
    ResolveTextViewMethod "dragSourceSetIconGicon" o = Gtk.Widget.WidgetDragSourceSetIconGiconMethodInfo
    ResolveTextViewMethod "dragSourceSetIconName" o = Gtk.Widget.WidgetDragSourceSetIconNameMethodInfo
    ResolveTextViewMethod "dragSourceSetIconPixbuf" o = Gtk.Widget.WidgetDragSourceSetIconPixbufMethodInfo
    ResolveTextViewMethod "dragSourceSetIconStock" o = Gtk.Widget.WidgetDragSourceSetIconStockMethodInfo
    ResolveTextViewMethod "dragSourceSetTargetList" o = Gtk.Widget.WidgetDragSourceSetTargetListMethodInfo
    ResolveTextViewMethod "dragSourceUnset" o = Gtk.Widget.WidgetDragSourceUnsetMethodInfo
    ResolveTextViewMethod "dragUnhighlight" o = Gtk.Widget.WidgetDragUnhighlightMethodInfo
    ResolveTextViewMethod "draw" o = Gtk.Widget.WidgetDrawMethodInfo
    ResolveTextViewMethod "ensureStyle" o = Gtk.Widget.WidgetEnsureStyleMethodInfo
    ResolveTextViewMethod "errorBell" o = Gtk.Widget.WidgetErrorBellMethodInfo
    ResolveTextViewMethod "event" o = Gtk.Widget.WidgetEventMethodInfo
    ResolveTextViewMethod "forall" o = Gtk.Container.ContainerForallMethodInfo
    ResolveTextViewMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveTextViewMethod "foreach" o = Gtk.Container.ContainerForeachMethodInfo
    ResolveTextViewMethod "forwardDisplayLine" o = TextViewForwardDisplayLineMethodInfo
    ResolveTextViewMethod "forwardDisplayLineEnd" o = TextViewForwardDisplayLineEndMethodInfo
    ResolveTextViewMethod "freezeChildNotify" o = Gtk.Widget.WidgetFreezeChildNotifyMethodInfo
    ResolveTextViewMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveTextViewMethod "grabAdd" o = Gtk.Widget.WidgetGrabAddMethodInfo
    ResolveTextViewMethod "grabDefault" o = Gtk.Widget.WidgetGrabDefaultMethodInfo
    ResolveTextViewMethod "grabFocus" o = Gtk.Widget.WidgetGrabFocusMethodInfo
    ResolveTextViewMethod "grabRemove" o = Gtk.Widget.WidgetGrabRemoveMethodInfo
    ResolveTextViewMethod "hasDefault" o = Gtk.Widget.WidgetHasDefaultMethodInfo
    ResolveTextViewMethod "hasFocus" o = Gtk.Widget.WidgetHasFocusMethodInfo
    ResolveTextViewMethod "hasGrab" o = Gtk.Widget.WidgetHasGrabMethodInfo
    ResolveTextViewMethod "hasRcStyle" o = Gtk.Widget.WidgetHasRcStyleMethodInfo
    ResolveTextViewMethod "hasScreen" o = Gtk.Widget.WidgetHasScreenMethodInfo
    ResolveTextViewMethod "hasVisibleFocus" o = Gtk.Widget.WidgetHasVisibleFocusMethodInfo
    ResolveTextViewMethod "hide" o = Gtk.Widget.WidgetHideMethodInfo
    ResolveTextViewMethod "hideOnDelete" o = Gtk.Widget.WidgetHideOnDeleteMethodInfo
    ResolveTextViewMethod "imContextFilterKeypress" o = TextViewImContextFilterKeypressMethodInfo
    ResolveTextViewMethod "inDestruction" o = Gtk.Widget.WidgetInDestructionMethodInfo
    ResolveTextViewMethod "initTemplate" o = Gtk.Widget.WidgetInitTemplateMethodInfo
    ResolveTextViewMethod "inputShapeCombineRegion" o = Gtk.Widget.WidgetInputShapeCombineRegionMethodInfo
    ResolveTextViewMethod "insertActionGroup" o = Gtk.Widget.WidgetInsertActionGroupMethodInfo
    ResolveTextViewMethod "intersect" o = Gtk.Widget.WidgetIntersectMethodInfo
    ResolveTextViewMethod "isAncestor" o = Gtk.Widget.WidgetIsAncestorMethodInfo
    ResolveTextViewMethod "isComposited" o = Gtk.Widget.WidgetIsCompositedMethodInfo
    ResolveTextViewMethod "isDrawable" o = Gtk.Widget.WidgetIsDrawableMethodInfo
    ResolveTextViewMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveTextViewMethod "isFocus" o = Gtk.Widget.WidgetIsFocusMethodInfo
    ResolveTextViewMethod "isSensitive" o = Gtk.Widget.WidgetIsSensitiveMethodInfo
    ResolveTextViewMethod "isToplevel" o = Gtk.Widget.WidgetIsToplevelMethodInfo
    ResolveTextViewMethod "isVisible" o = Gtk.Widget.WidgetIsVisibleMethodInfo
    ResolveTextViewMethod "keynavFailed" o = Gtk.Widget.WidgetKeynavFailedMethodInfo
    ResolveTextViewMethod "listAccelClosures" o = Gtk.Widget.WidgetListAccelClosuresMethodInfo
    ResolveTextViewMethod "listActionPrefixes" o = Gtk.Widget.WidgetListActionPrefixesMethodInfo
    ResolveTextViewMethod "listMnemonicLabels" o = Gtk.Widget.WidgetListMnemonicLabelsMethodInfo
    ResolveTextViewMethod "map" o = Gtk.Widget.WidgetMapMethodInfo
    ResolveTextViewMethod "mnemonicActivate" o = Gtk.Widget.WidgetMnemonicActivateMethodInfo
    ResolveTextViewMethod "modifyBase" o = Gtk.Widget.WidgetModifyBaseMethodInfo
    ResolveTextViewMethod "modifyBg" o = Gtk.Widget.WidgetModifyBgMethodInfo
    ResolveTextViewMethod "modifyCursor" o = Gtk.Widget.WidgetModifyCursorMethodInfo
    ResolveTextViewMethod "modifyFg" o = Gtk.Widget.WidgetModifyFgMethodInfo
    ResolveTextViewMethod "modifyFont" o = Gtk.Widget.WidgetModifyFontMethodInfo
    ResolveTextViewMethod "modifyStyle" o = Gtk.Widget.WidgetModifyStyleMethodInfo
    ResolveTextViewMethod "modifyText" o = Gtk.Widget.WidgetModifyTextMethodInfo
    ResolveTextViewMethod "moveChild" o = TextViewMoveChildMethodInfo
    ResolveTextViewMethod "moveMarkOnscreen" o = TextViewMoveMarkOnscreenMethodInfo
    ResolveTextViewMethod "moveVisually" o = TextViewMoveVisuallyMethodInfo
    ResolveTextViewMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveTextViewMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveTextViewMethod "overrideBackgroundColor" o = Gtk.Widget.WidgetOverrideBackgroundColorMethodInfo
    ResolveTextViewMethod "overrideColor" o = Gtk.Widget.WidgetOverrideColorMethodInfo
    ResolveTextViewMethod "overrideCursor" o = Gtk.Widget.WidgetOverrideCursorMethodInfo
    ResolveTextViewMethod "overrideFont" o = Gtk.Widget.WidgetOverrideFontMethodInfo
    ResolveTextViewMethod "overrideSymbolicColor" o = Gtk.Widget.WidgetOverrideSymbolicColorMethodInfo
    ResolveTextViewMethod "parserFinished" o = Gtk.Buildable.BuildableParserFinishedMethodInfo
    ResolveTextViewMethod "path" o = Gtk.Widget.WidgetPathMethodInfo
    ResolveTextViewMethod "placeCursorOnscreen" o = TextViewPlaceCursorOnscreenMethodInfo
    ResolveTextViewMethod "propagateDraw" o = Gtk.Container.ContainerPropagateDrawMethodInfo
    ResolveTextViewMethod "queueAllocate" o = Gtk.Widget.WidgetQueueAllocateMethodInfo
    ResolveTextViewMethod "queueComputeExpand" o = Gtk.Widget.WidgetQueueComputeExpandMethodInfo
    ResolveTextViewMethod "queueDraw" o = Gtk.Widget.WidgetQueueDrawMethodInfo
    ResolveTextViewMethod "queueDrawArea" o = Gtk.Widget.WidgetQueueDrawAreaMethodInfo
    ResolveTextViewMethod "queueDrawRegion" o = Gtk.Widget.WidgetQueueDrawRegionMethodInfo
    ResolveTextViewMethod "queueResize" o = Gtk.Widget.WidgetQueueResizeMethodInfo
    ResolveTextViewMethod "queueResizeNoRedraw" o = Gtk.Widget.WidgetQueueResizeNoRedrawMethodInfo
    ResolveTextViewMethod "realize" o = Gtk.Widget.WidgetRealizeMethodInfo
    ResolveTextViewMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveTextViewMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveTextViewMethod "regionIntersect" o = Gtk.Widget.WidgetRegionIntersectMethodInfo
    ResolveTextViewMethod "registerWindow" o = Gtk.Widget.WidgetRegisterWindowMethodInfo
    ResolveTextViewMethod "remove" o = Gtk.Container.ContainerRemoveMethodInfo
    ResolveTextViewMethod "removeAccelerator" o = Gtk.Widget.WidgetRemoveAcceleratorMethodInfo
    ResolveTextViewMethod "removeMnemonicLabel" o = Gtk.Widget.WidgetRemoveMnemonicLabelMethodInfo
    ResolveTextViewMethod "removeTickCallback" o = Gtk.Widget.WidgetRemoveTickCallbackMethodInfo
    ResolveTextViewMethod "renderIcon" o = Gtk.Widget.WidgetRenderIconMethodInfo
    ResolveTextViewMethod "renderIconPixbuf" o = Gtk.Widget.WidgetRenderIconPixbufMethodInfo
    ResolveTextViewMethod "reparent" o = Gtk.Widget.WidgetReparentMethodInfo
    ResolveTextViewMethod "replaceData" o = GObject.Object.ObjectReplaceDataMethodInfo
    ResolveTextViewMethod "replaceQdata" o = GObject.Object.ObjectReplaceQdataMethodInfo
    ResolveTextViewMethod "resetCursorBlink" o = TextViewResetCursorBlinkMethodInfo
    ResolveTextViewMethod "resetImContext" o = TextViewResetImContextMethodInfo
    ResolveTextViewMethod "resetRcStyles" o = Gtk.Widget.WidgetResetRcStylesMethodInfo
    ResolveTextViewMethod "resetStyle" o = Gtk.Widget.WidgetResetStyleMethodInfo
    ResolveTextViewMethod "resizeChildren" o = Gtk.Container.ContainerResizeChildrenMethodInfo
    ResolveTextViewMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveTextViewMethod "scrollMarkOnscreen" o = TextViewScrollMarkOnscreenMethodInfo
    ResolveTextViewMethod "scrollToIter" o = TextViewScrollToIterMethodInfo
    ResolveTextViewMethod "scrollToMark" o = TextViewScrollToMarkMethodInfo
    ResolveTextViewMethod "sendExpose" o = Gtk.Widget.WidgetSendExposeMethodInfo
    ResolveTextViewMethod "sendFocusChange" o = Gtk.Widget.WidgetSendFocusChangeMethodInfo
    ResolveTextViewMethod "shapeCombineRegion" o = Gtk.Widget.WidgetShapeCombineRegionMethodInfo
    ResolveTextViewMethod "show" o = Gtk.Widget.WidgetShowMethodInfo
    ResolveTextViewMethod "showAll" o = Gtk.Widget.WidgetShowAllMethodInfo
    ResolveTextViewMethod "showNow" o = Gtk.Widget.WidgetShowNowMethodInfo
    ResolveTextViewMethod "sizeAllocate" o = Gtk.Widget.WidgetSizeAllocateMethodInfo
    ResolveTextViewMethod "sizeAllocateWithBaseline" o = Gtk.Widget.WidgetSizeAllocateWithBaselineMethodInfo
    ResolveTextViewMethod "sizeRequest" o = Gtk.Widget.WidgetSizeRequestMethodInfo
    ResolveTextViewMethod "startsDisplayLine" o = TextViewStartsDisplayLineMethodInfo
    ResolveTextViewMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveTextViewMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveTextViewMethod "styleAttach" o = Gtk.Widget.WidgetStyleAttachMethodInfo
    ResolveTextViewMethod "styleGetProperty" o = Gtk.Widget.WidgetStyleGetPropertyMethodInfo
    ResolveTextViewMethod "thawChildNotify" o = Gtk.Widget.WidgetThawChildNotifyMethodInfo
    ResolveTextViewMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveTextViewMethod "translateCoordinates" o = Gtk.Widget.WidgetTranslateCoordinatesMethodInfo
    ResolveTextViewMethod "triggerTooltipQuery" o = Gtk.Widget.WidgetTriggerTooltipQueryMethodInfo
    ResolveTextViewMethod "unmap" o = Gtk.Widget.WidgetUnmapMethodInfo
    ResolveTextViewMethod "unparent" o = Gtk.Widget.WidgetUnparentMethodInfo
    ResolveTextViewMethod "unrealize" o = Gtk.Widget.WidgetUnrealizeMethodInfo
    ResolveTextViewMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveTextViewMethod "unregisterWindow" o = Gtk.Widget.WidgetUnregisterWindowMethodInfo
    ResolveTextViewMethod "unsetFocusChain" o = Gtk.Container.ContainerUnsetFocusChainMethodInfo
    ResolveTextViewMethod "unsetStateFlags" o = Gtk.Widget.WidgetUnsetStateFlagsMethodInfo
    ResolveTextViewMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveTextViewMethod "windowToBufferCoords" o = TextViewWindowToBufferCoordsMethodInfo
    ResolveTextViewMethod "getAcceptsTab" o = TextViewGetAcceptsTabMethodInfo
    ResolveTextViewMethod "getAccessible" o = Gtk.Widget.WidgetGetAccessibleMethodInfo
    ResolveTextViewMethod "getActionGroup" o = Gtk.Widget.WidgetGetActionGroupMethodInfo
    ResolveTextViewMethod "getAllocatedBaseline" o = Gtk.Widget.WidgetGetAllocatedBaselineMethodInfo
    ResolveTextViewMethod "getAllocatedHeight" o = Gtk.Widget.WidgetGetAllocatedHeightMethodInfo
    ResolveTextViewMethod "getAllocatedSize" o = Gtk.Widget.WidgetGetAllocatedSizeMethodInfo
    ResolveTextViewMethod "getAllocatedWidth" o = Gtk.Widget.WidgetGetAllocatedWidthMethodInfo
    ResolveTextViewMethod "getAllocation" o = Gtk.Widget.WidgetGetAllocationMethodInfo
    ResolveTextViewMethod "getAncestor" o = Gtk.Widget.WidgetGetAncestorMethodInfo
    ResolveTextViewMethod "getAppPaintable" o = Gtk.Widget.WidgetGetAppPaintableMethodInfo
    ResolveTextViewMethod "getBorder" o = Gtk.Scrollable.ScrollableGetBorderMethodInfo
    ResolveTextViewMethod "getBorderWidth" o = Gtk.Container.ContainerGetBorderWidthMethodInfo
    ResolveTextViewMethod "getBorderWindowSize" o = TextViewGetBorderWindowSizeMethodInfo
    ResolveTextViewMethod "getBottomMargin" o = TextViewGetBottomMarginMethodInfo
    ResolveTextViewMethod "getBuffer" o = TextViewGetBufferMethodInfo
    ResolveTextViewMethod "getCanDefault" o = Gtk.Widget.WidgetGetCanDefaultMethodInfo
    ResolveTextViewMethod "getCanFocus" o = Gtk.Widget.WidgetGetCanFocusMethodInfo
    ResolveTextViewMethod "getChildRequisition" o = Gtk.Widget.WidgetGetChildRequisitionMethodInfo
    ResolveTextViewMethod "getChildVisible" o = Gtk.Widget.WidgetGetChildVisibleMethodInfo
    ResolveTextViewMethod "getChildren" o = Gtk.Container.ContainerGetChildrenMethodInfo
    ResolveTextViewMethod "getClip" o = Gtk.Widget.WidgetGetClipMethodInfo
    ResolveTextViewMethod "getClipboard" o = Gtk.Widget.WidgetGetClipboardMethodInfo
    ResolveTextViewMethod "getCompositeName" o = Gtk.Widget.WidgetGetCompositeNameMethodInfo
    ResolveTextViewMethod "getCursorLocations" o = TextViewGetCursorLocationsMethodInfo
    ResolveTextViewMethod "getCursorVisible" o = TextViewGetCursorVisibleMethodInfo
    ResolveTextViewMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveTextViewMethod "getDefaultAttributes" o = TextViewGetDefaultAttributesMethodInfo
    ResolveTextViewMethod "getDeviceEnabled" o = Gtk.Widget.WidgetGetDeviceEnabledMethodInfo
    ResolveTextViewMethod "getDeviceEvents" o = Gtk.Widget.WidgetGetDeviceEventsMethodInfo
    ResolveTextViewMethod "getDirection" o = Gtk.Widget.WidgetGetDirectionMethodInfo
    ResolveTextViewMethod "getDisplay" o = Gtk.Widget.WidgetGetDisplayMethodInfo
    ResolveTextViewMethod "getDoubleBuffered" o = Gtk.Widget.WidgetGetDoubleBufferedMethodInfo
    ResolveTextViewMethod "getEditable" o = TextViewGetEditableMethodInfo
    ResolveTextViewMethod "getEvents" o = Gtk.Widget.WidgetGetEventsMethodInfo
    ResolveTextViewMethod "getFocusChain" o = Gtk.Container.ContainerGetFocusChainMethodInfo
    ResolveTextViewMethod "getFocusChild" o = Gtk.Container.ContainerGetFocusChildMethodInfo
    ResolveTextViewMethod "getFocusHadjustment" o = Gtk.Container.ContainerGetFocusHadjustmentMethodInfo
    ResolveTextViewMethod "getFocusOnClick" o = Gtk.Widget.WidgetGetFocusOnClickMethodInfo
    ResolveTextViewMethod "getFocusVadjustment" o = Gtk.Container.ContainerGetFocusVadjustmentMethodInfo
    ResolveTextViewMethod "getFontMap" o = Gtk.Widget.WidgetGetFontMapMethodInfo
    ResolveTextViewMethod "getFontOptions" o = Gtk.Widget.WidgetGetFontOptionsMethodInfo
    ResolveTextViewMethod "getFrameClock" o = Gtk.Widget.WidgetGetFrameClockMethodInfo
    ResolveTextViewMethod "getHadjustment" o = TextViewGetHadjustmentMethodInfo
    ResolveTextViewMethod "getHalign" o = Gtk.Widget.WidgetGetHalignMethodInfo
    ResolveTextViewMethod "getHasTooltip" o = Gtk.Widget.WidgetGetHasTooltipMethodInfo
    ResolveTextViewMethod "getHasWindow" o = Gtk.Widget.WidgetGetHasWindowMethodInfo
    ResolveTextViewMethod "getHexpand" o = Gtk.Widget.WidgetGetHexpandMethodInfo
    ResolveTextViewMethod "getHexpandSet" o = Gtk.Widget.WidgetGetHexpandSetMethodInfo
    ResolveTextViewMethod "getHscrollPolicy" o = Gtk.Scrollable.ScrollableGetHscrollPolicyMethodInfo
    ResolveTextViewMethod "getIndent" o = TextViewGetIndentMethodInfo
    ResolveTextViewMethod "getInputHints" o = TextViewGetInputHintsMethodInfo
    ResolveTextViewMethod "getInputPurpose" o = TextViewGetInputPurposeMethodInfo
    ResolveTextViewMethod "getInternalChild" o = Gtk.Buildable.BuildableGetInternalChildMethodInfo
    ResolveTextViewMethod "getIterAtLocation" o = TextViewGetIterAtLocationMethodInfo
    ResolveTextViewMethod "getIterAtPosition" o = TextViewGetIterAtPositionMethodInfo
    ResolveTextViewMethod "getIterLocation" o = TextViewGetIterLocationMethodInfo
    ResolveTextViewMethod "getJustification" o = TextViewGetJustificationMethodInfo
    ResolveTextViewMethod "getLeftMargin" o = TextViewGetLeftMarginMethodInfo
    ResolveTextViewMethod "getLineAtY" o = TextViewGetLineAtYMethodInfo
    ResolveTextViewMethod "getLineYrange" o = TextViewGetLineYrangeMethodInfo
    ResolveTextViewMethod "getMapped" o = Gtk.Widget.WidgetGetMappedMethodInfo
    ResolveTextViewMethod "getMarginBottom" o = Gtk.Widget.WidgetGetMarginBottomMethodInfo
    ResolveTextViewMethod "getMarginEnd" o = Gtk.Widget.WidgetGetMarginEndMethodInfo
    ResolveTextViewMethod "getMarginLeft" o = Gtk.Widget.WidgetGetMarginLeftMethodInfo
    ResolveTextViewMethod "getMarginRight" o = Gtk.Widget.WidgetGetMarginRightMethodInfo
    ResolveTextViewMethod "getMarginStart" o = Gtk.Widget.WidgetGetMarginStartMethodInfo
    ResolveTextViewMethod "getMarginTop" o = Gtk.Widget.WidgetGetMarginTopMethodInfo
    ResolveTextViewMethod "getModifierMask" o = Gtk.Widget.WidgetGetModifierMaskMethodInfo
    ResolveTextViewMethod "getModifierStyle" o = Gtk.Widget.WidgetGetModifierStyleMethodInfo
    ResolveTextViewMethod "getMonospace" o = TextViewGetMonospaceMethodInfo
    ResolveTextViewMethod "getName" o = Gtk.Widget.WidgetGetNameMethodInfo
    ResolveTextViewMethod "getNoShowAll" o = Gtk.Widget.WidgetGetNoShowAllMethodInfo
    ResolveTextViewMethod "getOpacity" o = Gtk.Widget.WidgetGetOpacityMethodInfo
    ResolveTextViewMethod "getOverwrite" o = TextViewGetOverwriteMethodInfo
    ResolveTextViewMethod "getPangoContext" o = Gtk.Widget.WidgetGetPangoContextMethodInfo
    ResolveTextViewMethod "getParent" o = Gtk.Widget.WidgetGetParentMethodInfo
    ResolveTextViewMethod "getParentWindow" o = Gtk.Widget.WidgetGetParentWindowMethodInfo
    ResolveTextViewMethod "getPath" o = Gtk.Widget.WidgetGetPathMethodInfo
    ResolveTextViewMethod "getPathForChild" o = Gtk.Container.ContainerGetPathForChildMethodInfo
    ResolveTextViewMethod "getPixelsAboveLines" o = TextViewGetPixelsAboveLinesMethodInfo
    ResolveTextViewMethod "getPixelsBelowLines" o = TextViewGetPixelsBelowLinesMethodInfo
    ResolveTextViewMethod "getPixelsInsideWrap" o = TextViewGetPixelsInsideWrapMethodInfo
    ResolveTextViewMethod "getPointer" o = Gtk.Widget.WidgetGetPointerMethodInfo
    ResolveTextViewMethod "getPreferredHeight" o = Gtk.Widget.WidgetGetPreferredHeightMethodInfo
    ResolveTextViewMethod "getPreferredHeightAndBaselineForWidth" o = Gtk.Widget.WidgetGetPreferredHeightAndBaselineForWidthMethodInfo
    ResolveTextViewMethod "getPreferredHeightForWidth" o = Gtk.Widget.WidgetGetPreferredHeightForWidthMethodInfo
    ResolveTextViewMethod "getPreferredSize" o = Gtk.Widget.WidgetGetPreferredSizeMethodInfo
    ResolveTextViewMethod "getPreferredWidth" o = Gtk.Widget.WidgetGetPreferredWidthMethodInfo
    ResolveTextViewMethod "getPreferredWidthForHeight" o = Gtk.Widget.WidgetGetPreferredWidthForHeightMethodInfo
    ResolveTextViewMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveTextViewMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveTextViewMethod "getRealized" o = Gtk.Widget.WidgetGetRealizedMethodInfo
    ResolveTextViewMethod "getReceivesDefault" o = Gtk.Widget.WidgetGetReceivesDefaultMethodInfo
    ResolveTextViewMethod "getRequestMode" o = Gtk.Widget.WidgetGetRequestModeMethodInfo
    ResolveTextViewMethod "getRequisition" o = Gtk.Widget.WidgetGetRequisitionMethodInfo
    ResolveTextViewMethod "getResizeMode" o = Gtk.Container.ContainerGetResizeModeMethodInfo
    ResolveTextViewMethod "getRightMargin" o = TextViewGetRightMarginMethodInfo
    ResolveTextViewMethod "getRootWindow" o = Gtk.Widget.WidgetGetRootWindowMethodInfo
    ResolveTextViewMethod "getScaleFactor" o = Gtk.Widget.WidgetGetScaleFactorMethodInfo
    ResolveTextViewMethod "getScreen" o = Gtk.Widget.WidgetGetScreenMethodInfo
    ResolveTextViewMethod "getSensitive" o = Gtk.Widget.WidgetGetSensitiveMethodInfo
    ResolveTextViewMethod "getSettings" o = Gtk.Widget.WidgetGetSettingsMethodInfo
    ResolveTextViewMethod "getSizeRequest" o = Gtk.Widget.WidgetGetSizeRequestMethodInfo
    ResolveTextViewMethod "getState" o = Gtk.Widget.WidgetGetStateMethodInfo
    ResolveTextViewMethod "getStateFlags" o = Gtk.Widget.WidgetGetStateFlagsMethodInfo
    ResolveTextViewMethod "getStyle" o = Gtk.Widget.WidgetGetStyleMethodInfo
    ResolveTextViewMethod "getStyleContext" o = Gtk.Widget.WidgetGetStyleContextMethodInfo
    ResolveTextViewMethod "getSupportMultidevice" o = Gtk.Widget.WidgetGetSupportMultideviceMethodInfo
    ResolveTextViewMethod "getTabs" o = TextViewGetTabsMethodInfo
    ResolveTextViewMethod "getTemplateChild" o = Gtk.Widget.WidgetGetTemplateChildMethodInfo
    ResolveTextViewMethod "getTooltipMarkup" o = Gtk.Widget.WidgetGetTooltipMarkupMethodInfo
    ResolveTextViewMethod "getTooltipText" o = Gtk.Widget.WidgetGetTooltipTextMethodInfo
    ResolveTextViewMethod "getTooltipWindow" o = Gtk.Widget.WidgetGetTooltipWindowMethodInfo
    ResolveTextViewMethod "getTopMargin" o = TextViewGetTopMarginMethodInfo
    ResolveTextViewMethod "getToplevel" o = Gtk.Widget.WidgetGetToplevelMethodInfo
    ResolveTextViewMethod "getVadjustment" o = TextViewGetVadjustmentMethodInfo
    ResolveTextViewMethod "getValign" o = Gtk.Widget.WidgetGetValignMethodInfo
    ResolveTextViewMethod "getValignWithBaseline" o = Gtk.Widget.WidgetGetValignWithBaselineMethodInfo
    ResolveTextViewMethod "getVexpand" o = Gtk.Widget.WidgetGetVexpandMethodInfo
    ResolveTextViewMethod "getVexpandSet" o = Gtk.Widget.WidgetGetVexpandSetMethodInfo
    ResolveTextViewMethod "getVisible" o = Gtk.Widget.WidgetGetVisibleMethodInfo
    ResolveTextViewMethod "getVisibleRect" o = TextViewGetVisibleRectMethodInfo
    ResolveTextViewMethod "getVisual" o = Gtk.Widget.WidgetGetVisualMethodInfo
    ResolveTextViewMethod "getVscrollPolicy" o = Gtk.Scrollable.ScrollableGetVscrollPolicyMethodInfo
    ResolveTextViewMethod "getWindow" o = TextViewGetWindowMethodInfo
    ResolveTextViewMethod "getWindowType" o = TextViewGetWindowTypeMethodInfo
    ResolveTextViewMethod "getWrapMode" o = TextViewGetWrapModeMethodInfo
    ResolveTextViewMethod "setAccelPath" o = Gtk.Widget.WidgetSetAccelPathMethodInfo
    ResolveTextViewMethod "setAcceptsTab" o = TextViewSetAcceptsTabMethodInfo
    ResolveTextViewMethod "setAllocation" o = Gtk.Widget.WidgetSetAllocationMethodInfo
    ResolveTextViewMethod "setAppPaintable" o = Gtk.Widget.WidgetSetAppPaintableMethodInfo
    ResolveTextViewMethod "setBorderWidth" o = Gtk.Container.ContainerSetBorderWidthMethodInfo
    ResolveTextViewMethod "setBorderWindowSize" o = TextViewSetBorderWindowSizeMethodInfo
    ResolveTextViewMethod "setBottomMargin" o = TextViewSetBottomMarginMethodInfo
    ResolveTextViewMethod "setBuffer" o = TextViewSetBufferMethodInfo
    ResolveTextViewMethod "setBuildableProperty" o = Gtk.Buildable.BuildableSetBuildablePropertyMethodInfo
    ResolveTextViewMethod "setCanDefault" o = Gtk.Widget.WidgetSetCanDefaultMethodInfo
    ResolveTextViewMethod "setCanFocus" o = Gtk.Widget.WidgetSetCanFocusMethodInfo
    ResolveTextViewMethod "setChildVisible" o = Gtk.Widget.WidgetSetChildVisibleMethodInfo
    ResolveTextViewMethod "setClip" o = Gtk.Widget.WidgetSetClipMethodInfo
    ResolveTextViewMethod "setCompositeName" o = Gtk.Widget.WidgetSetCompositeNameMethodInfo
    ResolveTextViewMethod "setCursorVisible" o = TextViewSetCursorVisibleMethodInfo
    ResolveTextViewMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveTextViewMethod "setDeviceEnabled" o = Gtk.Widget.WidgetSetDeviceEnabledMethodInfo
    ResolveTextViewMethod "setDeviceEvents" o = Gtk.Widget.WidgetSetDeviceEventsMethodInfo
    ResolveTextViewMethod "setDirection" o = Gtk.Widget.WidgetSetDirectionMethodInfo
    ResolveTextViewMethod "setDoubleBuffered" o = Gtk.Widget.WidgetSetDoubleBufferedMethodInfo
    ResolveTextViewMethod "setEditable" o = TextViewSetEditableMethodInfo
    ResolveTextViewMethod "setEvents" o = Gtk.Widget.WidgetSetEventsMethodInfo
    ResolveTextViewMethod "setFocusChain" o = Gtk.Container.ContainerSetFocusChainMethodInfo
    ResolveTextViewMethod "setFocusChild" o = Gtk.Container.ContainerSetFocusChildMethodInfo
    ResolveTextViewMethod "setFocusHadjustment" o = Gtk.Container.ContainerSetFocusHadjustmentMethodInfo
    ResolveTextViewMethod "setFocusOnClick" o = Gtk.Widget.WidgetSetFocusOnClickMethodInfo
    ResolveTextViewMethod "setFocusVadjustment" o = Gtk.Container.ContainerSetFocusVadjustmentMethodInfo
    ResolveTextViewMethod "setFontMap" o = Gtk.Widget.WidgetSetFontMapMethodInfo
    ResolveTextViewMethod "setFontOptions" o = Gtk.Widget.WidgetSetFontOptionsMethodInfo
    ResolveTextViewMethod "setHadjustment" o = Gtk.Scrollable.ScrollableSetHadjustmentMethodInfo
    ResolveTextViewMethod "setHalign" o = Gtk.Widget.WidgetSetHalignMethodInfo
    ResolveTextViewMethod "setHasTooltip" o = Gtk.Widget.WidgetSetHasTooltipMethodInfo
    ResolveTextViewMethod "setHasWindow" o = Gtk.Widget.WidgetSetHasWindowMethodInfo
    ResolveTextViewMethod "setHexpand" o = Gtk.Widget.WidgetSetHexpandMethodInfo
    ResolveTextViewMethod "setHexpandSet" o = Gtk.Widget.WidgetSetHexpandSetMethodInfo
    ResolveTextViewMethod "setHscrollPolicy" o = Gtk.Scrollable.ScrollableSetHscrollPolicyMethodInfo
    ResolveTextViewMethod "setIndent" o = TextViewSetIndentMethodInfo
    ResolveTextViewMethod "setInputHints" o = TextViewSetInputHintsMethodInfo
    ResolveTextViewMethod "setInputPurpose" o = TextViewSetInputPurposeMethodInfo
    ResolveTextViewMethod "setJustification" o = TextViewSetJustificationMethodInfo
    ResolveTextViewMethod "setLeftMargin" o = TextViewSetLeftMarginMethodInfo
    ResolveTextViewMethod "setMapped" o = Gtk.Widget.WidgetSetMappedMethodInfo
    ResolveTextViewMethod "setMarginBottom" o = Gtk.Widget.WidgetSetMarginBottomMethodInfo
    ResolveTextViewMethod "setMarginEnd" o = Gtk.Widget.WidgetSetMarginEndMethodInfo
    ResolveTextViewMethod "setMarginLeft" o = Gtk.Widget.WidgetSetMarginLeftMethodInfo
    ResolveTextViewMethod "setMarginRight" o = Gtk.Widget.WidgetSetMarginRightMethodInfo
    ResolveTextViewMethod "setMarginStart" o = Gtk.Widget.WidgetSetMarginStartMethodInfo
    ResolveTextViewMethod "setMarginTop" o = Gtk.Widget.WidgetSetMarginTopMethodInfo
    ResolveTextViewMethod "setMonospace" o = TextViewSetMonospaceMethodInfo
    ResolveTextViewMethod "setName" o = Gtk.Widget.WidgetSetNameMethodInfo
    ResolveTextViewMethod "setNoShowAll" o = Gtk.Widget.WidgetSetNoShowAllMethodInfo
    ResolveTextViewMethod "setOpacity" o = Gtk.Widget.WidgetSetOpacityMethodInfo
    ResolveTextViewMethod "setOverwrite" o = TextViewSetOverwriteMethodInfo
    ResolveTextViewMethod "setParent" o = Gtk.Widget.WidgetSetParentMethodInfo
    ResolveTextViewMethod "setParentWindow" o = Gtk.Widget.WidgetSetParentWindowMethodInfo
    ResolveTextViewMethod "setPixelsAboveLines" o = TextViewSetPixelsAboveLinesMethodInfo
    ResolveTextViewMethod "setPixelsBelowLines" o = TextViewSetPixelsBelowLinesMethodInfo
    ResolveTextViewMethod "setPixelsInsideWrap" o = TextViewSetPixelsInsideWrapMethodInfo
    ResolveTextViewMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveTextViewMethod "setRealized" o = Gtk.Widget.WidgetSetRealizedMethodInfo
    ResolveTextViewMethod "setReallocateRedraws" o = Gtk.Container.ContainerSetReallocateRedrawsMethodInfo
    ResolveTextViewMethod "setReceivesDefault" o = Gtk.Widget.WidgetSetReceivesDefaultMethodInfo
    ResolveTextViewMethod "setRedrawOnAllocate" o = Gtk.Widget.WidgetSetRedrawOnAllocateMethodInfo
    ResolveTextViewMethod "setResizeMode" o = Gtk.Container.ContainerSetResizeModeMethodInfo
    ResolveTextViewMethod "setRightMargin" o = TextViewSetRightMarginMethodInfo
    ResolveTextViewMethod "setSensitive" o = Gtk.Widget.WidgetSetSensitiveMethodInfo
    ResolveTextViewMethod "setSizeRequest" o = Gtk.Widget.WidgetSetSizeRequestMethodInfo
    ResolveTextViewMethod "setState" o = Gtk.Widget.WidgetSetStateMethodInfo
    ResolveTextViewMethod "setStateFlags" o = Gtk.Widget.WidgetSetStateFlagsMethodInfo
    ResolveTextViewMethod "setStyle" o = Gtk.Widget.WidgetSetStyleMethodInfo
    ResolveTextViewMethod "setSupportMultidevice" o = Gtk.Widget.WidgetSetSupportMultideviceMethodInfo
    ResolveTextViewMethod "setTabs" o = TextViewSetTabsMethodInfo
    ResolveTextViewMethod "setTooltipMarkup" o = Gtk.Widget.WidgetSetTooltipMarkupMethodInfo
    ResolveTextViewMethod "setTooltipText" o = Gtk.Widget.WidgetSetTooltipTextMethodInfo
    ResolveTextViewMethod "setTooltipWindow" o = Gtk.Widget.WidgetSetTooltipWindowMethodInfo
    ResolveTextViewMethod "setTopMargin" o = TextViewSetTopMarginMethodInfo
    ResolveTextViewMethod "setVadjustment" o = Gtk.Scrollable.ScrollableSetVadjustmentMethodInfo
    ResolveTextViewMethod "setValign" o = Gtk.Widget.WidgetSetValignMethodInfo
    ResolveTextViewMethod "setVexpand" o = Gtk.Widget.WidgetSetVexpandMethodInfo
    ResolveTextViewMethod "setVexpandSet" o = Gtk.Widget.WidgetSetVexpandSetMethodInfo
    ResolveTextViewMethod "setVisible" o = Gtk.Widget.WidgetSetVisibleMethodInfo
    ResolveTextViewMethod "setVisual" o = Gtk.Widget.WidgetSetVisualMethodInfo
    ResolveTextViewMethod "setVscrollPolicy" o = Gtk.Scrollable.ScrollableSetVscrollPolicyMethodInfo
    ResolveTextViewMethod "setWindow" o = Gtk.Widget.WidgetSetWindowMethodInfo
    ResolveTextViewMethod "setWrapMode" o = TextViewSetWrapModeMethodInfo
    ResolveTextViewMethod l o = O.MethodResolutionFailed l o

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

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

-- signal TextView::backspace
type TextViewBackspaceCallback =
    IO ()

noTextViewBackspaceCallback :: Maybe TextViewBackspaceCallback
noTextViewBackspaceCallback = Nothing

type C_TextViewBackspaceCallback =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mk_TextViewBackspaceCallback :: C_TextViewBackspaceCallback -> IO (FunPtr C_TextViewBackspaceCallback)

genClosure_TextViewBackspace :: TextViewBackspaceCallback -> IO Closure
genClosure_TextViewBackspace cb = do
    let cb' = wrap_TextViewBackspaceCallback cb
    mk_TextViewBackspaceCallback cb' >>= newCClosure


wrap_TextViewBackspaceCallback ::
    TextViewBackspaceCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
wrap_TextViewBackspaceCallback _cb _ _ = do
    _cb 


onTextViewBackspace :: (GObject a, MonadIO m) => a -> TextViewBackspaceCallback -> m SignalHandlerId
onTextViewBackspace obj cb = liftIO $ connectTextViewBackspace obj cb SignalConnectBefore
afterTextViewBackspace :: (GObject a, MonadIO m) => a -> TextViewBackspaceCallback -> m SignalHandlerId
afterTextViewBackspace obj cb = connectTextViewBackspace obj cb SignalConnectAfter

connectTextViewBackspace :: (GObject a, MonadIO m) =>
                            a -> TextViewBackspaceCallback -> SignalConnectMode -> m SignalHandlerId
connectTextViewBackspace obj cb after = liftIO $ do
    let cb' = wrap_TextViewBackspaceCallback cb
    cb'' <- mk_TextViewBackspaceCallback cb'
    connectSignalFunPtr obj "backspace" cb'' after

-- signal TextView::copy-clipboard
type TextViewCopyClipboardCallback =
    IO ()

noTextViewCopyClipboardCallback :: Maybe TextViewCopyClipboardCallback
noTextViewCopyClipboardCallback = Nothing

type C_TextViewCopyClipboardCallback =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mk_TextViewCopyClipboardCallback :: C_TextViewCopyClipboardCallback -> IO (FunPtr C_TextViewCopyClipboardCallback)

genClosure_TextViewCopyClipboard :: TextViewCopyClipboardCallback -> IO Closure
genClosure_TextViewCopyClipboard cb = do
    let cb' = wrap_TextViewCopyClipboardCallback cb
    mk_TextViewCopyClipboardCallback cb' >>= newCClosure


wrap_TextViewCopyClipboardCallback ::
    TextViewCopyClipboardCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
wrap_TextViewCopyClipboardCallback _cb _ _ = do
    _cb 


onTextViewCopyClipboard :: (GObject a, MonadIO m) => a -> TextViewCopyClipboardCallback -> m SignalHandlerId
onTextViewCopyClipboard obj cb = liftIO $ connectTextViewCopyClipboard obj cb SignalConnectBefore
afterTextViewCopyClipboard :: (GObject a, MonadIO m) => a -> TextViewCopyClipboardCallback -> m SignalHandlerId
afterTextViewCopyClipboard obj cb = connectTextViewCopyClipboard obj cb SignalConnectAfter

connectTextViewCopyClipboard :: (GObject a, MonadIO m) =>
                                a -> TextViewCopyClipboardCallback -> SignalConnectMode -> m SignalHandlerId
connectTextViewCopyClipboard obj cb after = liftIO $ do
    let cb' = wrap_TextViewCopyClipboardCallback cb
    cb'' <- mk_TextViewCopyClipboardCallback cb'
    connectSignalFunPtr obj "copy-clipboard" cb'' after

-- signal TextView::cut-clipboard
type TextViewCutClipboardCallback =
    IO ()

noTextViewCutClipboardCallback :: Maybe TextViewCutClipboardCallback
noTextViewCutClipboardCallback = Nothing

type C_TextViewCutClipboardCallback =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mk_TextViewCutClipboardCallback :: C_TextViewCutClipboardCallback -> IO (FunPtr C_TextViewCutClipboardCallback)

genClosure_TextViewCutClipboard :: TextViewCutClipboardCallback -> IO Closure
genClosure_TextViewCutClipboard cb = do
    let cb' = wrap_TextViewCutClipboardCallback cb
    mk_TextViewCutClipboardCallback cb' >>= newCClosure


wrap_TextViewCutClipboardCallback ::
    TextViewCutClipboardCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
wrap_TextViewCutClipboardCallback _cb _ _ = do
    _cb 


onTextViewCutClipboard :: (GObject a, MonadIO m) => a -> TextViewCutClipboardCallback -> m SignalHandlerId
onTextViewCutClipboard obj cb = liftIO $ connectTextViewCutClipboard obj cb SignalConnectBefore
afterTextViewCutClipboard :: (GObject a, MonadIO m) => a -> TextViewCutClipboardCallback -> m SignalHandlerId
afterTextViewCutClipboard obj cb = connectTextViewCutClipboard obj cb SignalConnectAfter

connectTextViewCutClipboard :: (GObject a, MonadIO m) =>
                               a -> TextViewCutClipboardCallback -> SignalConnectMode -> m SignalHandlerId
connectTextViewCutClipboard obj cb after = liftIO $ do
    let cb' = wrap_TextViewCutClipboardCallback cb
    cb'' <- mk_TextViewCutClipboardCallback cb'
    connectSignalFunPtr obj "cut-clipboard" cb'' after

-- signal TextView::delete-from-cursor
type TextViewDeleteFromCursorCallback =
    Gtk.Enums.DeleteType ->
    Int32 ->
    IO ()

noTextViewDeleteFromCursorCallback :: Maybe TextViewDeleteFromCursorCallback
noTextViewDeleteFromCursorCallback = Nothing

type C_TextViewDeleteFromCursorCallback =
    Ptr () ->                               -- object
    CUInt ->
    Int32 ->
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mk_TextViewDeleteFromCursorCallback :: C_TextViewDeleteFromCursorCallback -> IO (FunPtr C_TextViewDeleteFromCursorCallback)

genClosure_TextViewDeleteFromCursor :: TextViewDeleteFromCursorCallback -> IO Closure
genClosure_TextViewDeleteFromCursor cb = do
    let cb' = wrap_TextViewDeleteFromCursorCallback cb
    mk_TextViewDeleteFromCursorCallback cb' >>= newCClosure


wrap_TextViewDeleteFromCursorCallback ::
    TextViewDeleteFromCursorCallback ->
    Ptr () ->
    CUInt ->
    Int32 ->
    Ptr () ->
    IO ()
wrap_TextViewDeleteFromCursorCallback _cb _ type_ count _ = do
    let type_' = (toEnum . fromIntegral) type_
    _cb  type_' count


onTextViewDeleteFromCursor :: (GObject a, MonadIO m) => a -> TextViewDeleteFromCursorCallback -> m SignalHandlerId
onTextViewDeleteFromCursor obj cb = liftIO $ connectTextViewDeleteFromCursor obj cb SignalConnectBefore
afterTextViewDeleteFromCursor :: (GObject a, MonadIO m) => a -> TextViewDeleteFromCursorCallback -> m SignalHandlerId
afterTextViewDeleteFromCursor obj cb = connectTextViewDeleteFromCursor obj cb SignalConnectAfter

connectTextViewDeleteFromCursor :: (GObject a, MonadIO m) =>
                                   a -> TextViewDeleteFromCursorCallback -> SignalConnectMode -> m SignalHandlerId
connectTextViewDeleteFromCursor obj cb after = liftIO $ do
    let cb' = wrap_TextViewDeleteFromCursorCallback cb
    cb'' <- mk_TextViewDeleteFromCursorCallback cb'
    connectSignalFunPtr obj "delete-from-cursor" cb'' after

-- signal TextView::extend-selection
type TextViewExtendSelectionCallback =
    Gtk.Enums.TextExtendSelection ->
    Gtk.TextIter.TextIter ->
    Gtk.TextIter.TextIter ->
    Gtk.TextIter.TextIter ->
    IO Bool

noTextViewExtendSelectionCallback :: Maybe TextViewExtendSelectionCallback
noTextViewExtendSelectionCallback = Nothing

type C_TextViewExtendSelectionCallback =
    Ptr () ->                               -- object
    CUInt ->
    Ptr Gtk.TextIter.TextIter ->
    Ptr Gtk.TextIter.TextIter ->
    Ptr Gtk.TextIter.TextIter ->
    Ptr () ->                               -- user_data
    IO CInt

foreign import ccall "wrapper"
    mk_TextViewExtendSelectionCallback :: C_TextViewExtendSelectionCallback -> IO (FunPtr C_TextViewExtendSelectionCallback)

genClosure_TextViewExtendSelection :: TextViewExtendSelectionCallback -> IO Closure
genClosure_TextViewExtendSelection cb = do
    let cb' = wrap_TextViewExtendSelectionCallback cb
    mk_TextViewExtendSelectionCallback cb' >>= newCClosure


wrap_TextViewExtendSelectionCallback ::
    TextViewExtendSelectionCallback ->
    Ptr () ->
    CUInt ->
    Ptr Gtk.TextIter.TextIter ->
    Ptr Gtk.TextIter.TextIter ->
    Ptr Gtk.TextIter.TextIter ->
    Ptr () ->
    IO CInt
wrap_TextViewExtendSelectionCallback _cb _ granularity location start end _ = do
    let granularity' = (toEnum . fromIntegral) granularity
    location' <- (newBoxed Gtk.TextIter.TextIter) location
    start' <- (newBoxed Gtk.TextIter.TextIter) start
    end' <- (newBoxed Gtk.TextIter.TextIter) end
    result <- _cb  granularity' location' start' end'
    let result' = (fromIntegral . fromEnum) result
    return result'


onTextViewExtendSelection :: (GObject a, MonadIO m) => a -> TextViewExtendSelectionCallback -> m SignalHandlerId
onTextViewExtendSelection obj cb = liftIO $ connectTextViewExtendSelection obj cb SignalConnectBefore
afterTextViewExtendSelection :: (GObject a, MonadIO m) => a -> TextViewExtendSelectionCallback -> m SignalHandlerId
afterTextViewExtendSelection obj cb = connectTextViewExtendSelection obj cb SignalConnectAfter

connectTextViewExtendSelection :: (GObject a, MonadIO m) =>
                                  a -> TextViewExtendSelectionCallback -> SignalConnectMode -> m SignalHandlerId
connectTextViewExtendSelection obj cb after = liftIO $ do
    let cb' = wrap_TextViewExtendSelectionCallback cb
    cb'' <- mk_TextViewExtendSelectionCallback cb'
    connectSignalFunPtr obj "extend-selection" cb'' after

-- signal TextView::insert-at-cursor
type TextViewInsertAtCursorCallback =
    T.Text ->
    IO ()

noTextViewInsertAtCursorCallback :: Maybe TextViewInsertAtCursorCallback
noTextViewInsertAtCursorCallback = Nothing

type C_TextViewInsertAtCursorCallback =
    Ptr () ->                               -- object
    CString ->
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mk_TextViewInsertAtCursorCallback :: C_TextViewInsertAtCursorCallback -> IO (FunPtr C_TextViewInsertAtCursorCallback)

genClosure_TextViewInsertAtCursor :: TextViewInsertAtCursorCallback -> IO Closure
genClosure_TextViewInsertAtCursor cb = do
    let cb' = wrap_TextViewInsertAtCursorCallback cb
    mk_TextViewInsertAtCursorCallback cb' >>= newCClosure


wrap_TextViewInsertAtCursorCallback ::
    TextViewInsertAtCursorCallback ->
    Ptr () ->
    CString ->
    Ptr () ->
    IO ()
wrap_TextViewInsertAtCursorCallback _cb _ string _ = do
    string' <- cstringToText string
    _cb  string'


onTextViewInsertAtCursor :: (GObject a, MonadIO m) => a -> TextViewInsertAtCursorCallback -> m SignalHandlerId
onTextViewInsertAtCursor obj cb = liftIO $ connectTextViewInsertAtCursor obj cb SignalConnectBefore
afterTextViewInsertAtCursor :: (GObject a, MonadIO m) => a -> TextViewInsertAtCursorCallback -> m SignalHandlerId
afterTextViewInsertAtCursor obj cb = connectTextViewInsertAtCursor obj cb SignalConnectAfter

connectTextViewInsertAtCursor :: (GObject a, MonadIO m) =>
                                 a -> TextViewInsertAtCursorCallback -> SignalConnectMode -> m SignalHandlerId
connectTextViewInsertAtCursor obj cb after = liftIO $ do
    let cb' = wrap_TextViewInsertAtCursorCallback cb
    cb'' <- mk_TextViewInsertAtCursorCallback cb'
    connectSignalFunPtr obj "insert-at-cursor" cb'' after

-- signal TextView::move-cursor
type TextViewMoveCursorCallback =
    Gtk.Enums.MovementStep ->
    Int32 ->
    Bool ->
    IO ()

noTextViewMoveCursorCallback :: Maybe TextViewMoveCursorCallback
noTextViewMoveCursorCallback = Nothing

type C_TextViewMoveCursorCallback =
    Ptr () ->                               -- object
    CUInt ->
    Int32 ->
    CInt ->
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mk_TextViewMoveCursorCallback :: C_TextViewMoveCursorCallback -> IO (FunPtr C_TextViewMoveCursorCallback)

genClosure_TextViewMoveCursor :: TextViewMoveCursorCallback -> IO Closure
genClosure_TextViewMoveCursor cb = do
    let cb' = wrap_TextViewMoveCursorCallback cb
    mk_TextViewMoveCursorCallback cb' >>= newCClosure


wrap_TextViewMoveCursorCallback ::
    TextViewMoveCursorCallback ->
    Ptr () ->
    CUInt ->
    Int32 ->
    CInt ->
    Ptr () ->
    IO ()
wrap_TextViewMoveCursorCallback _cb _ step count extendSelection _ = do
    let step' = (toEnum . fromIntegral) step
    let extendSelection' = (/= 0) extendSelection
    _cb  step' count extendSelection'


onTextViewMoveCursor :: (GObject a, MonadIO m) => a -> TextViewMoveCursorCallback -> m SignalHandlerId
onTextViewMoveCursor obj cb = liftIO $ connectTextViewMoveCursor obj cb SignalConnectBefore
afterTextViewMoveCursor :: (GObject a, MonadIO m) => a -> TextViewMoveCursorCallback -> m SignalHandlerId
afterTextViewMoveCursor obj cb = connectTextViewMoveCursor obj cb SignalConnectAfter

connectTextViewMoveCursor :: (GObject a, MonadIO m) =>
                             a -> TextViewMoveCursorCallback -> SignalConnectMode -> m SignalHandlerId
connectTextViewMoveCursor obj cb after = liftIO $ do
    let cb' = wrap_TextViewMoveCursorCallback cb
    cb'' <- mk_TextViewMoveCursorCallback cb'
    connectSignalFunPtr obj "move-cursor" cb'' after

-- signal TextView::move-viewport
type TextViewMoveViewportCallback =
    Gtk.Enums.ScrollStep ->
    Int32 ->
    IO ()

noTextViewMoveViewportCallback :: Maybe TextViewMoveViewportCallback
noTextViewMoveViewportCallback = Nothing

type C_TextViewMoveViewportCallback =
    Ptr () ->                               -- object
    CUInt ->
    Int32 ->
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mk_TextViewMoveViewportCallback :: C_TextViewMoveViewportCallback -> IO (FunPtr C_TextViewMoveViewportCallback)

genClosure_TextViewMoveViewport :: TextViewMoveViewportCallback -> IO Closure
genClosure_TextViewMoveViewport cb = do
    let cb' = wrap_TextViewMoveViewportCallback cb
    mk_TextViewMoveViewportCallback cb' >>= newCClosure


wrap_TextViewMoveViewportCallback ::
    TextViewMoveViewportCallback ->
    Ptr () ->
    CUInt ->
    Int32 ->
    Ptr () ->
    IO ()
wrap_TextViewMoveViewportCallback _cb _ step count _ = do
    let step' = (toEnum . fromIntegral) step
    _cb  step' count


onTextViewMoveViewport :: (GObject a, MonadIO m) => a -> TextViewMoveViewportCallback -> m SignalHandlerId
onTextViewMoveViewport obj cb = liftIO $ connectTextViewMoveViewport obj cb SignalConnectBefore
afterTextViewMoveViewport :: (GObject a, MonadIO m) => a -> TextViewMoveViewportCallback -> m SignalHandlerId
afterTextViewMoveViewport obj cb = connectTextViewMoveViewport obj cb SignalConnectAfter

connectTextViewMoveViewport :: (GObject a, MonadIO m) =>
                               a -> TextViewMoveViewportCallback -> SignalConnectMode -> m SignalHandlerId
connectTextViewMoveViewport obj cb after = liftIO $ do
    let cb' = wrap_TextViewMoveViewportCallback cb
    cb'' <- mk_TextViewMoveViewportCallback cb'
    connectSignalFunPtr obj "move-viewport" cb'' after

-- signal TextView::paste-clipboard
type TextViewPasteClipboardCallback =
    IO ()

noTextViewPasteClipboardCallback :: Maybe TextViewPasteClipboardCallback
noTextViewPasteClipboardCallback = Nothing

type C_TextViewPasteClipboardCallback =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mk_TextViewPasteClipboardCallback :: C_TextViewPasteClipboardCallback -> IO (FunPtr C_TextViewPasteClipboardCallback)

genClosure_TextViewPasteClipboard :: TextViewPasteClipboardCallback -> IO Closure
genClosure_TextViewPasteClipboard cb = do
    let cb' = wrap_TextViewPasteClipboardCallback cb
    mk_TextViewPasteClipboardCallback cb' >>= newCClosure


wrap_TextViewPasteClipboardCallback ::
    TextViewPasteClipboardCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
wrap_TextViewPasteClipboardCallback _cb _ _ = do
    _cb 


onTextViewPasteClipboard :: (GObject a, MonadIO m) => a -> TextViewPasteClipboardCallback -> m SignalHandlerId
onTextViewPasteClipboard obj cb = liftIO $ connectTextViewPasteClipboard obj cb SignalConnectBefore
afterTextViewPasteClipboard :: (GObject a, MonadIO m) => a -> TextViewPasteClipboardCallback -> m SignalHandlerId
afterTextViewPasteClipboard obj cb = connectTextViewPasteClipboard obj cb SignalConnectAfter

connectTextViewPasteClipboard :: (GObject a, MonadIO m) =>
                                 a -> TextViewPasteClipboardCallback -> SignalConnectMode -> m SignalHandlerId
connectTextViewPasteClipboard obj cb after = liftIO $ do
    let cb' = wrap_TextViewPasteClipboardCallback cb
    cb'' <- mk_TextViewPasteClipboardCallback cb'
    connectSignalFunPtr obj "paste-clipboard" cb'' after

-- signal TextView::populate-popup
type TextViewPopulatePopupCallback =
    Gtk.Widget.Widget ->
    IO ()

noTextViewPopulatePopupCallback :: Maybe TextViewPopulatePopupCallback
noTextViewPopulatePopupCallback = Nothing

type C_TextViewPopulatePopupCallback =
    Ptr () ->                               -- object
    Ptr Gtk.Widget.Widget ->
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mk_TextViewPopulatePopupCallback :: C_TextViewPopulatePopupCallback -> IO (FunPtr C_TextViewPopulatePopupCallback)

genClosure_TextViewPopulatePopup :: TextViewPopulatePopupCallback -> IO Closure
genClosure_TextViewPopulatePopup cb = do
    let cb' = wrap_TextViewPopulatePopupCallback cb
    mk_TextViewPopulatePopupCallback cb' >>= newCClosure


wrap_TextViewPopulatePopupCallback ::
    TextViewPopulatePopupCallback ->
    Ptr () ->
    Ptr Gtk.Widget.Widget ->
    Ptr () ->
    IO ()
wrap_TextViewPopulatePopupCallback _cb _ popup _ = do
    popup' <- (newObject Gtk.Widget.Widget) popup
    _cb  popup'


onTextViewPopulatePopup :: (GObject a, MonadIO m) => a -> TextViewPopulatePopupCallback -> m SignalHandlerId
onTextViewPopulatePopup obj cb = liftIO $ connectTextViewPopulatePopup obj cb SignalConnectBefore
afterTextViewPopulatePopup :: (GObject a, MonadIO m) => a -> TextViewPopulatePopupCallback -> m SignalHandlerId
afterTextViewPopulatePopup obj cb = connectTextViewPopulatePopup obj cb SignalConnectAfter

connectTextViewPopulatePopup :: (GObject a, MonadIO m) =>
                                a -> TextViewPopulatePopupCallback -> SignalConnectMode -> m SignalHandlerId
connectTextViewPopulatePopup obj cb after = liftIO $ do
    let cb' = wrap_TextViewPopulatePopupCallback cb
    cb'' <- mk_TextViewPopulatePopupCallback cb'
    connectSignalFunPtr obj "populate-popup" cb'' after

-- signal TextView::preedit-changed
type TextViewPreeditChangedCallback =
    T.Text ->
    IO ()

noTextViewPreeditChangedCallback :: Maybe TextViewPreeditChangedCallback
noTextViewPreeditChangedCallback = Nothing

type C_TextViewPreeditChangedCallback =
    Ptr () ->                               -- object
    CString ->
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mk_TextViewPreeditChangedCallback :: C_TextViewPreeditChangedCallback -> IO (FunPtr C_TextViewPreeditChangedCallback)

genClosure_TextViewPreeditChanged :: TextViewPreeditChangedCallback -> IO Closure
genClosure_TextViewPreeditChanged cb = do
    let cb' = wrap_TextViewPreeditChangedCallback cb
    mk_TextViewPreeditChangedCallback cb' >>= newCClosure


wrap_TextViewPreeditChangedCallback ::
    TextViewPreeditChangedCallback ->
    Ptr () ->
    CString ->
    Ptr () ->
    IO ()
wrap_TextViewPreeditChangedCallback _cb _ preedit _ = do
    preedit' <- cstringToText preedit
    _cb  preedit'


onTextViewPreeditChanged :: (GObject a, MonadIO m) => a -> TextViewPreeditChangedCallback -> m SignalHandlerId
onTextViewPreeditChanged obj cb = liftIO $ connectTextViewPreeditChanged obj cb SignalConnectBefore
afterTextViewPreeditChanged :: (GObject a, MonadIO m) => a -> TextViewPreeditChangedCallback -> m SignalHandlerId
afterTextViewPreeditChanged obj cb = connectTextViewPreeditChanged obj cb SignalConnectAfter

connectTextViewPreeditChanged :: (GObject a, MonadIO m) =>
                                 a -> TextViewPreeditChangedCallback -> SignalConnectMode -> m SignalHandlerId
connectTextViewPreeditChanged obj cb after = liftIO $ do
    let cb' = wrap_TextViewPreeditChangedCallback cb
    cb'' <- mk_TextViewPreeditChangedCallback cb'
    connectSignalFunPtr obj "preedit-changed" cb'' after

-- signal TextView::select-all
type TextViewSelectAllCallback =
    Bool ->
    IO ()

noTextViewSelectAllCallback :: Maybe TextViewSelectAllCallback
noTextViewSelectAllCallback = Nothing

type C_TextViewSelectAllCallback =
    Ptr () ->                               -- object
    CInt ->
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mk_TextViewSelectAllCallback :: C_TextViewSelectAllCallback -> IO (FunPtr C_TextViewSelectAllCallback)

genClosure_TextViewSelectAll :: TextViewSelectAllCallback -> IO Closure
genClosure_TextViewSelectAll cb = do
    let cb' = wrap_TextViewSelectAllCallback cb
    mk_TextViewSelectAllCallback cb' >>= newCClosure


wrap_TextViewSelectAllCallback ::
    TextViewSelectAllCallback ->
    Ptr () ->
    CInt ->
    Ptr () ->
    IO ()
wrap_TextViewSelectAllCallback _cb _ select _ = do
    let select' = (/= 0) select
    _cb  select'


onTextViewSelectAll :: (GObject a, MonadIO m) => a -> TextViewSelectAllCallback -> m SignalHandlerId
onTextViewSelectAll obj cb = liftIO $ connectTextViewSelectAll obj cb SignalConnectBefore
afterTextViewSelectAll :: (GObject a, MonadIO m) => a -> TextViewSelectAllCallback -> m SignalHandlerId
afterTextViewSelectAll obj cb = connectTextViewSelectAll obj cb SignalConnectAfter

connectTextViewSelectAll :: (GObject a, MonadIO m) =>
                            a -> TextViewSelectAllCallback -> SignalConnectMode -> m SignalHandlerId
connectTextViewSelectAll obj cb after = liftIO $ do
    let cb' = wrap_TextViewSelectAllCallback cb
    cb'' <- mk_TextViewSelectAllCallback cb'
    connectSignalFunPtr obj "select-all" cb'' after

-- signal TextView::set-anchor
type TextViewSetAnchorCallback =
    IO ()

noTextViewSetAnchorCallback :: Maybe TextViewSetAnchorCallback
noTextViewSetAnchorCallback = Nothing

type C_TextViewSetAnchorCallback =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mk_TextViewSetAnchorCallback :: C_TextViewSetAnchorCallback -> IO (FunPtr C_TextViewSetAnchorCallback)

genClosure_TextViewSetAnchor :: TextViewSetAnchorCallback -> IO Closure
genClosure_TextViewSetAnchor cb = do
    let cb' = wrap_TextViewSetAnchorCallback cb
    mk_TextViewSetAnchorCallback cb' >>= newCClosure


wrap_TextViewSetAnchorCallback ::
    TextViewSetAnchorCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
wrap_TextViewSetAnchorCallback _cb _ _ = do
    _cb 


onTextViewSetAnchor :: (GObject a, MonadIO m) => a -> TextViewSetAnchorCallback -> m SignalHandlerId
onTextViewSetAnchor obj cb = liftIO $ connectTextViewSetAnchor obj cb SignalConnectBefore
afterTextViewSetAnchor :: (GObject a, MonadIO m) => a -> TextViewSetAnchorCallback -> m SignalHandlerId
afterTextViewSetAnchor obj cb = connectTextViewSetAnchor obj cb SignalConnectAfter

connectTextViewSetAnchor :: (GObject a, MonadIO m) =>
                            a -> TextViewSetAnchorCallback -> SignalConnectMode -> m SignalHandlerId
connectTextViewSetAnchor obj cb after = liftIO $ do
    let cb' = wrap_TextViewSetAnchorCallback cb
    cb'' <- mk_TextViewSetAnchorCallback cb'
    connectSignalFunPtr obj "set-anchor" cb'' after

-- signal TextView::toggle-cursor-visible
type TextViewToggleCursorVisibleCallback =
    IO ()

noTextViewToggleCursorVisibleCallback :: Maybe TextViewToggleCursorVisibleCallback
noTextViewToggleCursorVisibleCallback = Nothing

type C_TextViewToggleCursorVisibleCallback =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mk_TextViewToggleCursorVisibleCallback :: C_TextViewToggleCursorVisibleCallback -> IO (FunPtr C_TextViewToggleCursorVisibleCallback)

genClosure_TextViewToggleCursorVisible :: TextViewToggleCursorVisibleCallback -> IO Closure
genClosure_TextViewToggleCursorVisible cb = do
    let cb' = wrap_TextViewToggleCursorVisibleCallback cb
    mk_TextViewToggleCursorVisibleCallback cb' >>= newCClosure


wrap_TextViewToggleCursorVisibleCallback ::
    TextViewToggleCursorVisibleCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
wrap_TextViewToggleCursorVisibleCallback _cb _ _ = do
    _cb 


onTextViewToggleCursorVisible :: (GObject a, MonadIO m) => a -> TextViewToggleCursorVisibleCallback -> m SignalHandlerId
onTextViewToggleCursorVisible obj cb = liftIO $ connectTextViewToggleCursorVisible obj cb SignalConnectBefore
afterTextViewToggleCursorVisible :: (GObject a, MonadIO m) => a -> TextViewToggleCursorVisibleCallback -> m SignalHandlerId
afterTextViewToggleCursorVisible obj cb = connectTextViewToggleCursorVisible obj cb SignalConnectAfter

connectTextViewToggleCursorVisible :: (GObject a, MonadIO m) =>
                                      a -> TextViewToggleCursorVisibleCallback -> SignalConnectMode -> m SignalHandlerId
connectTextViewToggleCursorVisible obj cb after = liftIO $ do
    let cb' = wrap_TextViewToggleCursorVisibleCallback cb
    cb'' <- mk_TextViewToggleCursorVisibleCallback cb'
    connectSignalFunPtr obj "toggle-cursor-visible" cb'' after

-- signal TextView::toggle-overwrite
type TextViewToggleOverwriteCallback =
    IO ()

noTextViewToggleOverwriteCallback :: Maybe TextViewToggleOverwriteCallback
noTextViewToggleOverwriteCallback = Nothing

type C_TextViewToggleOverwriteCallback =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mk_TextViewToggleOverwriteCallback :: C_TextViewToggleOverwriteCallback -> IO (FunPtr C_TextViewToggleOverwriteCallback)

genClosure_TextViewToggleOverwrite :: TextViewToggleOverwriteCallback -> IO Closure
genClosure_TextViewToggleOverwrite cb = do
    let cb' = wrap_TextViewToggleOverwriteCallback cb
    mk_TextViewToggleOverwriteCallback cb' >>= newCClosure


wrap_TextViewToggleOverwriteCallback ::
    TextViewToggleOverwriteCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
wrap_TextViewToggleOverwriteCallback _cb _ _ = do
    _cb 


onTextViewToggleOverwrite :: (GObject a, MonadIO m) => a -> TextViewToggleOverwriteCallback -> m SignalHandlerId
onTextViewToggleOverwrite obj cb = liftIO $ connectTextViewToggleOverwrite obj cb SignalConnectBefore
afterTextViewToggleOverwrite :: (GObject a, MonadIO m) => a -> TextViewToggleOverwriteCallback -> m SignalHandlerId
afterTextViewToggleOverwrite obj cb = connectTextViewToggleOverwrite obj cb SignalConnectAfter

connectTextViewToggleOverwrite :: (GObject a, MonadIO m) =>
                                  a -> TextViewToggleOverwriteCallback -> SignalConnectMode -> m SignalHandlerId
connectTextViewToggleOverwrite obj cb after = liftIO $ do
    let cb' = wrap_TextViewToggleOverwriteCallback cb
    cb'' <- mk_TextViewToggleOverwriteCallback cb'
    connectSignalFunPtr obj "toggle-overwrite" cb'' after

-- VVV Prop "accepts-tab"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

getTextViewAcceptsTab :: (MonadIO m, IsTextView o) => o -> m Bool
getTextViewAcceptsTab obj = liftIO $ getObjectPropertyBool obj "accepts-tab"

setTextViewAcceptsTab :: (MonadIO m, IsTextView o) => o -> Bool -> m ()
setTextViewAcceptsTab obj val = liftIO $ setObjectPropertyBool obj "accepts-tab" val

constructTextViewAcceptsTab :: (IsTextView o) => Bool -> IO (GValueConstruct o)
constructTextViewAcceptsTab val = constructObjectPropertyBool "accepts-tab" val

data TextViewAcceptsTabPropertyInfo
instance AttrInfo TextViewAcceptsTabPropertyInfo where
    type AttrAllowedOps TextViewAcceptsTabPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextViewAcceptsTabPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextViewAcceptsTabPropertyInfo = IsTextView
    type AttrGetType TextViewAcceptsTabPropertyInfo = Bool
    type AttrLabel TextViewAcceptsTabPropertyInfo = "accepts-tab"
    type AttrOrigin TextViewAcceptsTabPropertyInfo = TextView
    attrGet _ = getTextViewAcceptsTab
    attrSet _ = setTextViewAcceptsTab
    attrConstruct _ = constructTextViewAcceptsTab
    attrClear _ = undefined

-- VVV Prop "bottom-margin"
   -- Type: TBasicType TInt
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

getTextViewBottomMargin :: (MonadIO m, IsTextView o) => o -> m Int32
getTextViewBottomMargin obj = liftIO $ getObjectPropertyInt32 obj "bottom-margin"

setTextViewBottomMargin :: (MonadIO m, IsTextView o) => o -> Int32 -> m ()
setTextViewBottomMargin obj val = liftIO $ setObjectPropertyInt32 obj "bottom-margin" val

constructTextViewBottomMargin :: (IsTextView o) => Int32 -> IO (GValueConstruct o)
constructTextViewBottomMargin val = constructObjectPropertyInt32 "bottom-margin" val

data TextViewBottomMarginPropertyInfo
instance AttrInfo TextViewBottomMarginPropertyInfo where
    type AttrAllowedOps TextViewBottomMarginPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextViewBottomMarginPropertyInfo = (~) Int32
    type AttrBaseTypeConstraint TextViewBottomMarginPropertyInfo = IsTextView
    type AttrGetType TextViewBottomMarginPropertyInfo = Int32
    type AttrLabel TextViewBottomMarginPropertyInfo = "bottom-margin"
    type AttrOrigin TextViewBottomMarginPropertyInfo = TextView
    attrGet _ = getTextViewBottomMargin
    attrSet _ = setTextViewBottomMargin
    attrConstruct _ = constructTextViewBottomMargin
    attrClear _ = undefined

-- VVV Prop "buffer"
   -- Type: TInterface (Name {namespace = "Gtk", name = "TextBuffer"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just True)

getTextViewBuffer :: (MonadIO m, IsTextView o) => o -> m Gtk.TextBuffer.TextBuffer
getTextViewBuffer obj = liftIO $ checkUnexpectedNothing "getTextViewBuffer" $ getObjectPropertyObject obj "buffer" Gtk.TextBuffer.TextBuffer

setTextViewBuffer :: (MonadIO m, IsTextView o, Gtk.TextBuffer.IsTextBuffer a) => o -> a -> m ()
setTextViewBuffer obj val = liftIO $ setObjectPropertyObject obj "buffer" (Just val)

constructTextViewBuffer :: (IsTextView o, Gtk.TextBuffer.IsTextBuffer a) => a -> IO (GValueConstruct o)
constructTextViewBuffer val = constructObjectPropertyObject "buffer" (Just val)

clearTextViewBuffer :: (MonadIO m, IsTextView o) => o -> m ()
clearTextViewBuffer obj = liftIO $ setObjectPropertyObject obj "buffer" (Nothing :: Maybe Gtk.TextBuffer.TextBuffer)

data TextViewBufferPropertyInfo
instance AttrInfo TextViewBufferPropertyInfo where
    type AttrAllowedOps TextViewBufferPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint TextViewBufferPropertyInfo = Gtk.TextBuffer.IsTextBuffer
    type AttrBaseTypeConstraint TextViewBufferPropertyInfo = IsTextView
    type AttrGetType TextViewBufferPropertyInfo = Gtk.TextBuffer.TextBuffer
    type AttrLabel TextViewBufferPropertyInfo = "buffer"
    type AttrOrigin TextViewBufferPropertyInfo = TextView
    attrGet _ = getTextViewBuffer
    attrSet _ = setTextViewBuffer
    attrConstruct _ = constructTextViewBuffer
    attrClear _ = clearTextViewBuffer

-- VVV Prop "cursor-visible"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

getTextViewCursorVisible :: (MonadIO m, IsTextView o) => o -> m Bool
getTextViewCursorVisible obj = liftIO $ getObjectPropertyBool obj "cursor-visible"

setTextViewCursorVisible :: (MonadIO m, IsTextView o) => o -> Bool -> m ()
setTextViewCursorVisible obj val = liftIO $ setObjectPropertyBool obj "cursor-visible" val

constructTextViewCursorVisible :: (IsTextView o) => Bool -> IO (GValueConstruct o)
constructTextViewCursorVisible val = constructObjectPropertyBool "cursor-visible" val

data TextViewCursorVisiblePropertyInfo
instance AttrInfo TextViewCursorVisiblePropertyInfo where
    type AttrAllowedOps TextViewCursorVisiblePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextViewCursorVisiblePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextViewCursorVisiblePropertyInfo = IsTextView
    type AttrGetType TextViewCursorVisiblePropertyInfo = Bool
    type AttrLabel TextViewCursorVisiblePropertyInfo = "cursor-visible"
    type AttrOrigin TextViewCursorVisiblePropertyInfo = TextView
    attrGet _ = getTextViewCursorVisible
    attrSet _ = setTextViewCursorVisible
    attrConstruct _ = constructTextViewCursorVisible
    attrClear _ = undefined

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

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

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

constructTextViewEditable :: (IsTextView o) => Bool -> IO (GValueConstruct o)
constructTextViewEditable val = constructObjectPropertyBool "editable" val

data TextViewEditablePropertyInfo
instance AttrInfo TextViewEditablePropertyInfo where
    type AttrAllowedOps TextViewEditablePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextViewEditablePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextViewEditablePropertyInfo = IsTextView
    type AttrGetType TextViewEditablePropertyInfo = Bool
    type AttrLabel TextViewEditablePropertyInfo = "editable"
    type AttrOrigin TextViewEditablePropertyInfo = TextView
    attrGet _ = getTextViewEditable
    attrSet _ = setTextViewEditable
    attrConstruct _ = constructTextViewEditable
    attrClear _ = undefined

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

getTextViewImModule :: (MonadIO m, IsTextView o) => o -> m (Maybe T.Text)
getTextViewImModule obj = liftIO $ getObjectPropertyString obj "im-module"

setTextViewImModule :: (MonadIO m, IsTextView o) => o -> T.Text -> m ()
setTextViewImModule obj val = liftIO $ setObjectPropertyString obj "im-module" (Just val)

constructTextViewImModule :: (IsTextView o) => T.Text -> IO (GValueConstruct o)
constructTextViewImModule val = constructObjectPropertyString "im-module" (Just val)

clearTextViewImModule :: (MonadIO m, IsTextView o) => o -> m ()
clearTextViewImModule obj = liftIO $ setObjectPropertyString obj "im-module" (Nothing :: Maybe T.Text)

data TextViewImModulePropertyInfo
instance AttrInfo TextViewImModulePropertyInfo where
    type AttrAllowedOps TextViewImModulePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint TextViewImModulePropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint TextViewImModulePropertyInfo = IsTextView
    type AttrGetType TextViewImModulePropertyInfo = (Maybe T.Text)
    type AttrLabel TextViewImModulePropertyInfo = "im-module"
    type AttrOrigin TextViewImModulePropertyInfo = TextView
    attrGet _ = getTextViewImModule
    attrSet _ = setTextViewImModule
    attrConstruct _ = constructTextViewImModule
    attrClear _ = clearTextViewImModule

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

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

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

constructTextViewIndent :: (IsTextView o) => Int32 -> IO (GValueConstruct o)
constructTextViewIndent val = constructObjectPropertyInt32 "indent" val

data TextViewIndentPropertyInfo
instance AttrInfo TextViewIndentPropertyInfo where
    type AttrAllowedOps TextViewIndentPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextViewIndentPropertyInfo = (~) Int32
    type AttrBaseTypeConstraint TextViewIndentPropertyInfo = IsTextView
    type AttrGetType TextViewIndentPropertyInfo = Int32
    type AttrLabel TextViewIndentPropertyInfo = "indent"
    type AttrOrigin TextViewIndentPropertyInfo = TextView
    attrGet _ = getTextViewIndent
    attrSet _ = setTextViewIndent
    attrConstruct _ = constructTextViewIndent
    attrClear _ = undefined

-- VVV Prop "input-hints"
   -- Type: TInterface (Name {namespace = "Gtk", name = "InputHints"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

getTextViewInputHints :: (MonadIO m, IsTextView o) => o -> m [Gtk.Flags.InputHints]
getTextViewInputHints obj = liftIO $ getObjectPropertyFlags obj "input-hints"

setTextViewInputHints :: (MonadIO m, IsTextView o) => o -> [Gtk.Flags.InputHints] -> m ()
setTextViewInputHints obj val = liftIO $ setObjectPropertyFlags obj "input-hints" val

constructTextViewInputHints :: (IsTextView o) => [Gtk.Flags.InputHints] -> IO (GValueConstruct o)
constructTextViewInputHints val = constructObjectPropertyFlags "input-hints" val

data TextViewInputHintsPropertyInfo
instance AttrInfo TextViewInputHintsPropertyInfo where
    type AttrAllowedOps TextViewInputHintsPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextViewInputHintsPropertyInfo = (~) [Gtk.Flags.InputHints]
    type AttrBaseTypeConstraint TextViewInputHintsPropertyInfo = IsTextView
    type AttrGetType TextViewInputHintsPropertyInfo = [Gtk.Flags.InputHints]
    type AttrLabel TextViewInputHintsPropertyInfo = "input-hints"
    type AttrOrigin TextViewInputHintsPropertyInfo = TextView
    attrGet _ = getTextViewInputHints
    attrSet _ = setTextViewInputHints
    attrConstruct _ = constructTextViewInputHints
    attrClear _ = undefined

-- VVV Prop "input-purpose"
   -- Type: TInterface (Name {namespace = "Gtk", name = "InputPurpose"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

getTextViewInputPurpose :: (MonadIO m, IsTextView o) => o -> m Gtk.Enums.InputPurpose
getTextViewInputPurpose obj = liftIO $ getObjectPropertyEnum obj "input-purpose"

setTextViewInputPurpose :: (MonadIO m, IsTextView o) => o -> Gtk.Enums.InputPurpose -> m ()
setTextViewInputPurpose obj val = liftIO $ setObjectPropertyEnum obj "input-purpose" val

constructTextViewInputPurpose :: (IsTextView o) => Gtk.Enums.InputPurpose -> IO (GValueConstruct o)
constructTextViewInputPurpose val = constructObjectPropertyEnum "input-purpose" val

data TextViewInputPurposePropertyInfo
instance AttrInfo TextViewInputPurposePropertyInfo where
    type AttrAllowedOps TextViewInputPurposePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextViewInputPurposePropertyInfo = (~) Gtk.Enums.InputPurpose
    type AttrBaseTypeConstraint TextViewInputPurposePropertyInfo = IsTextView
    type AttrGetType TextViewInputPurposePropertyInfo = Gtk.Enums.InputPurpose
    type AttrLabel TextViewInputPurposePropertyInfo = "input-purpose"
    type AttrOrigin TextViewInputPurposePropertyInfo = TextView
    attrGet _ = getTextViewInputPurpose
    attrSet _ = setTextViewInputPurpose
    attrConstruct _ = constructTextViewInputPurpose
    attrClear _ = undefined

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

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

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

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

data TextViewJustificationPropertyInfo
instance AttrInfo TextViewJustificationPropertyInfo where
    type AttrAllowedOps TextViewJustificationPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextViewJustificationPropertyInfo = (~) Gtk.Enums.Justification
    type AttrBaseTypeConstraint TextViewJustificationPropertyInfo = IsTextView
    type AttrGetType TextViewJustificationPropertyInfo = Gtk.Enums.Justification
    type AttrLabel TextViewJustificationPropertyInfo = "justification"
    type AttrOrigin TextViewJustificationPropertyInfo = TextView
    attrGet _ = getTextViewJustification
    attrSet _ = setTextViewJustification
    attrConstruct _ = constructTextViewJustification
    attrClear _ = undefined

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

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

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

constructTextViewLeftMargin :: (IsTextView o) => Int32 -> IO (GValueConstruct o)
constructTextViewLeftMargin val = constructObjectPropertyInt32 "left-margin" val

data TextViewLeftMarginPropertyInfo
instance AttrInfo TextViewLeftMarginPropertyInfo where
    type AttrAllowedOps TextViewLeftMarginPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextViewLeftMarginPropertyInfo = (~) Int32
    type AttrBaseTypeConstraint TextViewLeftMarginPropertyInfo = IsTextView
    type AttrGetType TextViewLeftMarginPropertyInfo = Int32
    type AttrLabel TextViewLeftMarginPropertyInfo = "left-margin"
    type AttrOrigin TextViewLeftMarginPropertyInfo = TextView
    attrGet _ = getTextViewLeftMargin
    attrSet _ = setTextViewLeftMargin
    attrConstruct _ = constructTextViewLeftMargin
    attrClear _ = undefined

-- VVV Prop "monospace"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

getTextViewMonospace :: (MonadIO m, IsTextView o) => o -> m Bool
getTextViewMonospace obj = liftIO $ getObjectPropertyBool obj "monospace"

setTextViewMonospace :: (MonadIO m, IsTextView o) => o -> Bool -> m ()
setTextViewMonospace obj val = liftIO $ setObjectPropertyBool obj "monospace" val

constructTextViewMonospace :: (IsTextView o) => Bool -> IO (GValueConstruct o)
constructTextViewMonospace val = constructObjectPropertyBool "monospace" val

data TextViewMonospacePropertyInfo
instance AttrInfo TextViewMonospacePropertyInfo where
    type AttrAllowedOps TextViewMonospacePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextViewMonospacePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextViewMonospacePropertyInfo = IsTextView
    type AttrGetType TextViewMonospacePropertyInfo = Bool
    type AttrLabel TextViewMonospacePropertyInfo = "monospace"
    type AttrOrigin TextViewMonospacePropertyInfo = TextView
    attrGet _ = getTextViewMonospace
    attrSet _ = setTextViewMonospace
    attrConstruct _ = constructTextViewMonospace
    attrClear _ = undefined

-- VVV Prop "overwrite"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

getTextViewOverwrite :: (MonadIO m, IsTextView o) => o -> m Bool
getTextViewOverwrite obj = liftIO $ getObjectPropertyBool obj "overwrite"

setTextViewOverwrite :: (MonadIO m, IsTextView o) => o -> Bool -> m ()
setTextViewOverwrite obj val = liftIO $ setObjectPropertyBool obj "overwrite" val

constructTextViewOverwrite :: (IsTextView o) => Bool -> IO (GValueConstruct o)
constructTextViewOverwrite val = constructObjectPropertyBool "overwrite" val

data TextViewOverwritePropertyInfo
instance AttrInfo TextViewOverwritePropertyInfo where
    type AttrAllowedOps TextViewOverwritePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextViewOverwritePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextViewOverwritePropertyInfo = IsTextView
    type AttrGetType TextViewOverwritePropertyInfo = Bool
    type AttrLabel TextViewOverwritePropertyInfo = "overwrite"
    type AttrOrigin TextViewOverwritePropertyInfo = TextView
    attrGet _ = getTextViewOverwrite
    attrSet _ = setTextViewOverwrite
    attrConstruct _ = constructTextViewOverwrite
    attrClear _ = undefined

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

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

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

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

data TextViewPixelsAboveLinesPropertyInfo
instance AttrInfo TextViewPixelsAboveLinesPropertyInfo where
    type AttrAllowedOps TextViewPixelsAboveLinesPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextViewPixelsAboveLinesPropertyInfo = (~) Int32
    type AttrBaseTypeConstraint TextViewPixelsAboveLinesPropertyInfo = IsTextView
    type AttrGetType TextViewPixelsAboveLinesPropertyInfo = Int32
    type AttrLabel TextViewPixelsAboveLinesPropertyInfo = "pixels-above-lines"
    type AttrOrigin TextViewPixelsAboveLinesPropertyInfo = TextView
    attrGet _ = getTextViewPixelsAboveLines
    attrSet _ = setTextViewPixelsAboveLines
    attrConstruct _ = constructTextViewPixelsAboveLines
    attrClear _ = undefined

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

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

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

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

data TextViewPixelsBelowLinesPropertyInfo
instance AttrInfo TextViewPixelsBelowLinesPropertyInfo where
    type AttrAllowedOps TextViewPixelsBelowLinesPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextViewPixelsBelowLinesPropertyInfo = (~) Int32
    type AttrBaseTypeConstraint TextViewPixelsBelowLinesPropertyInfo = IsTextView
    type AttrGetType TextViewPixelsBelowLinesPropertyInfo = Int32
    type AttrLabel TextViewPixelsBelowLinesPropertyInfo = "pixels-below-lines"
    type AttrOrigin TextViewPixelsBelowLinesPropertyInfo = TextView
    attrGet _ = getTextViewPixelsBelowLines
    attrSet _ = setTextViewPixelsBelowLines
    attrConstruct _ = constructTextViewPixelsBelowLines
    attrClear _ = undefined

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

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

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

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

data TextViewPixelsInsideWrapPropertyInfo
instance AttrInfo TextViewPixelsInsideWrapPropertyInfo where
    type AttrAllowedOps TextViewPixelsInsideWrapPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextViewPixelsInsideWrapPropertyInfo = (~) Int32
    type AttrBaseTypeConstraint TextViewPixelsInsideWrapPropertyInfo = IsTextView
    type AttrGetType TextViewPixelsInsideWrapPropertyInfo = Int32
    type AttrLabel TextViewPixelsInsideWrapPropertyInfo = "pixels-inside-wrap"
    type AttrOrigin TextViewPixelsInsideWrapPropertyInfo = TextView
    attrGet _ = getTextViewPixelsInsideWrap
    attrSet _ = setTextViewPixelsInsideWrap
    attrConstruct _ = constructTextViewPixelsInsideWrap
    attrClear _ = undefined

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

getTextViewPopulateAll :: (MonadIO m, IsTextView o) => o -> m Bool
getTextViewPopulateAll obj = liftIO $ getObjectPropertyBool obj "populate-all"

setTextViewPopulateAll :: (MonadIO m, IsTextView o) => o -> Bool -> m ()
setTextViewPopulateAll obj val = liftIO $ setObjectPropertyBool obj "populate-all" val

constructTextViewPopulateAll :: (IsTextView o) => Bool -> IO (GValueConstruct o)
constructTextViewPopulateAll val = constructObjectPropertyBool "populate-all" val

data TextViewPopulateAllPropertyInfo
instance AttrInfo TextViewPopulateAllPropertyInfo where
    type AttrAllowedOps TextViewPopulateAllPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextViewPopulateAllPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TextViewPopulateAllPropertyInfo = IsTextView
    type AttrGetType TextViewPopulateAllPropertyInfo = Bool
    type AttrLabel TextViewPopulateAllPropertyInfo = "populate-all"
    type AttrOrigin TextViewPopulateAllPropertyInfo = TextView
    attrGet _ = getTextViewPopulateAll
    attrSet _ = setTextViewPopulateAll
    attrConstruct _ = constructTextViewPopulateAll
    attrClear _ = undefined

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

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

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

constructTextViewRightMargin :: (IsTextView o) => Int32 -> IO (GValueConstruct o)
constructTextViewRightMargin val = constructObjectPropertyInt32 "right-margin" val

data TextViewRightMarginPropertyInfo
instance AttrInfo TextViewRightMarginPropertyInfo where
    type AttrAllowedOps TextViewRightMarginPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextViewRightMarginPropertyInfo = (~) Int32
    type AttrBaseTypeConstraint TextViewRightMarginPropertyInfo = IsTextView
    type AttrGetType TextViewRightMarginPropertyInfo = Int32
    type AttrLabel TextViewRightMarginPropertyInfo = "right-margin"
    type AttrOrigin TextViewRightMarginPropertyInfo = TextView
    attrGet _ = getTextViewRightMargin
    attrSet _ = setTextViewRightMargin
    attrConstruct _ = constructTextViewRightMargin
    attrClear _ = undefined

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

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

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

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

data TextViewTabsPropertyInfo
instance AttrInfo TextViewTabsPropertyInfo where
    type AttrAllowedOps TextViewTabsPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextViewTabsPropertyInfo = (~) Pango.TabArray.TabArray
    type AttrBaseTypeConstraint TextViewTabsPropertyInfo = IsTextView
    type AttrGetType TextViewTabsPropertyInfo = (Maybe Pango.TabArray.TabArray)
    type AttrLabel TextViewTabsPropertyInfo = "tabs"
    type AttrOrigin TextViewTabsPropertyInfo = TextView
    attrGet _ = getTextViewTabs
    attrSet _ = setTextViewTabs
    attrConstruct _ = constructTextViewTabs
    attrClear _ = undefined

-- VVV Prop "top-margin"
   -- Type: TBasicType TInt
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

getTextViewTopMargin :: (MonadIO m, IsTextView o) => o -> m Int32
getTextViewTopMargin obj = liftIO $ getObjectPropertyInt32 obj "top-margin"

setTextViewTopMargin :: (MonadIO m, IsTextView o) => o -> Int32 -> m ()
setTextViewTopMargin obj val = liftIO $ setObjectPropertyInt32 obj "top-margin" val

constructTextViewTopMargin :: (IsTextView o) => Int32 -> IO (GValueConstruct o)
constructTextViewTopMargin val = constructObjectPropertyInt32 "top-margin" val

data TextViewTopMarginPropertyInfo
instance AttrInfo TextViewTopMarginPropertyInfo where
    type AttrAllowedOps TextViewTopMarginPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextViewTopMarginPropertyInfo = (~) Int32
    type AttrBaseTypeConstraint TextViewTopMarginPropertyInfo = IsTextView
    type AttrGetType TextViewTopMarginPropertyInfo = Int32
    type AttrLabel TextViewTopMarginPropertyInfo = "top-margin"
    type AttrOrigin TextViewTopMarginPropertyInfo = TextView
    attrGet _ = getTextViewTopMargin
    attrSet _ = setTextViewTopMargin
    attrConstruct _ = constructTextViewTopMargin
    attrClear _ = undefined

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

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

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

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

data TextViewWrapModePropertyInfo
instance AttrInfo TextViewWrapModePropertyInfo where
    type AttrAllowedOps TextViewWrapModePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TextViewWrapModePropertyInfo = (~) Gtk.Enums.WrapMode
    type AttrBaseTypeConstraint TextViewWrapModePropertyInfo = IsTextView
    type AttrGetType TextViewWrapModePropertyInfo = Gtk.Enums.WrapMode
    type AttrLabel TextViewWrapModePropertyInfo = "wrap-mode"
    type AttrOrigin TextViewWrapModePropertyInfo = TextView
    attrGet _ = getTextViewWrapMode
    attrSet _ = setTextViewWrapMode
    attrConstruct _ = constructTextViewWrapMode
    attrClear _ = undefined

instance O.HasAttributeList TextView
type instance O.AttributeList TextView = TextViewAttributeList
type TextViewAttributeList = ('[ '("acceptsTab", TextViewAcceptsTabPropertyInfo), '("appPaintable", Gtk.Widget.WidgetAppPaintablePropertyInfo), '("borderWidth", Gtk.Container.ContainerBorderWidthPropertyInfo), '("bottomMargin", TextViewBottomMarginPropertyInfo), '("buffer", TextViewBufferPropertyInfo), '("canDefault", Gtk.Widget.WidgetCanDefaultPropertyInfo), '("canFocus", Gtk.Widget.WidgetCanFocusPropertyInfo), '("child", Gtk.Container.ContainerChildPropertyInfo), '("compositeChild", Gtk.Widget.WidgetCompositeChildPropertyInfo), '("cursorVisible", TextViewCursorVisiblePropertyInfo), '("doubleBuffered", Gtk.Widget.WidgetDoubleBufferedPropertyInfo), '("editable", TextViewEditablePropertyInfo), '("events", Gtk.Widget.WidgetEventsPropertyInfo), '("expand", Gtk.Widget.WidgetExpandPropertyInfo), '("focusOnClick", Gtk.Widget.WidgetFocusOnClickPropertyInfo), '("hadjustment", Gtk.Scrollable.ScrollableHadjustmentPropertyInfo), '("halign", Gtk.Widget.WidgetHalignPropertyInfo), '("hasDefault", Gtk.Widget.WidgetHasDefaultPropertyInfo), '("hasFocus", Gtk.Widget.WidgetHasFocusPropertyInfo), '("hasTooltip", Gtk.Widget.WidgetHasTooltipPropertyInfo), '("heightRequest", Gtk.Widget.WidgetHeightRequestPropertyInfo), '("hexpand", Gtk.Widget.WidgetHexpandPropertyInfo), '("hexpandSet", Gtk.Widget.WidgetHexpandSetPropertyInfo), '("hscrollPolicy", Gtk.Scrollable.ScrollableHscrollPolicyPropertyInfo), '("imModule", TextViewImModulePropertyInfo), '("indent", TextViewIndentPropertyInfo), '("inputHints", TextViewInputHintsPropertyInfo), '("inputPurpose", TextViewInputPurposePropertyInfo), '("isFocus", Gtk.Widget.WidgetIsFocusPropertyInfo), '("justification", TextViewJustificationPropertyInfo), '("leftMargin", TextViewLeftMarginPropertyInfo), '("margin", Gtk.Widget.WidgetMarginPropertyInfo), '("marginBottom", Gtk.Widget.WidgetMarginBottomPropertyInfo), '("marginEnd", Gtk.Widget.WidgetMarginEndPropertyInfo), '("marginLeft", Gtk.Widget.WidgetMarginLeftPropertyInfo), '("marginRight", Gtk.Widget.WidgetMarginRightPropertyInfo), '("marginStart", Gtk.Widget.WidgetMarginStartPropertyInfo), '("marginTop", Gtk.Widget.WidgetMarginTopPropertyInfo), '("monospace", TextViewMonospacePropertyInfo), '("name", Gtk.Widget.WidgetNamePropertyInfo), '("noShowAll", Gtk.Widget.WidgetNoShowAllPropertyInfo), '("opacity", Gtk.Widget.WidgetOpacityPropertyInfo), '("overwrite", TextViewOverwritePropertyInfo), '("parent", Gtk.Widget.WidgetParentPropertyInfo), '("pixelsAboveLines", TextViewPixelsAboveLinesPropertyInfo), '("pixelsBelowLines", TextViewPixelsBelowLinesPropertyInfo), '("pixelsInsideWrap", TextViewPixelsInsideWrapPropertyInfo), '("populateAll", TextViewPopulateAllPropertyInfo), '("receivesDefault", Gtk.Widget.WidgetReceivesDefaultPropertyInfo), '("resizeMode", Gtk.Container.ContainerResizeModePropertyInfo), '("rightMargin", TextViewRightMarginPropertyInfo), '("scaleFactor", Gtk.Widget.WidgetScaleFactorPropertyInfo), '("sensitive", Gtk.Widget.WidgetSensitivePropertyInfo), '("style", Gtk.Widget.WidgetStylePropertyInfo), '("tabs", TextViewTabsPropertyInfo), '("tooltipMarkup", Gtk.Widget.WidgetTooltipMarkupPropertyInfo), '("tooltipText", Gtk.Widget.WidgetTooltipTextPropertyInfo), '("topMargin", TextViewTopMarginPropertyInfo), '("vadjustment", Gtk.Scrollable.ScrollableVadjustmentPropertyInfo), '("valign", Gtk.Widget.WidgetValignPropertyInfo), '("vexpand", Gtk.Widget.WidgetVexpandPropertyInfo), '("vexpandSet", Gtk.Widget.WidgetVexpandSetPropertyInfo), '("visible", Gtk.Widget.WidgetVisiblePropertyInfo), '("vscrollPolicy", Gtk.Scrollable.ScrollableVscrollPolicyPropertyInfo), '("widthRequest", Gtk.Widget.WidgetWidthRequestPropertyInfo), '("window", Gtk.Widget.WidgetWindowPropertyInfo), '("wrapMode", TextViewWrapModePropertyInfo)] :: [(Symbol, *)])

textViewAcceptsTab :: AttrLabelProxy "acceptsTab"
textViewAcceptsTab = AttrLabelProxy

textViewBottomMargin :: AttrLabelProxy "bottomMargin"
textViewBottomMargin = AttrLabelProxy

textViewBuffer :: AttrLabelProxy "buffer"
textViewBuffer = AttrLabelProxy

textViewCursorVisible :: AttrLabelProxy "cursorVisible"
textViewCursorVisible = AttrLabelProxy

textViewEditable :: AttrLabelProxy "editable"
textViewEditable = AttrLabelProxy

textViewImModule :: AttrLabelProxy "imModule"
textViewImModule = AttrLabelProxy

textViewIndent :: AttrLabelProxy "indent"
textViewIndent = AttrLabelProxy

textViewInputHints :: AttrLabelProxy "inputHints"
textViewInputHints = AttrLabelProxy

textViewInputPurpose :: AttrLabelProxy "inputPurpose"
textViewInputPurpose = AttrLabelProxy

textViewJustification :: AttrLabelProxy "justification"
textViewJustification = AttrLabelProxy

textViewLeftMargin :: AttrLabelProxy "leftMargin"
textViewLeftMargin = AttrLabelProxy

textViewMonospace :: AttrLabelProxy "monospace"
textViewMonospace = AttrLabelProxy

textViewOverwrite :: AttrLabelProxy "overwrite"
textViewOverwrite = AttrLabelProxy

textViewPixelsAboveLines :: AttrLabelProxy "pixelsAboveLines"
textViewPixelsAboveLines = AttrLabelProxy

textViewPixelsBelowLines :: AttrLabelProxy "pixelsBelowLines"
textViewPixelsBelowLines = AttrLabelProxy

textViewPixelsInsideWrap :: AttrLabelProxy "pixelsInsideWrap"
textViewPixelsInsideWrap = AttrLabelProxy

textViewPopulateAll :: AttrLabelProxy "populateAll"
textViewPopulateAll = AttrLabelProxy

textViewRightMargin :: AttrLabelProxy "rightMargin"
textViewRightMargin = AttrLabelProxy

textViewTabs :: AttrLabelProxy "tabs"
textViewTabs = AttrLabelProxy

textViewTopMargin :: AttrLabelProxy "topMargin"
textViewTopMargin = AttrLabelProxy

textViewWrapMode :: AttrLabelProxy "wrapMode"
textViewWrapMode = AttrLabelProxy

data TextViewBackspaceSignalInfo
instance SignalInfo TextViewBackspaceSignalInfo where
    type HaskellCallbackType TextViewBackspaceSignalInfo = TextViewBackspaceCallback
    connectSignal _ = connectTextViewBackspace

data TextViewCopyClipboardSignalInfo
instance SignalInfo TextViewCopyClipboardSignalInfo where
    type HaskellCallbackType TextViewCopyClipboardSignalInfo = TextViewCopyClipboardCallback
    connectSignal _ = connectTextViewCopyClipboard

data TextViewCutClipboardSignalInfo
instance SignalInfo TextViewCutClipboardSignalInfo where
    type HaskellCallbackType TextViewCutClipboardSignalInfo = TextViewCutClipboardCallback
    connectSignal _ = connectTextViewCutClipboard

data TextViewDeleteFromCursorSignalInfo
instance SignalInfo TextViewDeleteFromCursorSignalInfo where
    type HaskellCallbackType TextViewDeleteFromCursorSignalInfo = TextViewDeleteFromCursorCallback
    connectSignal _ = connectTextViewDeleteFromCursor

data TextViewExtendSelectionSignalInfo
instance SignalInfo TextViewExtendSelectionSignalInfo where
    type HaskellCallbackType TextViewExtendSelectionSignalInfo = TextViewExtendSelectionCallback
    connectSignal _ = connectTextViewExtendSelection

data TextViewInsertAtCursorSignalInfo
instance SignalInfo TextViewInsertAtCursorSignalInfo where
    type HaskellCallbackType TextViewInsertAtCursorSignalInfo = TextViewInsertAtCursorCallback
    connectSignal _ = connectTextViewInsertAtCursor

data TextViewMoveCursorSignalInfo
instance SignalInfo TextViewMoveCursorSignalInfo where
    type HaskellCallbackType TextViewMoveCursorSignalInfo = TextViewMoveCursorCallback
    connectSignal _ = connectTextViewMoveCursor

data TextViewMoveViewportSignalInfo
instance SignalInfo TextViewMoveViewportSignalInfo where
    type HaskellCallbackType TextViewMoveViewportSignalInfo = TextViewMoveViewportCallback
    connectSignal _ = connectTextViewMoveViewport

data TextViewPasteClipboardSignalInfo
instance SignalInfo TextViewPasteClipboardSignalInfo where
    type HaskellCallbackType TextViewPasteClipboardSignalInfo = TextViewPasteClipboardCallback
    connectSignal _ = connectTextViewPasteClipboard

data TextViewPopulatePopupSignalInfo
instance SignalInfo TextViewPopulatePopupSignalInfo where
    type HaskellCallbackType TextViewPopulatePopupSignalInfo = TextViewPopulatePopupCallback
    connectSignal _ = connectTextViewPopulatePopup

data TextViewPreeditChangedSignalInfo
instance SignalInfo TextViewPreeditChangedSignalInfo where
    type HaskellCallbackType TextViewPreeditChangedSignalInfo = TextViewPreeditChangedCallback
    connectSignal _ = connectTextViewPreeditChanged

data TextViewSelectAllSignalInfo
instance SignalInfo TextViewSelectAllSignalInfo where
    type HaskellCallbackType TextViewSelectAllSignalInfo = TextViewSelectAllCallback
    connectSignal _ = connectTextViewSelectAll

data TextViewSetAnchorSignalInfo
instance SignalInfo TextViewSetAnchorSignalInfo where
    type HaskellCallbackType TextViewSetAnchorSignalInfo = TextViewSetAnchorCallback
    connectSignal _ = connectTextViewSetAnchor

data TextViewToggleCursorVisibleSignalInfo
instance SignalInfo TextViewToggleCursorVisibleSignalInfo where
    type HaskellCallbackType TextViewToggleCursorVisibleSignalInfo = TextViewToggleCursorVisibleCallback
    connectSignal _ = connectTextViewToggleCursorVisible

data TextViewToggleOverwriteSignalInfo
instance SignalInfo TextViewToggleOverwriteSignalInfo where
    type HaskellCallbackType TextViewToggleOverwriteSignalInfo = TextViewToggleOverwriteCallback
    connectSignal _ = connectTextViewToggleOverwrite

type instance O.SignalList TextView = TextViewSignalList
type TextViewSignalList = ('[ '("accelClosuresChanged", Gtk.Widget.WidgetAccelClosuresChangedSignalInfo), '("add", Gtk.Container.ContainerAddSignalInfo), '("backspace", TextViewBackspaceSignalInfo), '("buttonPressEvent", Gtk.Widget.WidgetButtonPressEventSignalInfo), '("buttonReleaseEvent", Gtk.Widget.WidgetButtonReleaseEventSignalInfo), '("canActivateAccel", Gtk.Widget.WidgetCanActivateAccelSignalInfo), '("checkResize", Gtk.Container.ContainerCheckResizeSignalInfo), '("childNotify", Gtk.Widget.WidgetChildNotifySignalInfo), '("compositedChanged", Gtk.Widget.WidgetCompositedChangedSignalInfo), '("configureEvent", Gtk.Widget.WidgetConfigureEventSignalInfo), '("copyClipboard", TextViewCopyClipboardSignalInfo), '("cutClipboard", TextViewCutClipboardSignalInfo), '("damageEvent", Gtk.Widget.WidgetDamageEventSignalInfo), '("deleteEvent", Gtk.Widget.WidgetDeleteEventSignalInfo), '("deleteFromCursor", TextViewDeleteFromCursorSignalInfo), '("destroy", Gtk.Widget.WidgetDestroySignalInfo), '("destroyEvent", Gtk.Widget.WidgetDestroyEventSignalInfo), '("directionChanged", Gtk.Widget.WidgetDirectionChangedSignalInfo), '("dragBegin", Gtk.Widget.WidgetDragBeginSignalInfo), '("dragDataDelete", Gtk.Widget.WidgetDragDataDeleteSignalInfo), '("dragDataGet", Gtk.Widget.WidgetDragDataGetSignalInfo), '("dragDataReceived", Gtk.Widget.WidgetDragDataReceivedSignalInfo), '("dragDrop", Gtk.Widget.WidgetDragDropSignalInfo), '("dragEnd", Gtk.Widget.WidgetDragEndSignalInfo), '("dragFailed", Gtk.Widget.WidgetDragFailedSignalInfo), '("dragLeave", Gtk.Widget.WidgetDragLeaveSignalInfo), '("dragMotion", Gtk.Widget.WidgetDragMotionSignalInfo), '("draw", Gtk.Widget.WidgetDrawSignalInfo), '("enterNotifyEvent", Gtk.Widget.WidgetEnterNotifyEventSignalInfo), '("event", Gtk.Widget.WidgetEventSignalInfo), '("eventAfter", Gtk.Widget.WidgetEventAfterSignalInfo), '("extendSelection", TextViewExtendSelectionSignalInfo), '("focus", Gtk.Widget.WidgetFocusSignalInfo), '("focusInEvent", Gtk.Widget.WidgetFocusInEventSignalInfo), '("focusOutEvent", Gtk.Widget.WidgetFocusOutEventSignalInfo), '("grabBrokenEvent", Gtk.Widget.WidgetGrabBrokenEventSignalInfo), '("grabFocus", Gtk.Widget.WidgetGrabFocusSignalInfo), '("grabNotify", Gtk.Widget.WidgetGrabNotifySignalInfo), '("hide", Gtk.Widget.WidgetHideSignalInfo), '("hierarchyChanged", Gtk.Widget.WidgetHierarchyChangedSignalInfo), '("insertAtCursor", TextViewInsertAtCursorSignalInfo), '("keyPressEvent", Gtk.Widget.WidgetKeyPressEventSignalInfo), '("keyReleaseEvent", Gtk.Widget.WidgetKeyReleaseEventSignalInfo), '("keynavFailed", Gtk.Widget.WidgetKeynavFailedSignalInfo), '("leaveNotifyEvent", Gtk.Widget.WidgetLeaveNotifyEventSignalInfo), '("map", Gtk.Widget.WidgetMapSignalInfo), '("mapEvent", Gtk.Widget.WidgetMapEventSignalInfo), '("mnemonicActivate", Gtk.Widget.WidgetMnemonicActivateSignalInfo), '("motionNotifyEvent", Gtk.Widget.WidgetMotionNotifyEventSignalInfo), '("moveCursor", TextViewMoveCursorSignalInfo), '("moveFocus", Gtk.Widget.WidgetMoveFocusSignalInfo), '("moveViewport", TextViewMoveViewportSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("parentSet", Gtk.Widget.WidgetParentSetSignalInfo), '("pasteClipboard", TextViewPasteClipboardSignalInfo), '("populatePopup", TextViewPopulatePopupSignalInfo), '("popupMenu", Gtk.Widget.WidgetPopupMenuSignalInfo), '("preeditChanged", TextViewPreeditChangedSignalInfo), '("propertyNotifyEvent", Gtk.Widget.WidgetPropertyNotifyEventSignalInfo), '("proximityInEvent", Gtk.Widget.WidgetProximityInEventSignalInfo), '("proximityOutEvent", Gtk.Widget.WidgetProximityOutEventSignalInfo), '("queryTooltip", Gtk.Widget.WidgetQueryTooltipSignalInfo), '("realize", Gtk.Widget.WidgetRealizeSignalInfo), '("remove", Gtk.Container.ContainerRemoveSignalInfo), '("screenChanged", Gtk.Widget.WidgetScreenChangedSignalInfo), '("scrollEvent", Gtk.Widget.WidgetScrollEventSignalInfo), '("selectAll", TextViewSelectAllSignalInfo), '("selectionClearEvent", Gtk.Widget.WidgetSelectionClearEventSignalInfo), '("selectionGet", Gtk.Widget.WidgetSelectionGetSignalInfo), '("selectionNotifyEvent", Gtk.Widget.WidgetSelectionNotifyEventSignalInfo), '("selectionReceived", Gtk.Widget.WidgetSelectionReceivedSignalInfo), '("selectionRequestEvent", Gtk.Widget.WidgetSelectionRequestEventSignalInfo), '("setAnchor", TextViewSetAnchorSignalInfo), '("setFocusChild", Gtk.Container.ContainerSetFocusChildSignalInfo), '("show", Gtk.Widget.WidgetShowSignalInfo), '("showHelp", Gtk.Widget.WidgetShowHelpSignalInfo), '("sizeAllocate", Gtk.Widget.WidgetSizeAllocateSignalInfo), '("stateChanged", Gtk.Widget.WidgetStateChangedSignalInfo), '("stateFlagsChanged", Gtk.Widget.WidgetStateFlagsChangedSignalInfo), '("styleSet", Gtk.Widget.WidgetStyleSetSignalInfo), '("styleUpdated", Gtk.Widget.WidgetStyleUpdatedSignalInfo), '("toggleCursorVisible", TextViewToggleCursorVisibleSignalInfo), '("toggleOverwrite", TextViewToggleOverwriteSignalInfo), '("touchEvent", Gtk.Widget.WidgetTouchEventSignalInfo), '("unmap", Gtk.Widget.WidgetUnmapSignalInfo), '("unmapEvent", Gtk.Widget.WidgetUnmapEventSignalInfo), '("unrealize", Gtk.Widget.WidgetUnrealizeSignalInfo), '("visibilityNotifyEvent", Gtk.Widget.WidgetVisibilityNotifyEventSignalInfo), '("windowStateEvent", Gtk.Widget.WidgetWindowStateEventSignalInfo)] :: [(Symbol, *)])

-- method TextView::new
-- method type : Constructor
-- Args : []
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gtk", name = "TextView"}))
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_new" gtk_text_view_new :: 
    IO (Ptr TextView)

{- |
Creates a new 'GI.Gtk.Objects.TextView.TextView'. If you don’t call 'GI.Gtk.Objects.TextView.textViewSetBuffer'
before using the text view, an empty default buffer will be created
for you. Get the buffer with 'GI.Gtk.Objects.TextView.textViewGetBuffer'. If you want
to specify your own buffer, consider 'GI.Gtk.Objects.TextView.textViewNewWithBuffer'.
-}
textViewNew ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    m TextView
    {- ^ __Returns:__ a new 'GI.Gtk.Objects.TextView.TextView' -}
textViewNew  = liftIO $ do
    result <- gtk_text_view_new
    checkUnexpectedReturnNULL "textViewNew" result
    result' <- (newObject TextView) result
    return result'

-- method TextView::new_with_buffer
-- method type : Constructor
-- Args : [Arg {argCName = "buffer", argType = TInterface (Name {namespace = "Gtk", name = "TextBuffer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextBuffer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gtk", name = "TextView"}))
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_new_with_buffer" gtk_text_view_new_with_buffer :: 
    Ptr Gtk.TextBuffer.TextBuffer ->        -- buffer : TInterface (Name {namespace = "Gtk", name = "TextBuffer"})
    IO (Ptr TextView)

{- |
Creates a new 'GI.Gtk.Objects.TextView.TextView' widget displaying the buffer
/@buffer@/. One buffer can be shared among many widgets.
/@buffer@/ may be 'Nothing' to create a default buffer, in which case
this function is equivalent to 'GI.Gtk.Objects.TextView.textViewNew'. The
text view adds its own reference count to the buffer; it does not
take over an existing reference.
-}
textViewNewWithBuffer ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.TextBuffer.IsTextBuffer a) =>
    a
    {- ^ /@buffer@/: a 'GI.Gtk.Objects.TextBuffer.TextBuffer' -}
    -> m TextView
    {- ^ __Returns:__ a new 'GI.Gtk.Objects.TextView.TextView'. -}
textViewNewWithBuffer buffer = liftIO $ do
    buffer' <- unsafeManagedPtrCastPtr buffer
    result <- gtk_text_view_new_with_buffer buffer'
    checkUnexpectedReturnNULL "textViewNewWithBuffer" result
    result' <- (newObject TextView) result
    touchManagedPtr buffer
    return result'

-- method TextView::add_child_at_anchor
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "child", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkWidget", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "anchor", argType = TInterface (Name {namespace = "Gtk", name = "TextChildAnchor"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextChildAnchor in the #GtkTextBuffer for @text_view", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_add_child_at_anchor" gtk_text_view_add_child_at_anchor :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    Ptr Gtk.Widget.Widget ->                -- child : TInterface (Name {namespace = "Gtk", name = "Widget"})
    Ptr Gtk.TextChildAnchor.TextChildAnchor -> -- anchor : TInterface (Name {namespace = "Gtk", name = "TextChildAnchor"})
    IO ()

{- |
Adds a child widget in the text buffer, at the given /@anchor@/.
-}
textViewAddChildAtAnchor ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a, Gtk.Widget.IsWidget b, Gtk.TextChildAnchor.IsTextChildAnchor c) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> b
    {- ^ /@child@/: a 'GI.Gtk.Objects.Widget.Widget' -}
    -> c
    {- ^ /@anchor@/: a 'GI.Gtk.Objects.TextChildAnchor.TextChildAnchor' in the 'GI.Gtk.Objects.TextBuffer.TextBuffer' for /@textView@/ -}
    -> m ()
textViewAddChildAtAnchor textView child anchor = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    child' <- unsafeManagedPtrCastPtr child
    anchor' <- unsafeManagedPtrCastPtr anchor
    gtk_text_view_add_child_at_anchor textView' child' anchor'
    touchManagedPtr textView
    touchManagedPtr child
    touchManagedPtr anchor
    return ()

data TextViewAddChildAtAnchorMethodInfo
instance (signature ~ (b -> c -> m ()), MonadIO m, IsTextView a, Gtk.Widget.IsWidget b, Gtk.TextChildAnchor.IsTextChildAnchor c) => O.MethodInfo TextViewAddChildAtAnchorMethodInfo a signature where
    overloadedMethod _ = textViewAddChildAtAnchor

-- method TextView::add_child_in_window
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "child", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkWidget", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "which_window", argType = TInterface (Name {namespace = "Gtk", name = "TextWindowType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "which window the child should appear in", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "xpos", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "X position of child in window coordinates", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ypos", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Y position of child in window coordinates", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_add_child_in_window" gtk_text_view_add_child_in_window :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    Ptr Gtk.Widget.Widget ->                -- child : TInterface (Name {namespace = "Gtk", name = "Widget"})
    CUInt ->                                -- which_window : TInterface (Name {namespace = "Gtk", name = "TextWindowType"})
    Int32 ->                                -- xpos : TBasicType TInt
    Int32 ->                                -- ypos : TBasicType TInt
    IO ()

{- |
Adds a child at fixed coordinates in one of the text widget\'s
windows.

The window must have nonzero size (see
'GI.Gtk.Objects.TextView.textViewSetBorderWindowSize'). Note that the child
coordinates are given relative to scrolling. When
placing a child in @/GTK_TEXT_WINDOW_WIDGET/@, scrolling is
irrelevant, the child floats above all scrollable areas. But when
placing a child in one of the scrollable windows (border windows or
text window) it will move with the scrolling as needed.
-}
textViewAddChildInWindow ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a, Gtk.Widget.IsWidget b) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> b
    {- ^ /@child@/: a 'GI.Gtk.Objects.Widget.Widget' -}
    -> Gtk.Enums.TextWindowType
    {- ^ /@whichWindow@/: which window the child should appear in -}
    -> Int32
    {- ^ /@xpos@/: X position of child in window coordinates -}
    -> Int32
    {- ^ /@ypos@/: Y position of child in window coordinates -}
    -> m ()
textViewAddChildInWindow textView child whichWindow xpos ypos = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    child' <- unsafeManagedPtrCastPtr child
    let whichWindow' = (fromIntegral . fromEnum) whichWindow
    gtk_text_view_add_child_in_window textView' child' whichWindow' xpos ypos
    touchManagedPtr textView
    touchManagedPtr child
    return ()

data TextViewAddChildInWindowMethodInfo
instance (signature ~ (b -> Gtk.Enums.TextWindowType -> Int32 -> Int32 -> m ()), MonadIO m, IsTextView a, Gtk.Widget.IsWidget b) => O.MethodInfo TextViewAddChildInWindowMethodInfo a signature where
    overloadedMethod _ = textViewAddChildInWindow

-- method TextView::backward_display_line
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TextIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextIter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_backward_display_line" gtk_text_view_backward_display_line :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    Ptr Gtk.TextIter.TextIter ->            -- iter : TInterface (Name {namespace = "Gtk", name = "TextIter"})
    IO CInt

{- |
Moves the given /@iter@/ backward by one display (wrapped) line.
A display line is different from a paragraph. Paragraphs are
separated by newlines or other paragraph separator characters.
Display lines are created by line-wrapping a paragraph. If
wrapping is turned off, display lines and paragraphs will be the
same. Display lines are divided differently for each view, since
they depend on the view’s width; paragraphs are the same in all
views, since they depend on the contents of the 'GI.Gtk.Objects.TextBuffer.TextBuffer'.
-}
textViewBackwardDisplayLine ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> Gtk.TextIter.TextIter
    {- ^ /@iter@/: a 'GI.Gtk.Structs.TextIter.TextIter' -}
    -> m Bool
    {- ^ __Returns:__ 'True' if /@iter@/ was moved and is not on the end iterator -}
textViewBackwardDisplayLine textView iter = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    iter' <- unsafeManagedPtrGetPtr iter
    result <- gtk_text_view_backward_display_line textView' iter'
    let result' = (/= 0) result
    touchManagedPtr textView
    touchManagedPtr iter
    return result'

data TextViewBackwardDisplayLineMethodInfo
instance (signature ~ (Gtk.TextIter.TextIter -> m Bool), MonadIO m, IsTextView a) => O.MethodInfo TextViewBackwardDisplayLineMethodInfo a signature where
    overloadedMethod _ = textViewBackwardDisplayLine

-- method TextView::backward_display_line_start
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TextIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextIter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_backward_display_line_start" gtk_text_view_backward_display_line_start :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    Ptr Gtk.TextIter.TextIter ->            -- iter : TInterface (Name {namespace = "Gtk", name = "TextIter"})
    IO CInt

{- |
Moves the given /@iter@/ backward to the next display line start.
A display line is different from a paragraph. Paragraphs are
separated by newlines or other paragraph separator characters.
Display lines are created by line-wrapping a paragraph. If
wrapping is turned off, display lines and paragraphs will be the
same. Display lines are divided differently for each view, since
they depend on the view’s width; paragraphs are the same in all
views, since they depend on the contents of the 'GI.Gtk.Objects.TextBuffer.TextBuffer'.
-}
textViewBackwardDisplayLineStart ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> Gtk.TextIter.TextIter
    {- ^ /@iter@/: a 'GI.Gtk.Structs.TextIter.TextIter' -}
    -> m Bool
    {- ^ __Returns:__ 'True' if /@iter@/ was moved and is not on the end iterator -}
textViewBackwardDisplayLineStart textView iter = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    iter' <- unsafeManagedPtrGetPtr iter
    result <- gtk_text_view_backward_display_line_start textView' iter'
    let result' = (/= 0) result
    touchManagedPtr textView
    touchManagedPtr iter
    return result'

data TextViewBackwardDisplayLineStartMethodInfo
instance (signature ~ (Gtk.TextIter.TextIter -> m Bool), MonadIO m, IsTextView a) => O.MethodInfo TextViewBackwardDisplayLineStartMethodInfo a signature where
    overloadedMethod _ = textViewBackwardDisplayLineStart

-- method TextView::buffer_to_window_coords
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "win", argType = TInterface (Name {namespace = "Gtk", name = "TextWindowType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextWindowType except #GTK_TEXT_WINDOW_PRIVATE", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buffer_x", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "buffer x coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buffer_y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "buffer y coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "window_x", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "window x coordinate return location or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "window_y", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "window y coordinate return location or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_buffer_to_window_coords" gtk_text_view_buffer_to_window_coords :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    CUInt ->                                -- win : TInterface (Name {namespace = "Gtk", name = "TextWindowType"})
    Int32 ->                                -- buffer_x : TBasicType TInt
    Int32 ->                                -- buffer_y : TBasicType TInt
    Ptr Int32 ->                            -- window_x : TBasicType TInt
    Ptr Int32 ->                            -- window_y : TBasicType TInt
    IO ()

{- |
Converts coordinate (/@bufferX@/, /@bufferY@/) to coordinates for the window
/@win@/, and stores the result in (/@windowX@/, /@windowY@/).

Note that you can’t convert coordinates for a nonexisting window (see
'GI.Gtk.Objects.TextView.textViewSetBorderWindowSize').
-}
textViewBufferToWindowCoords ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> Gtk.Enums.TextWindowType
    {- ^ /@win@/: a 'GI.Gtk.Enums.TextWindowType' except @/GTK_TEXT_WINDOW_PRIVATE/@ -}
    -> Int32
    {- ^ /@bufferX@/: buffer x coordinate -}
    -> Int32
    {- ^ /@bufferY@/: buffer y coordinate -}
    -> m (Int32,Int32)
textViewBufferToWindowCoords textView win bufferX bufferY = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    let win' = (fromIntegral . fromEnum) win
    windowX <- allocMem :: IO (Ptr Int32)
    windowY <- allocMem :: IO (Ptr Int32)
    gtk_text_view_buffer_to_window_coords textView' win' bufferX bufferY windowX windowY
    windowX' <- peek windowX
    windowY' <- peek windowY
    touchManagedPtr textView
    freeMem windowX
    freeMem windowY
    return (windowX', windowY')

data TextViewBufferToWindowCoordsMethodInfo
instance (signature ~ (Gtk.Enums.TextWindowType -> Int32 -> Int32 -> m (Int32,Int32)), MonadIO m, IsTextView a) => O.MethodInfo TextViewBufferToWindowCoordsMethodInfo a signature where
    overloadedMethod _ = textViewBufferToWindowCoords

-- method TextView::forward_display_line
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TextIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextIter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_forward_display_line" gtk_text_view_forward_display_line :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    Ptr Gtk.TextIter.TextIter ->            -- iter : TInterface (Name {namespace = "Gtk", name = "TextIter"})
    IO CInt

{- |
Moves the given /@iter@/ forward by one display (wrapped) line.
A display line is different from a paragraph. Paragraphs are
separated by newlines or other paragraph separator characters.
Display lines are created by line-wrapping a paragraph. If
wrapping is turned off, display lines and paragraphs will be the
same. Display lines are divided differently for each view, since
they depend on the view’s width; paragraphs are the same in all
views, since they depend on the contents of the 'GI.Gtk.Objects.TextBuffer.TextBuffer'.
-}
textViewForwardDisplayLine ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> Gtk.TextIter.TextIter
    {- ^ /@iter@/: a 'GI.Gtk.Structs.TextIter.TextIter' -}
    -> m Bool
    {- ^ __Returns:__ 'True' if /@iter@/ was moved and is not on the end iterator -}
textViewForwardDisplayLine textView iter = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    iter' <- unsafeManagedPtrGetPtr iter
    result <- gtk_text_view_forward_display_line textView' iter'
    let result' = (/= 0) result
    touchManagedPtr textView
    touchManagedPtr iter
    return result'

data TextViewForwardDisplayLineMethodInfo
instance (signature ~ (Gtk.TextIter.TextIter -> m Bool), MonadIO m, IsTextView a) => O.MethodInfo TextViewForwardDisplayLineMethodInfo a signature where
    overloadedMethod _ = textViewForwardDisplayLine

-- method TextView::forward_display_line_end
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TextIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextIter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_forward_display_line_end" gtk_text_view_forward_display_line_end :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    Ptr Gtk.TextIter.TextIter ->            -- iter : TInterface (Name {namespace = "Gtk", name = "TextIter"})
    IO CInt

{- |
Moves the given /@iter@/ forward to the next display line end.
A display line is different from a paragraph. Paragraphs are
separated by newlines or other paragraph separator characters.
Display lines are created by line-wrapping a paragraph. If
wrapping is turned off, display lines and paragraphs will be the
same. Display lines are divided differently for each view, since
they depend on the view’s width; paragraphs are the same in all
views, since they depend on the contents of the 'GI.Gtk.Objects.TextBuffer.TextBuffer'.
-}
textViewForwardDisplayLineEnd ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> Gtk.TextIter.TextIter
    {- ^ /@iter@/: a 'GI.Gtk.Structs.TextIter.TextIter' -}
    -> m Bool
    {- ^ __Returns:__ 'True' if /@iter@/ was moved and is not on the end iterator -}
textViewForwardDisplayLineEnd textView iter = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    iter' <- unsafeManagedPtrGetPtr iter
    result <- gtk_text_view_forward_display_line_end textView' iter'
    let result' = (/= 0) result
    touchManagedPtr textView
    touchManagedPtr iter
    return result'

data TextViewForwardDisplayLineEndMethodInfo
instance (signature ~ (Gtk.TextIter.TextIter -> m Bool), MonadIO m, IsTextView a) => O.MethodInfo TextViewForwardDisplayLineEndMethodInfo a signature where
    overloadedMethod _ = textViewForwardDisplayLineEnd

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

foreign import ccall "gtk_text_view_get_accepts_tab" gtk_text_view_get_accepts_tab :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    IO CInt

{- |
Returns whether pressing the Tab key inserts a tab characters.
'GI.Gtk.Objects.TextView.textViewSetAcceptsTab'.

@since 2.4
-}
textViewGetAcceptsTab ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: A 'GI.Gtk.Objects.TextView.TextView' -}
    -> m Bool
    {- ^ __Returns:__ 'True' if pressing the Tab key inserts a tab character,
  'False' if pressing the Tab key moves the keyboard focus. -}
textViewGetAcceptsTab textView = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    result <- gtk_text_view_get_accepts_tab textView'
    let result' = (/= 0) result
    touchManagedPtr textView
    return result'

data TextViewGetAcceptsTabMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsTextView a) => O.MethodInfo TextViewGetAcceptsTabMethodInfo a signature where
    overloadedMethod _ = textViewGetAcceptsTab

-- method TextView::get_border_window_size
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "type", argType = TInterface (Name {namespace = "Gtk", name = "TextWindowType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "window to return size from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TInt)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_get_border_window_size" gtk_text_view_get_border_window_size :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    CUInt ->                                -- type : TInterface (Name {namespace = "Gtk", name = "TextWindowType"})
    IO Int32

{- |
Gets the width of the specified border window. See
'GI.Gtk.Objects.TextView.textViewSetBorderWindowSize'.
-}
textViewGetBorderWindowSize ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> Gtk.Enums.TextWindowType
    {- ^ /@type@/: window to return size from -}
    -> m Int32
    {- ^ __Returns:__ width of window -}
textViewGetBorderWindowSize textView type_ = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    let type_' = (fromIntegral . fromEnum) type_
    result <- gtk_text_view_get_border_window_size textView' type_'
    touchManagedPtr textView
    return result

data TextViewGetBorderWindowSizeMethodInfo
instance (signature ~ (Gtk.Enums.TextWindowType -> m Int32), MonadIO m, IsTextView a) => O.MethodInfo TextViewGetBorderWindowSizeMethodInfo a signature where
    overloadedMethod _ = textViewGetBorderWindowSize

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

foreign import ccall "gtk_text_view_get_bottom_margin" gtk_text_view_get_bottom_margin :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    IO Int32

{- |
Gets the bottom margin for text in the /@textView@/.

@since 3.18
-}
textViewGetBottomMargin ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> m Int32
    {- ^ __Returns:__ bottom margin in pixels -}
textViewGetBottomMargin textView = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    result <- gtk_text_view_get_bottom_margin textView'
    touchManagedPtr textView
    return result

data TextViewGetBottomMarginMethodInfo
instance (signature ~ (m Int32), MonadIO m, IsTextView a) => O.MethodInfo TextViewGetBottomMarginMethodInfo a signature where
    overloadedMethod _ = textViewGetBottomMargin

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

foreign import ccall "gtk_text_view_get_buffer" gtk_text_view_get_buffer :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    IO (Ptr Gtk.TextBuffer.TextBuffer)

{- |
Returns the 'GI.Gtk.Objects.TextBuffer.TextBuffer' being displayed by this text view.
The reference count on the buffer is not incremented; the caller
of this function won’t own a new reference.
-}
textViewGetBuffer ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> m Gtk.TextBuffer.TextBuffer
    {- ^ __Returns:__ a 'GI.Gtk.Objects.TextBuffer.TextBuffer' -}
textViewGetBuffer textView = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    result <- gtk_text_view_get_buffer textView'
    checkUnexpectedReturnNULL "textViewGetBuffer" result
    result' <- (newObject Gtk.TextBuffer.TextBuffer) result
    touchManagedPtr textView
    return result'

data TextViewGetBufferMethodInfo
instance (signature ~ (m Gtk.TextBuffer.TextBuffer), MonadIO m, IsTextView a) => O.MethodInfo TextViewGetBufferMethodInfo a signature where
    overloadedMethod _ = textViewGetBuffer

-- method TextView::get_cursor_locations
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TextIter"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #GtkTextIter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "strong", argType = TInterface (Name {namespace = "Gdk", name = "Rectangle"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location to store the strong\n    cursor position (may be %NULL)", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing},Arg {argCName = "weak", argType = TInterface (Name {namespace = "Gdk", name = "Rectangle"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location to store the weak\n    cursor position (may be %NULL)", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_get_cursor_locations" gtk_text_view_get_cursor_locations :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    Ptr Gtk.TextIter.TextIter ->            -- iter : TInterface (Name {namespace = "Gtk", name = "TextIter"})
    Ptr Gdk.Rectangle.Rectangle ->          -- strong : TInterface (Name {namespace = "Gdk", name = "Rectangle"})
    Ptr Gdk.Rectangle.Rectangle ->          -- weak : TInterface (Name {namespace = "Gdk", name = "Rectangle"})
    IO ()

{- |
Given an /@iter@/ within a text layout, determine the positions of the
strong and weak cursors if the insertion point is at that
iterator. The position of each cursor is stored as a zero-width
rectangle. The strong cursor location is the location where
characters of the directionality equal to the base direction of the
paragraph are inserted.  The weak cursor location is the location
where characters of the directionality opposite to the base
direction of the paragraph are inserted.

If /@iter@/ is 'Nothing', the actual cursor position is used.

Note that if /@iter@/ happens to be the actual cursor position, and
there is currently an IM preedit sequence being entered, the
returned locations will be adjusted to account for the preedit
cursor’s offset within the preedit sequence.

The rectangle position is in buffer coordinates; use
'GI.Gtk.Objects.TextView.textViewBufferToWindowCoords' to convert these
coordinates to coordinates for one of the windows in the text view.

@since 3.0
-}
textViewGetCursorLocations ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> Maybe (Gtk.TextIter.TextIter)
    {- ^ /@iter@/: a 'GI.Gtk.Structs.TextIter.TextIter' -}
    -> m (Gdk.Rectangle.Rectangle,Gdk.Rectangle.Rectangle)
textViewGetCursorLocations textView iter = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    maybeIter <- case iter of
        Nothing -> return nullPtr
        Just jIter -> do
            jIter' <- unsafeManagedPtrGetPtr jIter
            return jIter'
    strong <- callocBoxedBytes 16 :: IO (Ptr Gdk.Rectangle.Rectangle)
    weak <- callocBoxedBytes 16 :: IO (Ptr Gdk.Rectangle.Rectangle)
    gtk_text_view_get_cursor_locations textView' maybeIter strong weak
    strong' <- (wrapBoxed Gdk.Rectangle.Rectangle) strong
    weak' <- (wrapBoxed Gdk.Rectangle.Rectangle) weak
    touchManagedPtr textView
    whenJust iter touchManagedPtr
    return (strong', weak')

data TextViewGetCursorLocationsMethodInfo
instance (signature ~ (Maybe (Gtk.TextIter.TextIter) -> m (Gdk.Rectangle.Rectangle,Gdk.Rectangle.Rectangle)), MonadIO m, IsTextView a) => O.MethodInfo TextViewGetCursorLocationsMethodInfo a signature where
    overloadedMethod _ = textViewGetCursorLocations

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

foreign import ccall "gtk_text_view_get_cursor_visible" gtk_text_view_get_cursor_visible :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    IO CInt

{- |
Find out whether the cursor should be displayed.
-}
textViewGetCursorVisible ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> m Bool
    {- ^ __Returns:__ whether the insertion mark is visible -}
textViewGetCursorVisible textView = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    result <- gtk_text_view_get_cursor_visible textView'
    let result' = (/= 0) result
    touchManagedPtr textView
    return result'

data TextViewGetCursorVisibleMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsTextView a) => O.MethodInfo TextViewGetCursorVisibleMethodInfo a signature where
    overloadedMethod _ = textViewGetCursorVisible

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

foreign import ccall "gtk_text_view_get_default_attributes" gtk_text_view_get_default_attributes :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    IO (Ptr Gtk.TextAttributes.TextAttributes)

{- |
Obtains a copy of the default text attributes. These are the
attributes used for text unless a tag overrides them.
You’d typically pass the default attributes in to
'GI.Gtk.Structs.TextIter.textIterGetAttributes' in order to get the
attributes in effect at a given text position.

The return value is a copy owned by the caller of this function,
and should be freed with 'GI.Gtk.Structs.TextAttributes.textAttributesUnref'.
-}
textViewGetDefaultAttributes ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> m Gtk.TextAttributes.TextAttributes
    {- ^ __Returns:__ a new 'GI.Gtk.Structs.TextAttributes.TextAttributes' -}
textViewGetDefaultAttributes textView = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    result <- gtk_text_view_get_default_attributes textView'
    checkUnexpectedReturnNULL "textViewGetDefaultAttributes" result
    result' <- (wrapBoxed Gtk.TextAttributes.TextAttributes) result
    touchManagedPtr textView
    return result'

data TextViewGetDefaultAttributesMethodInfo
instance (signature ~ (m Gtk.TextAttributes.TextAttributes), MonadIO m, IsTextView a) => O.MethodInfo TextViewGetDefaultAttributesMethodInfo a signature where
    overloadedMethod _ = textViewGetDefaultAttributes

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

foreign import ccall "gtk_text_view_get_editable" gtk_text_view_get_editable :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    IO CInt

{- |
Returns the default editability of the 'GI.Gtk.Objects.TextView.TextView'. Tags in the
buffer may override this setting for some ranges of text.
-}
textViewGetEditable ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> m Bool
    {- ^ __Returns:__ whether text is editable by default -}
textViewGetEditable textView = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    result <- gtk_text_view_get_editable textView'
    let result' = (/= 0) result
    touchManagedPtr textView
    return result'

data TextViewGetEditableMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsTextView a) => O.MethodInfo TextViewGetEditableMethodInfo a signature where
    overloadedMethod _ = textViewGetEditable

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

foreign import ccall "gtk_text_view_get_hadjustment" gtk_text_view_get_hadjustment :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    IO (Ptr Gtk.Adjustment.Adjustment)

{-# DEPRECATED textViewGetHadjustment ["(Since version 3.0)","Use 'GI.Gtk.Interfaces.Scrollable.scrollableGetHadjustment'"] #-}
{- |
Gets the horizontal-scrolling 'GI.Gtk.Objects.Adjustment.Adjustment'.

@since 2.22
-}
textViewGetHadjustment ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> m Gtk.Adjustment.Adjustment
    {- ^ __Returns:__ pointer to the horizontal 'GI.Gtk.Objects.Adjustment.Adjustment' -}
textViewGetHadjustment textView = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    result <- gtk_text_view_get_hadjustment textView'
    checkUnexpectedReturnNULL "textViewGetHadjustment" result
    result' <- (newObject Gtk.Adjustment.Adjustment) result
    touchManagedPtr textView
    return result'

data TextViewGetHadjustmentMethodInfo
instance (signature ~ (m Gtk.Adjustment.Adjustment), MonadIO m, IsTextView a) => O.MethodInfo TextViewGetHadjustmentMethodInfo a signature where
    overloadedMethod _ = textViewGetHadjustment

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

foreign import ccall "gtk_text_view_get_indent" gtk_text_view_get_indent :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    IO Int32

{- |
Gets the default indentation of paragraphs in /@textView@/.
Tags in the view’s buffer may override the default.
The indentation may be negative.
-}
textViewGetIndent ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> m Int32
    {- ^ __Returns:__ number of pixels of indentation -}
textViewGetIndent textView = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    result <- gtk_text_view_get_indent textView'
    touchManagedPtr textView
    return result

data TextViewGetIndentMethodInfo
instance (signature ~ (m Int32), MonadIO m, IsTextView a) => O.MethodInfo TextViewGetIndentMethodInfo a signature where
    overloadedMethod _ = textViewGetIndent

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

foreign import ccall "gtk_text_view_get_input_hints" gtk_text_view_get_input_hints :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    IO CUInt

{- |
Gets the value of the 'GI.Gtk.Objects.TextView.TextView':@/input-hints/@ property.

@since 3.6
-}
textViewGetInputHints ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> m [Gtk.Flags.InputHints]
textViewGetInputHints textView = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    result <- gtk_text_view_get_input_hints textView'
    let result' = wordToGFlags result
    touchManagedPtr textView
    return result'

data TextViewGetInputHintsMethodInfo
instance (signature ~ (m [Gtk.Flags.InputHints]), MonadIO m, IsTextView a) => O.MethodInfo TextViewGetInputHintsMethodInfo a signature where
    overloadedMethod _ = textViewGetInputHints

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

foreign import ccall "gtk_text_view_get_input_purpose" gtk_text_view_get_input_purpose :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    IO CUInt

{- |
Gets the value of the 'GI.Gtk.Objects.TextView.TextView':@/input-purpose/@ property.

@since 3.6
-}
textViewGetInputPurpose ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> m Gtk.Enums.InputPurpose
textViewGetInputPurpose textView = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    result <- gtk_text_view_get_input_purpose textView'
    let result' = (toEnum . fromIntegral) result
    touchManagedPtr textView
    return result'

data TextViewGetInputPurposeMethodInfo
instance (signature ~ (m Gtk.Enums.InputPurpose), MonadIO m, IsTextView a) => O.MethodInfo TextViewGetInputPurposeMethodInfo a signature where
    overloadedMethod _ = textViewGetInputPurpose

-- method TextView::get_iter_at_location
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TextIter"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextIter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "x position, in buffer coordinates", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "y position, in buffer coordinates", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_get_iter_at_location" gtk_text_view_get_iter_at_location :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    Ptr Gtk.TextIter.TextIter ->            -- iter : TInterface (Name {namespace = "Gtk", name = "TextIter"})
    Int32 ->                                -- x : TBasicType TInt
    Int32 ->                                -- y : TBasicType TInt
    IO CInt

{- |
Retrieves the iterator at buffer coordinates /@x@/ and /@y@/. Buffer
coordinates are coordinates for the entire buffer, not just the
currently-displayed portion.  If you have coordinates from an
event, you have to convert those to buffer coordinates with
'GI.Gtk.Objects.TextView.textViewWindowToBufferCoords'.
-}
textViewGetIterAtLocation ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> Int32
    {- ^ /@x@/: x position, in buffer coordinates -}
    -> Int32
    {- ^ /@y@/: y position, in buffer coordinates -}
    -> m (Bool,Gtk.TextIter.TextIter)
    {- ^ __Returns:__ 'True' if the position is over text -}
textViewGetIterAtLocation textView x y = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    iter <- callocBoxedBytes 80 :: IO (Ptr Gtk.TextIter.TextIter)
    result <- gtk_text_view_get_iter_at_location textView' iter x y
    let result' = (/= 0) result
    iter' <- (wrapBoxed Gtk.TextIter.TextIter) iter
    touchManagedPtr textView
    return (result', iter')

data TextViewGetIterAtLocationMethodInfo
instance (signature ~ (Int32 -> Int32 -> m (Bool,Gtk.TextIter.TextIter)), MonadIO m, IsTextView a) => O.MethodInfo TextViewGetIterAtLocationMethodInfo a signature where
    overloadedMethod _ = textViewGetIterAtLocation

-- method TextView::get_iter_at_position
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TextIter"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextIter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing},Arg {argCName = "trailing", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "if non-%NULL, location to store an integer indicating where\n   in the grapheme the user clicked. It will either be\n   zero, or the number of characters in the grapheme.\n   0 represents the trailing edge of the grapheme.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "x", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "x position, in buffer coordinates", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "y position, in buffer coordinates", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_get_iter_at_position" gtk_text_view_get_iter_at_position :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    Ptr Gtk.TextIter.TextIter ->            -- iter : TInterface (Name {namespace = "Gtk", name = "TextIter"})
    Ptr Int32 ->                            -- trailing : TBasicType TInt
    Int32 ->                                -- x : TBasicType TInt
    Int32 ->                                -- y : TBasicType TInt
    IO CInt

{- |
Retrieves the iterator pointing to the character at buffer
coordinates /@x@/ and /@y@/. Buffer coordinates are coordinates for
the entire buffer, not just the currently-displayed portion.
If you have coordinates from an event, you have to convert
those to buffer coordinates with
'GI.Gtk.Objects.TextView.textViewWindowToBufferCoords'.

Note that this is different from 'GI.Gtk.Objects.TextView.textViewGetIterAtLocation',
which returns cursor locations, i.e. positions between
characters.

@since 2.6
-}
textViewGetIterAtPosition ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> Int32
    {- ^ /@x@/: x position, in buffer coordinates -}
    -> Int32
    {- ^ /@y@/: y position, in buffer coordinates -}
    -> m (Bool,Gtk.TextIter.TextIter,Int32)
    {- ^ __Returns:__ 'True' if the position is over text -}
textViewGetIterAtPosition textView x y = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    iter <- callocBoxedBytes 80 :: IO (Ptr Gtk.TextIter.TextIter)
    trailing <- allocMem :: IO (Ptr Int32)
    result <- gtk_text_view_get_iter_at_position textView' iter trailing x y
    let result' = (/= 0) result
    iter' <- (wrapBoxed Gtk.TextIter.TextIter) iter
    trailing' <- peek trailing
    touchManagedPtr textView
    freeMem trailing
    return (result', iter', trailing')

data TextViewGetIterAtPositionMethodInfo
instance (signature ~ (Int32 -> Int32 -> m (Bool,Gtk.TextIter.TextIter,Int32)), MonadIO m, IsTextView a) => O.MethodInfo TextViewGetIterAtPositionMethodInfo a signature where
    overloadedMethod _ = textViewGetIterAtPosition

-- method TextView::get_iter_location
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TextIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextIter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "location", argType = TInterface (Name {namespace = "Gdk", name = "Rectangle"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "bounds of the character at @iter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_get_iter_location" gtk_text_view_get_iter_location :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    Ptr Gtk.TextIter.TextIter ->            -- iter : TInterface (Name {namespace = "Gtk", name = "TextIter"})
    Ptr Gdk.Rectangle.Rectangle ->          -- location : TInterface (Name {namespace = "Gdk", name = "Rectangle"})
    IO ()

{- |
Gets a rectangle which roughly contains the character at /@iter@/.
The rectangle position is in buffer coordinates; use
'GI.Gtk.Objects.TextView.textViewBufferToWindowCoords' to convert these
coordinates to coordinates for one of the windows in the text view.
-}
textViewGetIterLocation ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> Gtk.TextIter.TextIter
    {- ^ /@iter@/: a 'GI.Gtk.Structs.TextIter.TextIter' -}
    -> m (Gdk.Rectangle.Rectangle)
textViewGetIterLocation textView iter = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    iter' <- unsafeManagedPtrGetPtr iter
    location <- callocBoxedBytes 16 :: IO (Ptr Gdk.Rectangle.Rectangle)
    gtk_text_view_get_iter_location textView' iter' location
    location' <- (wrapBoxed Gdk.Rectangle.Rectangle) location
    touchManagedPtr textView
    touchManagedPtr iter
    return location'

data TextViewGetIterLocationMethodInfo
instance (signature ~ (Gtk.TextIter.TextIter -> m (Gdk.Rectangle.Rectangle)), MonadIO m, IsTextView a) => O.MethodInfo TextViewGetIterLocationMethodInfo a signature where
    overloadedMethod _ = textViewGetIterLocation

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

foreign import ccall "gtk_text_view_get_justification" gtk_text_view_get_justification :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    IO CUInt

{- |
Gets the default justification of paragraphs in /@textView@/.
Tags in the buffer may override the default.
-}
textViewGetJustification ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> m Gtk.Enums.Justification
    {- ^ __Returns:__ default justification -}
textViewGetJustification textView = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    result <- gtk_text_view_get_justification textView'
    let result' = (toEnum . fromIntegral) result
    touchManagedPtr textView
    return result'

data TextViewGetJustificationMethodInfo
instance (signature ~ (m Gtk.Enums.Justification), MonadIO m, IsTextView a) => O.MethodInfo TextViewGetJustificationMethodInfo a signature where
    overloadedMethod _ = textViewGetJustification

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

foreign import ccall "gtk_text_view_get_left_margin" gtk_text_view_get_left_margin :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    IO Int32

{- |
Gets the default left margin size of paragraphs in the /@textView@/.
Tags in the buffer may override the default.
-}
textViewGetLeftMargin ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> m Int32
    {- ^ __Returns:__ left margin in pixels -}
textViewGetLeftMargin textView = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    result <- gtk_text_view_get_left_margin textView'
    touchManagedPtr textView
    return result

data TextViewGetLeftMarginMethodInfo
instance (signature ~ (m Int32), MonadIO m, IsTextView a) => O.MethodInfo TextViewGetLeftMarginMethodInfo a signature where
    overloadedMethod _ = textViewGetLeftMargin

-- method TextView::get_line_at_y
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "target_iter", argType = TInterface (Name {namespace = "Gtk", name = "TextIter"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextIter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a y coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "line_top", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "return location for top coordinate of the line", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_get_line_at_y" gtk_text_view_get_line_at_y :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    Ptr Gtk.TextIter.TextIter ->            -- target_iter : TInterface (Name {namespace = "Gtk", name = "TextIter"})
    Int32 ->                                -- y : TBasicType TInt
    Ptr Int32 ->                            -- line_top : TBasicType TInt
    IO ()

{- |
Gets the 'GI.Gtk.Structs.TextIter.TextIter' at the start of the line containing
the coordinate /@y@/. /@y@/ is in buffer coordinates, convert from
window coordinates with 'GI.Gtk.Objects.TextView.textViewWindowToBufferCoords'.
If non-'Nothing', /@lineTop@/ will be filled with the coordinate of the top
edge of the line.
-}
textViewGetLineAtY ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> Int32
    {- ^ /@y@/: a y coordinate -}
    -> m (Gtk.TextIter.TextIter,Int32)
textViewGetLineAtY textView y = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    targetIter <- callocBoxedBytes 80 :: IO (Ptr Gtk.TextIter.TextIter)
    lineTop <- allocMem :: IO (Ptr Int32)
    gtk_text_view_get_line_at_y textView' targetIter y lineTop
    targetIter' <- (wrapBoxed Gtk.TextIter.TextIter) targetIter
    lineTop' <- peek lineTop
    touchManagedPtr textView
    freeMem lineTop
    return (targetIter', lineTop')

data TextViewGetLineAtYMethodInfo
instance (signature ~ (Int32 -> m (Gtk.TextIter.TextIter,Int32)), MonadIO m, IsTextView a) => O.MethodInfo TextViewGetLineAtYMethodInfo a signature where
    overloadedMethod _ = textViewGetLineAtY

-- method TextView::get_line_yrange
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TextIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextIter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "return location for a y coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "height", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "return location for a height", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_get_line_yrange" gtk_text_view_get_line_yrange :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    Ptr Gtk.TextIter.TextIter ->            -- iter : TInterface (Name {namespace = "Gtk", name = "TextIter"})
    Ptr Int32 ->                            -- y : TBasicType TInt
    Ptr Int32 ->                            -- height : TBasicType TInt
    IO ()

{- |
Gets the y coordinate of the top of the line containing /@iter@/,
and the height of the line. The coordinate is a buffer coordinate;
convert to window coordinates with 'GI.Gtk.Objects.TextView.textViewBufferToWindowCoords'.
-}
textViewGetLineYrange ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> Gtk.TextIter.TextIter
    {- ^ /@iter@/: a 'GI.Gtk.Structs.TextIter.TextIter' -}
    -> m (Int32,Int32)
textViewGetLineYrange textView iter = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    iter' <- unsafeManagedPtrGetPtr iter
    y <- allocMem :: IO (Ptr Int32)
    height <- allocMem :: IO (Ptr Int32)
    gtk_text_view_get_line_yrange textView' iter' y height
    y' <- peek y
    height' <- peek height
    touchManagedPtr textView
    touchManagedPtr iter
    freeMem y
    freeMem height
    return (y', height')

data TextViewGetLineYrangeMethodInfo
instance (signature ~ (Gtk.TextIter.TextIter -> m (Int32,Int32)), MonadIO m, IsTextView a) => O.MethodInfo TextViewGetLineYrangeMethodInfo a signature where
    overloadedMethod _ = textViewGetLineYrange

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

foreign import ccall "gtk_text_view_get_monospace" gtk_text_view_get_monospace :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    IO CInt

{- |
Gets the value of the 'GI.Gtk.Objects.TextView.TextView':@/monospace/@ property.

@since 3.16
-}
textViewGetMonospace ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> m Bool
    {- ^ __Returns:__ 'True' if monospace fonts are desired -}
textViewGetMonospace textView = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    result <- gtk_text_view_get_monospace textView'
    let result' = (/= 0) result
    touchManagedPtr textView
    return result'

data TextViewGetMonospaceMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsTextView a) => O.MethodInfo TextViewGetMonospaceMethodInfo a signature where
    overloadedMethod _ = textViewGetMonospace

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

foreign import ccall "gtk_text_view_get_overwrite" gtk_text_view_get_overwrite :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    IO CInt

{- |
Returns whether the 'GI.Gtk.Objects.TextView.TextView' is in overwrite mode or not.

@since 2.4
-}
textViewGetOverwrite ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> m Bool
    {- ^ __Returns:__ whether /@textView@/ is in overwrite mode or not. -}
textViewGetOverwrite textView = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    result <- gtk_text_view_get_overwrite textView'
    let result' = (/= 0) result
    touchManagedPtr textView
    return result'

data TextViewGetOverwriteMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsTextView a) => O.MethodInfo TextViewGetOverwriteMethodInfo a signature where
    overloadedMethod _ = textViewGetOverwrite

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

foreign import ccall "gtk_text_view_get_pixels_above_lines" gtk_text_view_get_pixels_above_lines :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    IO Int32

{- |
Gets the default number of pixels to put above paragraphs.
Adding this function with 'GI.Gtk.Objects.TextView.textViewGetPixelsBelowLines'
is equal to the line space between each paragraph.
-}
textViewGetPixelsAboveLines ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> m Int32
    {- ^ __Returns:__ default number of pixels above paragraphs -}
textViewGetPixelsAboveLines textView = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    result <- gtk_text_view_get_pixels_above_lines textView'
    touchManagedPtr textView
    return result

data TextViewGetPixelsAboveLinesMethodInfo
instance (signature ~ (m Int32), MonadIO m, IsTextView a) => O.MethodInfo TextViewGetPixelsAboveLinesMethodInfo a signature where
    overloadedMethod _ = textViewGetPixelsAboveLines

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

foreign import ccall "gtk_text_view_get_pixels_below_lines" gtk_text_view_get_pixels_below_lines :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    IO Int32

{- |
Gets the value set by 'GI.Gtk.Objects.TextView.textViewSetPixelsBelowLines'.

The line space is the sum of the value returned by this function and the
value returned by 'GI.Gtk.Objects.TextView.textViewGetPixelsAboveLines'.
-}
textViewGetPixelsBelowLines ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> m Int32
    {- ^ __Returns:__ default number of blank pixels below paragraphs -}
textViewGetPixelsBelowLines textView = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    result <- gtk_text_view_get_pixels_below_lines textView'
    touchManagedPtr textView
    return result

data TextViewGetPixelsBelowLinesMethodInfo
instance (signature ~ (m Int32), MonadIO m, IsTextView a) => O.MethodInfo TextViewGetPixelsBelowLinesMethodInfo a signature where
    overloadedMethod _ = textViewGetPixelsBelowLines

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

foreign import ccall "gtk_text_view_get_pixels_inside_wrap" gtk_text_view_get_pixels_inside_wrap :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    IO Int32

{- |
Gets the value set by 'GI.Gtk.Objects.TextView.textViewSetPixelsInsideWrap'.
-}
textViewGetPixelsInsideWrap ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> m Int32
    {- ^ __Returns:__ default number of pixels of blank space between wrapped lines -}
textViewGetPixelsInsideWrap textView = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    result <- gtk_text_view_get_pixels_inside_wrap textView'
    touchManagedPtr textView
    return result

data TextViewGetPixelsInsideWrapMethodInfo
instance (signature ~ (m Int32), MonadIO m, IsTextView a) => O.MethodInfo TextViewGetPixelsInsideWrapMethodInfo a signature where
    overloadedMethod _ = textViewGetPixelsInsideWrap

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

foreign import ccall "gtk_text_view_get_right_margin" gtk_text_view_get_right_margin :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    IO Int32

{- |
Gets the default right margin for text in /@textView@/. Tags
in the buffer may override the default.
-}
textViewGetRightMargin ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> m Int32
    {- ^ __Returns:__ right margin in pixels -}
textViewGetRightMargin textView = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    result <- gtk_text_view_get_right_margin textView'
    touchManagedPtr textView
    return result

data TextViewGetRightMarginMethodInfo
instance (signature ~ (m Int32), MonadIO m, IsTextView a) => O.MethodInfo TextViewGetRightMarginMethodInfo a signature where
    overloadedMethod _ = textViewGetRightMargin

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

foreign import ccall "gtk_text_view_get_tabs" gtk_text_view_get_tabs :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    IO (Ptr Pango.TabArray.TabArray)

{- |
Gets the default tabs for /@textView@/. Tags in the buffer may
override the defaults. The returned array will be 'Nothing' if
“standard” (8-space) tabs are used. Free the return value
with 'GI.Pango.Structs.TabArray.tabArrayFree'.
-}
textViewGetTabs ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> m (Maybe Pango.TabArray.TabArray)
    {- ^ __Returns:__ copy of default tab array, or 'Nothing' if
   “standard\" tabs are used; must be freed with 'GI.Pango.Structs.TabArray.tabArrayFree'. -}
textViewGetTabs textView = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    result <- gtk_text_view_get_tabs textView'
    maybeResult <- convertIfNonNull result $ \result' -> do
        result'' <- (wrapBoxed Pango.TabArray.TabArray) result'
        return result''
    touchManagedPtr textView
    return maybeResult

data TextViewGetTabsMethodInfo
instance (signature ~ (m (Maybe Pango.TabArray.TabArray)), MonadIO m, IsTextView a) => O.MethodInfo TextViewGetTabsMethodInfo a signature where
    overloadedMethod _ = textViewGetTabs

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

foreign import ccall "gtk_text_view_get_top_margin" gtk_text_view_get_top_margin :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    IO Int32

{- |
Gets the top margin for text in the /@textView@/.

@since 3.18
-}
textViewGetTopMargin ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> m Int32
    {- ^ __Returns:__ top margin in pixels -}
textViewGetTopMargin textView = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    result <- gtk_text_view_get_top_margin textView'
    touchManagedPtr textView
    return result

data TextViewGetTopMarginMethodInfo
instance (signature ~ (m Int32), MonadIO m, IsTextView a) => O.MethodInfo TextViewGetTopMarginMethodInfo a signature where
    overloadedMethod _ = textViewGetTopMargin

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

foreign import ccall "gtk_text_view_get_vadjustment" gtk_text_view_get_vadjustment :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    IO (Ptr Gtk.Adjustment.Adjustment)

{-# DEPRECATED textViewGetVadjustment ["(Since version 3.0)","Use 'GI.Gtk.Interfaces.Scrollable.scrollableGetVadjustment'"] #-}
{- |
Gets the vertical-scrolling 'GI.Gtk.Objects.Adjustment.Adjustment'.

@since 2.22
-}
textViewGetVadjustment ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> m Gtk.Adjustment.Adjustment
    {- ^ __Returns:__ pointer to the vertical 'GI.Gtk.Objects.Adjustment.Adjustment' -}
textViewGetVadjustment textView = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    result <- gtk_text_view_get_vadjustment textView'
    checkUnexpectedReturnNULL "textViewGetVadjustment" result
    result' <- (newObject Gtk.Adjustment.Adjustment) result
    touchManagedPtr textView
    return result'

data TextViewGetVadjustmentMethodInfo
instance (signature ~ (m Gtk.Adjustment.Adjustment), MonadIO m, IsTextView a) => O.MethodInfo TextViewGetVadjustmentMethodInfo a signature where
    overloadedMethod _ = textViewGetVadjustment

-- method TextView::get_visible_rect
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "visible_rect", argType = TInterface (Name {namespace = "Gdk", name = "Rectangle"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "rectangle to fill", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_get_visible_rect" gtk_text_view_get_visible_rect :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    Ptr Gdk.Rectangle.Rectangle ->          -- visible_rect : TInterface (Name {namespace = "Gdk", name = "Rectangle"})
    IO ()

{- |
Fills /@visibleRect@/ with the currently-visible
region of the buffer, in buffer coordinates. Convert to window coordinates
with 'GI.Gtk.Objects.TextView.textViewBufferToWindowCoords'.
-}
textViewGetVisibleRect ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> m (Gdk.Rectangle.Rectangle)
textViewGetVisibleRect textView = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    visibleRect <- callocBoxedBytes 16 :: IO (Ptr Gdk.Rectangle.Rectangle)
    gtk_text_view_get_visible_rect textView' visibleRect
    visibleRect' <- (wrapBoxed Gdk.Rectangle.Rectangle) visibleRect
    touchManagedPtr textView
    return visibleRect'

data TextViewGetVisibleRectMethodInfo
instance (signature ~ (m (Gdk.Rectangle.Rectangle)), MonadIO m, IsTextView a) => O.MethodInfo TextViewGetVisibleRectMethodInfo a signature where
    overloadedMethod _ = textViewGetVisibleRect

-- method TextView::get_window
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "win", argType = TInterface (Name {namespace = "Gtk", name = "TextWindowType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "window to get", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gdk", name = "Window"}))
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_get_window" gtk_text_view_get_window :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    CUInt ->                                -- win : TInterface (Name {namespace = "Gtk", name = "TextWindowType"})
    IO (Ptr Gdk.Window.Window)

{- |
Retrieves the 'GI.Gdk.Objects.Window.Window' corresponding to an area of the text view;
possible windows include the overall widget window, child windows
on the left, right, top, bottom, and the window that displays the
text buffer. Windows are 'Nothing' and nonexistent if their width or
height is 0, and are nonexistent before the widget has been
realized.
-}
textViewGetWindow ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> Gtk.Enums.TextWindowType
    {- ^ /@win@/: window to get -}
    -> m (Maybe Gdk.Window.Window)
    {- ^ __Returns:__ a 'GI.Gdk.Objects.Window.Window', or 'Nothing' -}
textViewGetWindow textView win = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    let win' = (fromIntegral . fromEnum) win
    result <- gtk_text_view_get_window textView' win'
    maybeResult <- convertIfNonNull result $ \result' -> do
        result'' <- (newObject Gdk.Window.Window) result'
        return result''
    touchManagedPtr textView
    return maybeResult

data TextViewGetWindowMethodInfo
instance (signature ~ (Gtk.Enums.TextWindowType -> m (Maybe Gdk.Window.Window)), MonadIO m, IsTextView a) => O.MethodInfo TextViewGetWindowMethodInfo a signature where
    overloadedMethod _ = textViewGetWindow

-- method TextView::get_window_type
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "window", argType = TInterface (Name {namespace = "Gdk", name = "Window"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a window type", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gtk", name = "TextWindowType"}))
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_get_window_type" gtk_text_view_get_window_type :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    Ptr Gdk.Window.Window ->                -- window : TInterface (Name {namespace = "Gdk", name = "Window"})
    IO CUInt

{- |
Usually used to find out which window an event corresponds to.
If you connect to an event signal on /@textView@/, this function
should be called on @event->window@ to
see which window it was.
-}
textViewGetWindowType ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a, Gdk.Window.IsWindow b) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> b
    {- ^ /@window@/: a window type -}
    -> m Gtk.Enums.TextWindowType
    {- ^ __Returns:__ the window type. -}
textViewGetWindowType textView window = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    window' <- unsafeManagedPtrCastPtr window
    result <- gtk_text_view_get_window_type textView' window'
    let result' = (toEnum . fromIntegral) result
    touchManagedPtr textView
    touchManagedPtr window
    return result'

data TextViewGetWindowTypeMethodInfo
instance (signature ~ (b -> m Gtk.Enums.TextWindowType), MonadIO m, IsTextView a, Gdk.Window.IsWindow b) => O.MethodInfo TextViewGetWindowTypeMethodInfo a signature where
    overloadedMethod _ = textViewGetWindowType

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

foreign import ccall "gtk_text_view_get_wrap_mode" gtk_text_view_get_wrap_mode :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    IO CUInt

{- |
Gets the line wrapping for the view.
-}
textViewGetWrapMode ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> m Gtk.Enums.WrapMode
    {- ^ __Returns:__ the line wrap setting -}
textViewGetWrapMode textView = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    result <- gtk_text_view_get_wrap_mode textView'
    let result' = (toEnum . fromIntegral) result
    touchManagedPtr textView
    return result'

data TextViewGetWrapModeMethodInfo
instance (signature ~ (m Gtk.Enums.WrapMode), MonadIO m, IsTextView a) => O.MethodInfo TextViewGetWrapModeMethodInfo a signature where
    overloadedMethod _ = textViewGetWrapMode

-- method TextView::im_context_filter_keypress
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "EventKey"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the key event", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_im_context_filter_keypress" gtk_text_view_im_context_filter_keypress :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    Ptr Gdk.EventKey.EventKey ->            -- event : TInterface (Name {namespace = "Gdk", name = "EventKey"})
    IO CInt

{- |
Allow the 'GI.Gtk.Objects.TextView.TextView' input method to internally handle key press
and release events. If this function returns 'True', then no further
processing should be done for this key event. See
'GI.Gtk.Objects.IMContext.iMContextFilterKeypress'.

Note that you are expected to call this function from your handler
when overriding key event handling. This is needed in the case when
you need to insert your own key handling between the input method
and the default key event handling of the 'GI.Gtk.Objects.TextView.TextView'.


=== /C code/
>
>static gboolean
>gtk_foo_bar_key_press_event (GtkWidget   *widget,
>                             GdkEventKey *event)
>{
>  if ((key->keyval == GDK_KEY_Return || key->keyval == GDK_KEY_KP_Enter))
>    {
>      if (gtk_text_view_im_context_filter_keypress (GTK_TEXT_VIEW (view), event))
>        return TRUE;
>    }
>
>    // Do some stuff
>
>  return GTK_WIDGET_CLASS (gtk_foo_bar_parent_class)->key_press_event (widget, event);
>}

@since 2.22
-}
textViewImContextFilterKeypress ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> Gdk.EventKey.EventKey
    {- ^ /@event@/: the key event -}
    -> m Bool
    {- ^ __Returns:__ 'True' if the input method handled the key event. -}
textViewImContextFilterKeypress textView event = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    event' <- unsafeManagedPtrGetPtr event
    result <- gtk_text_view_im_context_filter_keypress textView' event'
    let result' = (/= 0) result
    touchManagedPtr textView
    touchManagedPtr event
    return result'

data TextViewImContextFilterKeypressMethodInfo
instance (signature ~ (Gdk.EventKey.EventKey -> m Bool), MonadIO m, IsTextView a) => O.MethodInfo TextViewImContextFilterKeypressMethodInfo a signature where
    overloadedMethod _ = textViewImContextFilterKeypress

-- method TextView::move_child
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "child", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "child widget already added to the text view", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "xpos", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "new X position in window coordinates", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ypos", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "new Y position in window coordinates", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_move_child" gtk_text_view_move_child :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    Ptr Gtk.Widget.Widget ->                -- child : TInterface (Name {namespace = "Gtk", name = "Widget"})
    Int32 ->                                -- xpos : TBasicType TInt
    Int32 ->                                -- ypos : TBasicType TInt
    IO ()

{- |
Updates the position of a child, as for 'GI.Gtk.Objects.TextView.textViewAddChildInWindow'.
-}
textViewMoveChild ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a, Gtk.Widget.IsWidget b) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> b
    {- ^ /@child@/: child widget already added to the text view -}
    -> Int32
    {- ^ /@xpos@/: new X position in window coordinates -}
    -> Int32
    {- ^ /@ypos@/: new Y position in window coordinates -}
    -> m ()
textViewMoveChild textView child xpos ypos = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    child' <- unsafeManagedPtrCastPtr child
    gtk_text_view_move_child textView' child' xpos ypos
    touchManagedPtr textView
    touchManagedPtr child
    return ()

data TextViewMoveChildMethodInfo
instance (signature ~ (b -> Int32 -> Int32 -> m ()), MonadIO m, IsTextView a, Gtk.Widget.IsWidget b) => O.MethodInfo TextViewMoveChildMethodInfo a signature where
    overloadedMethod _ = textViewMoveChild

-- method TextView::move_mark_onscreen
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mark", argType = TInterface (Name {namespace = "Gtk", name = "TextMark"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextMark", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_move_mark_onscreen" gtk_text_view_move_mark_onscreen :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    Ptr Gtk.TextMark.TextMark ->            -- mark : TInterface (Name {namespace = "Gtk", name = "TextMark"})
    IO CInt

{- |
Moves a mark within the buffer so that it\'s
located within the currently-visible text area.
-}
textViewMoveMarkOnscreen ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a, Gtk.TextMark.IsTextMark b) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> b
    {- ^ /@mark@/: a 'GI.Gtk.Objects.TextMark.TextMark' -}
    -> m Bool
    {- ^ __Returns:__ 'True' if the mark moved (wasn’t already onscreen) -}
textViewMoveMarkOnscreen textView mark = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    mark' <- unsafeManagedPtrCastPtr mark
    result <- gtk_text_view_move_mark_onscreen textView' mark'
    let result' = (/= 0) result
    touchManagedPtr textView
    touchManagedPtr mark
    return result'

data TextViewMoveMarkOnscreenMethodInfo
instance (signature ~ (b -> m Bool), MonadIO m, IsTextView a, Gtk.TextMark.IsTextMark b) => O.MethodInfo TextViewMoveMarkOnscreenMethodInfo a signature where
    overloadedMethod _ = textViewMoveMarkOnscreen

-- method TextView::move_visually
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TextIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextIter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "count", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "number of characters to move (negative moves left,\n   positive moves right)", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_move_visually" gtk_text_view_move_visually :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    Ptr Gtk.TextIter.TextIter ->            -- iter : TInterface (Name {namespace = "Gtk", name = "TextIter"})
    Int32 ->                                -- count : TBasicType TInt
    IO CInt

{- |
Move the iterator a given number of characters visually, treating
it as the strong cursor position. If /@count@/ is positive, then the
new strong cursor position will be /@count@/ positions to the right of
the old cursor position. If /@count@/ is negative then the new strong
cursor position will be /@count@/ positions to the left of the old
cursor position.

In the presence of bi-directional text, the correspondence
between logical and visual order will depend on the direction
of the current run, and there may be jumps when the cursor
is moved off of the end of a run.
-}
textViewMoveVisually ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> Gtk.TextIter.TextIter
    {- ^ /@iter@/: a 'GI.Gtk.Structs.TextIter.TextIter' -}
    -> Int32
    {- ^ /@count@/: number of characters to move (negative moves left,
   positive moves right) -}
    -> m Bool
    {- ^ __Returns:__ 'True' if /@iter@/ moved and is not on the end iterator -}
textViewMoveVisually textView iter count = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    iter' <- unsafeManagedPtrGetPtr iter
    result <- gtk_text_view_move_visually textView' iter' count
    let result' = (/= 0) result
    touchManagedPtr textView
    touchManagedPtr iter
    return result'

data TextViewMoveVisuallyMethodInfo
instance (signature ~ (Gtk.TextIter.TextIter -> Int32 -> m Bool), MonadIO m, IsTextView a) => O.MethodInfo TextViewMoveVisuallyMethodInfo a signature where
    overloadedMethod _ = textViewMoveVisually

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

foreign import ccall "gtk_text_view_place_cursor_onscreen" gtk_text_view_place_cursor_onscreen :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    IO CInt

{- |
Moves the cursor to the currently visible region of the
buffer, it it isn’t there already.
-}
textViewPlaceCursorOnscreen ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> m Bool
    {- ^ __Returns:__ 'True' if the cursor had to be moved. -}
textViewPlaceCursorOnscreen textView = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    result <- gtk_text_view_place_cursor_onscreen textView'
    let result' = (/= 0) result
    touchManagedPtr textView
    return result'

data TextViewPlaceCursorOnscreenMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsTextView a) => O.MethodInfo TextViewPlaceCursorOnscreenMethodInfo a signature where
    overloadedMethod _ = textViewPlaceCursorOnscreen

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

foreign import ccall "gtk_text_view_reset_cursor_blink" gtk_text_view_reset_cursor_blink :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    IO ()

{- |
Ensures that the cursor is shown (i.e. not in an \'off\' blink
interval) and resets the time that it will stay blinking (or
visible, in case blinking is disabled).

This function should be called in response to user input
(e.g. from derived classes that override the textview\'s
'GI.Gtk.Objects.Widget.Widget'::@/key-press-event/@ handler).

@since 3.20
-}
textViewResetCursorBlink ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> m ()
textViewResetCursorBlink textView = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    gtk_text_view_reset_cursor_blink textView'
    touchManagedPtr textView
    return ()

data TextViewResetCursorBlinkMethodInfo
instance (signature ~ (m ()), MonadIO m, IsTextView a) => O.MethodInfo TextViewResetCursorBlinkMethodInfo a signature where
    overloadedMethod _ = textViewResetCursorBlink

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

foreign import ccall "gtk_text_view_reset_im_context" gtk_text_view_reset_im_context :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    IO ()

{- |
Reset the input method context of the text view if needed.

This can be necessary in the case where modifying the buffer
would confuse on-going input method behavior.

@since 2.22
-}
textViewResetImContext ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> m ()
textViewResetImContext textView = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    gtk_text_view_reset_im_context textView'
    touchManagedPtr textView
    return ()

data TextViewResetImContextMethodInfo
instance (signature ~ (m ()), MonadIO m, IsTextView a) => O.MethodInfo TextViewResetImContextMethodInfo a signature where
    overloadedMethod _ = textViewResetImContext

-- method TextView::scroll_mark_onscreen
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mark", argType = TInterface (Name {namespace = "Gtk", name = "TextMark"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a mark in the buffer for @text_view", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_scroll_mark_onscreen" gtk_text_view_scroll_mark_onscreen :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    Ptr Gtk.TextMark.TextMark ->            -- mark : TInterface (Name {namespace = "Gtk", name = "TextMark"})
    IO ()

{- |
Scrolls /@textView@/ the minimum distance such that /@mark@/ is contained
within the visible area of the widget.
-}
textViewScrollMarkOnscreen ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a, Gtk.TextMark.IsTextMark b) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> b
    {- ^ /@mark@/: a mark in the buffer for /@textView@/ -}
    -> m ()
textViewScrollMarkOnscreen textView mark = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    mark' <- unsafeManagedPtrCastPtr mark
    gtk_text_view_scroll_mark_onscreen textView' mark'
    touchManagedPtr textView
    touchManagedPtr mark
    return ()

data TextViewScrollMarkOnscreenMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, IsTextView a, Gtk.TextMark.IsTextMark b) => O.MethodInfo TextViewScrollMarkOnscreenMethodInfo a signature where
    overloadedMethod _ = textViewScrollMarkOnscreen

-- method TextView::scroll_to_iter
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TextIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextIter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "within_margin", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "margin as a [0.0,0.5) fraction of screen size", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "use_align", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "whether to use alignment arguments (if %FALSE,\n   just get the mark onscreen)", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "xalign", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "horizontal alignment of mark within visible area", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "yalign", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "vertical alignment of mark within visible area", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_scroll_to_iter" gtk_text_view_scroll_to_iter :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    Ptr Gtk.TextIter.TextIter ->            -- iter : TInterface (Name {namespace = "Gtk", name = "TextIter"})
    CDouble ->                              -- within_margin : TBasicType TDouble
    CInt ->                                 -- use_align : TBasicType TBoolean
    CDouble ->                              -- xalign : TBasicType TDouble
    CDouble ->                              -- yalign : TBasicType TDouble
    IO CInt

{- |
Scrolls /@textView@/ so that /@iter@/ is on the screen in the position
indicated by /@xalign@/ and /@yalign@/. An alignment of 0.0 indicates
left or top, 1.0 indicates right or bottom, 0.5 means center.
If /@useAlign@/ is 'False', the text scrolls the minimal distance to
get the mark onscreen, possibly not scrolling at all. The effective
screen for purposes of this function is reduced by a margin of size
/@withinMargin@/.

Note that this function uses the currently-computed height of the
lines in the text buffer. Line heights are computed in an idle
handler; so this function may not have the desired effect if it’s
called before the height computations. To avoid oddness, consider
using 'GI.Gtk.Objects.TextView.textViewScrollToMark' which saves a point to be
scrolled to after line validation.
-}
textViewScrollToIter ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> Gtk.TextIter.TextIter
    {- ^ /@iter@/: a 'GI.Gtk.Structs.TextIter.TextIter' -}
    -> Double
    {- ^ /@withinMargin@/: margin as a [0.0,0.5) fraction of screen size -}
    -> Bool
    {- ^ /@useAlign@/: whether to use alignment arguments (if 'False',
   just get the mark onscreen) -}
    -> Double
    {- ^ /@xalign@/: horizontal alignment of mark within visible area -}
    -> Double
    {- ^ /@yalign@/: vertical alignment of mark within visible area -}
    -> m Bool
    {- ^ __Returns:__ 'True' if scrolling occurred -}
textViewScrollToIter textView iter withinMargin useAlign xalign yalign = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    iter' <- unsafeManagedPtrGetPtr iter
    let withinMargin' = realToFrac withinMargin
    let useAlign' = (fromIntegral . fromEnum) useAlign
    let xalign' = realToFrac xalign
    let yalign' = realToFrac yalign
    result <- gtk_text_view_scroll_to_iter textView' iter' withinMargin' useAlign' xalign' yalign'
    let result' = (/= 0) result
    touchManagedPtr textView
    touchManagedPtr iter
    return result'

data TextViewScrollToIterMethodInfo
instance (signature ~ (Gtk.TextIter.TextIter -> Double -> Bool -> Double -> Double -> m Bool), MonadIO m, IsTextView a) => O.MethodInfo TextViewScrollToIterMethodInfo a signature where
    overloadedMethod _ = textViewScrollToIter

-- method TextView::scroll_to_mark
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mark", argType = TInterface (Name {namespace = "Gtk", name = "TextMark"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextMark", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "within_margin", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "margin as a [0.0,0.5) fraction of screen size", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "use_align", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "whether to use alignment arguments (if %FALSE, just\n   get the mark onscreen)", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "xalign", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "horizontal alignment of mark within visible area", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "yalign", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "vertical alignment of mark within visible area", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_scroll_to_mark" gtk_text_view_scroll_to_mark :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    Ptr Gtk.TextMark.TextMark ->            -- mark : TInterface (Name {namespace = "Gtk", name = "TextMark"})
    CDouble ->                              -- within_margin : TBasicType TDouble
    CInt ->                                 -- use_align : TBasicType TBoolean
    CDouble ->                              -- xalign : TBasicType TDouble
    CDouble ->                              -- yalign : TBasicType TDouble
    IO ()

{- |
Scrolls /@textView@/ so that /@mark@/ is on the screen in the position
indicated by /@xalign@/ and /@yalign@/. An alignment of 0.0 indicates
left or top, 1.0 indicates right or bottom, 0.5 means center.
If /@useAlign@/ is 'False', the text scrolls the minimal distance to
get the mark onscreen, possibly not scrolling at all. The effective
screen for purposes of this function is reduced by a margin of size
/@withinMargin@/.
-}
textViewScrollToMark ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a, Gtk.TextMark.IsTextMark b) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> b
    {- ^ /@mark@/: a 'GI.Gtk.Objects.TextMark.TextMark' -}
    -> Double
    {- ^ /@withinMargin@/: margin as a [0.0,0.5) fraction of screen size -}
    -> Bool
    {- ^ /@useAlign@/: whether to use alignment arguments (if 'False', just
   get the mark onscreen) -}
    -> Double
    {- ^ /@xalign@/: horizontal alignment of mark within visible area -}
    -> Double
    {- ^ /@yalign@/: vertical alignment of mark within visible area -}
    -> m ()
textViewScrollToMark textView mark withinMargin useAlign xalign yalign = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    mark' <- unsafeManagedPtrCastPtr mark
    let withinMargin' = realToFrac withinMargin
    let useAlign' = (fromIntegral . fromEnum) useAlign
    let xalign' = realToFrac xalign
    let yalign' = realToFrac yalign
    gtk_text_view_scroll_to_mark textView' mark' withinMargin' useAlign' xalign' yalign'
    touchManagedPtr textView
    touchManagedPtr mark
    return ()

data TextViewScrollToMarkMethodInfo
instance (signature ~ (b -> Double -> Bool -> Double -> Double -> m ()), MonadIO m, IsTextView a, Gtk.TextMark.IsTextMark b) => O.MethodInfo TextViewScrollToMarkMethodInfo a signature where
    overloadedMethod _ = textViewScrollToMark

-- method TextView::set_accepts_tab
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "accepts_tab", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "%TRUE if pressing the Tab key should insert a tab\n   character, %FALSE, if pressing the Tab key should move the\n   keyboard focus.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_set_accepts_tab" gtk_text_view_set_accepts_tab :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    CInt ->                                 -- accepts_tab : TBasicType TBoolean
    IO ()

{- |
Sets the behavior of the text widget when the Tab key is pressed.
If /@acceptsTab@/ is 'True', a tab character is inserted. If /@acceptsTab@/
is 'False' the keyboard focus is moved to the next widget in the focus
chain.

@since 2.4
-}
textViewSetAcceptsTab ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: A 'GI.Gtk.Objects.TextView.TextView' -}
    -> Bool
    {- ^ /@acceptsTab@/: 'True' if pressing the Tab key should insert a tab
   character, 'False', if pressing the Tab key should move the
   keyboard focus. -}
    -> m ()
textViewSetAcceptsTab textView acceptsTab = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    let acceptsTab' = (fromIntegral . fromEnum) acceptsTab
    gtk_text_view_set_accepts_tab textView' acceptsTab'
    touchManagedPtr textView
    return ()

data TextViewSetAcceptsTabMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsTextView a) => O.MethodInfo TextViewSetAcceptsTabMethodInfo a signature where
    overloadedMethod _ = textViewSetAcceptsTab

-- method TextView::set_border_window_size
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "type", argType = TInterface (Name {namespace = "Gtk", name = "TextWindowType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "window to affect", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "size", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "width or height of the window", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_set_border_window_size" gtk_text_view_set_border_window_size :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    CUInt ->                                -- type : TInterface (Name {namespace = "Gtk", name = "TextWindowType"})
    Int32 ->                                -- size : TBasicType TInt
    IO ()

{- |
Sets the width of 'GI.Gtk.Enums.TextWindowTypeLeft' or 'GI.Gtk.Enums.TextWindowTypeRight',
or the height of 'GI.Gtk.Enums.TextWindowTypeTop' or 'GI.Gtk.Enums.TextWindowTypeBottom'.
Automatically destroys the corresponding window if the size is set
to 0, and creates the window if the size is set to non-zero.  This
function can only be used for the “border windows,” it doesn’t work
with @/GTK_TEXT_WINDOW_WIDGET/@, @/GTK_TEXT_WINDOW_TEXT/@, or
@/GTK_TEXT_WINDOW_PRIVATE/@.
-}
textViewSetBorderWindowSize ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> Gtk.Enums.TextWindowType
    {- ^ /@type@/: window to affect -}
    -> Int32
    {- ^ /@size@/: width or height of the window -}
    -> m ()
textViewSetBorderWindowSize textView type_ size = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    let type_' = (fromIntegral . fromEnum) type_
    gtk_text_view_set_border_window_size textView' type_' size
    touchManagedPtr textView
    return ()

data TextViewSetBorderWindowSizeMethodInfo
instance (signature ~ (Gtk.Enums.TextWindowType -> Int32 -> m ()), MonadIO m, IsTextView a) => O.MethodInfo TextViewSetBorderWindowSizeMethodInfo a signature where
    overloadedMethod _ = textViewSetBorderWindowSize

-- method TextView::set_bottom_margin
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bottom_margin", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "bottom margin in pixels", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_set_bottom_margin" gtk_text_view_set_bottom_margin :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    Int32 ->                                -- bottom_margin : TBasicType TInt
    IO ()

{- |
Sets the bottom margin for text in /@textView@/.

Note that this function is confusingly named.
In CSS terms, the value set here is padding.

@since 3.18
-}
textViewSetBottomMargin ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> Int32
    {- ^ /@bottomMargin@/: bottom margin in pixels -}
    -> m ()
textViewSetBottomMargin textView bottomMargin = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    gtk_text_view_set_bottom_margin textView' bottomMargin
    touchManagedPtr textView
    return ()

data TextViewSetBottomMarginMethodInfo
instance (signature ~ (Int32 -> m ()), MonadIO m, IsTextView a) => O.MethodInfo TextViewSetBottomMarginMethodInfo a signature where
    overloadedMethod _ = textViewSetBottomMargin

-- method TextView::set_buffer
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buffer", argType = TInterface (Name {namespace = "Gtk", name = "TextBuffer"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #GtkTextBuffer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_set_buffer" gtk_text_view_set_buffer :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    Ptr Gtk.TextBuffer.TextBuffer ->        -- buffer : TInterface (Name {namespace = "Gtk", name = "TextBuffer"})
    IO ()

{- |
Sets /@buffer@/ as the buffer being displayed by /@textView@/. The previous
buffer displayed by the text view is unreferenced, and a reference is
added to /@buffer@/. If you owned a reference to /@buffer@/ before passing it
to this function, you must remove that reference yourself; 'GI.Gtk.Objects.TextView.TextView'
will not “adopt” it.
-}
textViewSetBuffer ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a, Gtk.TextBuffer.IsTextBuffer b) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> Maybe (b)
    {- ^ /@buffer@/: a 'GI.Gtk.Objects.TextBuffer.TextBuffer' -}
    -> m ()
textViewSetBuffer textView buffer = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    maybeBuffer <- case buffer of
        Nothing -> return nullPtr
        Just jBuffer -> do
            jBuffer' <- unsafeManagedPtrCastPtr jBuffer
            return jBuffer'
    gtk_text_view_set_buffer textView' maybeBuffer
    touchManagedPtr textView
    whenJust buffer touchManagedPtr
    return ()

data TextViewSetBufferMethodInfo
instance (signature ~ (Maybe (b) -> m ()), MonadIO m, IsTextView a, Gtk.TextBuffer.IsTextBuffer b) => O.MethodInfo TextViewSetBufferMethodInfo a signature where
    overloadedMethod _ = textViewSetBuffer

-- method TextView::set_cursor_visible
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "setting", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "whether to show the insertion cursor", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_set_cursor_visible" gtk_text_view_set_cursor_visible :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    CInt ->                                 -- setting : TBasicType TBoolean
    IO ()

{- |
Toggles whether the insertion point should be displayed. A buffer with
no editable text probably shouldn’t have a visible cursor, so you may
want to turn the cursor off.

Note that this property may be overridden by the
'GI.Gtk.Objects.Settings.Settings':@/gtk-keynave-use-caret/@ settings.
-}
textViewSetCursorVisible ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> Bool
    {- ^ /@setting@/: whether to show the insertion cursor -}
    -> m ()
textViewSetCursorVisible textView setting = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    let setting' = (fromIntegral . fromEnum) setting
    gtk_text_view_set_cursor_visible textView' setting'
    touchManagedPtr textView
    return ()

data TextViewSetCursorVisibleMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsTextView a) => O.MethodInfo TextViewSetCursorVisibleMethodInfo a signature where
    overloadedMethod _ = textViewSetCursorVisible

-- method TextView::set_editable
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "setting", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "whether it\8217s editable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_set_editable" gtk_text_view_set_editable :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    CInt ->                                 -- setting : TBasicType TBoolean
    IO ()

{- |
Sets the default editability of the 'GI.Gtk.Objects.TextView.TextView'. You can override
this default setting with tags in the buffer, using the “editable”
attribute of tags.
-}
textViewSetEditable ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> Bool
    {- ^ /@setting@/: whether it’s editable -}
    -> m ()
textViewSetEditable textView setting = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    let setting' = (fromIntegral . fromEnum) setting
    gtk_text_view_set_editable textView' setting'
    touchManagedPtr textView
    return ()

data TextViewSetEditableMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsTextView a) => O.MethodInfo TextViewSetEditableMethodInfo a signature where
    overloadedMethod _ = textViewSetEditable

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

foreign import ccall "gtk_text_view_set_indent" gtk_text_view_set_indent :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    Int32 ->                                -- indent : TBasicType TInt
    IO ()

{- |
Sets the default indentation for paragraphs in /@textView@/.
Tags in the buffer may override the default.
-}
textViewSetIndent ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> Int32
    {- ^ /@indent@/: indentation in pixels -}
    -> m ()
textViewSetIndent textView indent = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    gtk_text_view_set_indent textView' indent
    touchManagedPtr textView
    return ()

data TextViewSetIndentMethodInfo
instance (signature ~ (Int32 -> m ()), MonadIO m, IsTextView a) => O.MethodInfo TextViewSetIndentMethodInfo a signature where
    overloadedMethod _ = textViewSetIndent

-- method TextView::set_input_hints
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hints", argType = TInterface (Name {namespace = "Gtk", name = "InputHints"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the hints", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_set_input_hints" gtk_text_view_set_input_hints :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    CUInt ->                                -- hints : TInterface (Name {namespace = "Gtk", name = "InputHints"})
    IO ()

{- |
Sets the 'GI.Gtk.Objects.TextView.TextView':@/input-hints/@ property, which
allows input methods to fine-tune their behaviour.

@since 3.6
-}
textViewSetInputHints ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> [Gtk.Flags.InputHints]
    {- ^ /@hints@/: the hints -}
    -> m ()
textViewSetInputHints textView hints = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    let hints' = gflagsToWord hints
    gtk_text_view_set_input_hints textView' hints'
    touchManagedPtr textView
    return ()

data TextViewSetInputHintsMethodInfo
instance (signature ~ ([Gtk.Flags.InputHints] -> m ()), MonadIO m, IsTextView a) => O.MethodInfo TextViewSetInputHintsMethodInfo a signature where
    overloadedMethod _ = textViewSetInputHints

-- method TextView::set_input_purpose
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "purpose", argType = TInterface (Name {namespace = "Gtk", name = "InputPurpose"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the purpose", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_set_input_purpose" gtk_text_view_set_input_purpose :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    CUInt ->                                -- purpose : TInterface (Name {namespace = "Gtk", name = "InputPurpose"})
    IO ()

{- |
Sets the 'GI.Gtk.Objects.TextView.TextView':@/input-purpose/@ property which
can be used by on-screen keyboards and other input
methods to adjust their behaviour.

@since 3.6
-}
textViewSetInputPurpose ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> Gtk.Enums.InputPurpose
    {- ^ /@purpose@/: the purpose -}
    -> m ()
textViewSetInputPurpose textView purpose = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    let purpose' = (fromIntegral . fromEnum) purpose
    gtk_text_view_set_input_purpose textView' purpose'
    touchManagedPtr textView
    return ()

data TextViewSetInputPurposeMethodInfo
instance (signature ~ (Gtk.Enums.InputPurpose -> m ()), MonadIO m, IsTextView a) => O.MethodInfo TextViewSetInputPurposeMethodInfo a signature where
    overloadedMethod _ = textViewSetInputPurpose

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

foreign import ccall "gtk_text_view_set_justification" gtk_text_view_set_justification :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    CUInt ->                                -- justification : TInterface (Name {namespace = "Gtk", name = "Justification"})
    IO ()

{- |
Sets the default justification of text in /@textView@/.
Tags in the view’s buffer may override the default.
-}
textViewSetJustification ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> Gtk.Enums.Justification
    {- ^ /@justification@/: justification -}
    -> m ()
textViewSetJustification textView justification = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    let justification' = (fromIntegral . fromEnum) justification
    gtk_text_view_set_justification textView' justification'
    touchManagedPtr textView
    return ()

data TextViewSetJustificationMethodInfo
instance (signature ~ (Gtk.Enums.Justification -> m ()), MonadIO m, IsTextView a) => O.MethodInfo TextViewSetJustificationMethodInfo a signature where
    overloadedMethod _ = textViewSetJustification

-- method TextView::set_left_margin
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "left_margin", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "left margin in pixels", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_set_left_margin" gtk_text_view_set_left_margin :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    Int32 ->                                -- left_margin : TBasicType TInt
    IO ()

{- |
Sets the default left margin for text in /@textView@/.
Tags in the buffer may override the default.

Note that this function is confusingly named.
In CSS terms, the value set here is padding.
-}
textViewSetLeftMargin ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> Int32
    {- ^ /@leftMargin@/: left margin in pixels -}
    -> m ()
textViewSetLeftMargin textView leftMargin = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    gtk_text_view_set_left_margin textView' leftMargin
    touchManagedPtr textView
    return ()

data TextViewSetLeftMarginMethodInfo
instance (signature ~ (Int32 -> m ()), MonadIO m, IsTextView a) => O.MethodInfo TextViewSetLeftMarginMethodInfo a signature where
    overloadedMethod _ = textViewSetLeftMargin

-- method TextView::set_monospace
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "monospace", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "%TRUE to request monospace styling", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_set_monospace" gtk_text_view_set_monospace :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    CInt ->                                 -- monospace : TBasicType TBoolean
    IO ()

{- |
Sets the 'GI.Gtk.Objects.TextView.TextView':@/monospace/@ property, which
indicates that the text view should use monospace
fonts.

@since 3.16
-}
textViewSetMonospace ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> Bool
    {- ^ /@monospace@/: 'True' to request monospace styling -}
    -> m ()
textViewSetMonospace textView monospace = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    let monospace' = (fromIntegral . fromEnum) monospace
    gtk_text_view_set_monospace textView' monospace'
    touchManagedPtr textView
    return ()

data TextViewSetMonospaceMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsTextView a) => O.MethodInfo TextViewSetMonospaceMethodInfo a signature where
    overloadedMethod _ = textViewSetMonospace

-- method TextView::set_overwrite
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "overwrite", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "%TRUE to turn on overwrite mode, %FALSE to turn it off", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_set_overwrite" gtk_text_view_set_overwrite :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    CInt ->                                 -- overwrite : TBasicType TBoolean
    IO ()

{- |
Changes the 'GI.Gtk.Objects.TextView.TextView' overwrite mode.

@since 2.4
-}
textViewSetOverwrite ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> Bool
    {- ^ /@overwrite@/: 'True' to turn on overwrite mode, 'False' to turn it off -}
    -> m ()
textViewSetOverwrite textView overwrite = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    let overwrite' = (fromIntegral . fromEnum) overwrite
    gtk_text_view_set_overwrite textView' overwrite'
    touchManagedPtr textView
    return ()

data TextViewSetOverwriteMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsTextView a) => O.MethodInfo TextViewSetOverwriteMethodInfo a signature where
    overloadedMethod _ = textViewSetOverwrite

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

foreign import ccall "gtk_text_view_set_pixels_above_lines" gtk_text_view_set_pixels_above_lines :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    Int32 ->                                -- pixels_above_lines : TBasicType TInt
    IO ()

{- |
Sets the default number of blank pixels above paragraphs in /@textView@/.
Tags in the buffer for /@textView@/ may override the defaults.
-}
textViewSetPixelsAboveLines ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> Int32
    {- ^ /@pixelsAboveLines@/: pixels above paragraphs -}
    -> m ()
textViewSetPixelsAboveLines textView pixelsAboveLines = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    gtk_text_view_set_pixels_above_lines textView' pixelsAboveLines
    touchManagedPtr textView
    return ()

data TextViewSetPixelsAboveLinesMethodInfo
instance (signature ~ (Int32 -> m ()), MonadIO m, IsTextView a) => O.MethodInfo TextViewSetPixelsAboveLinesMethodInfo a signature where
    overloadedMethod _ = textViewSetPixelsAboveLines

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

foreign import ccall "gtk_text_view_set_pixels_below_lines" gtk_text_view_set_pixels_below_lines :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    Int32 ->                                -- pixels_below_lines : TBasicType TInt
    IO ()

{- |
Sets the default number of pixels of blank space
to put below paragraphs in /@textView@/. May be overridden
by tags applied to /@textView@/’s buffer.
-}
textViewSetPixelsBelowLines ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> Int32
    {- ^ /@pixelsBelowLines@/: pixels below paragraphs -}
    -> m ()
textViewSetPixelsBelowLines textView pixelsBelowLines = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    gtk_text_view_set_pixels_below_lines textView' pixelsBelowLines
    touchManagedPtr textView
    return ()

data TextViewSetPixelsBelowLinesMethodInfo
instance (signature ~ (Int32 -> m ()), MonadIO m, IsTextView a) => O.MethodInfo TextViewSetPixelsBelowLinesMethodInfo a signature where
    overloadedMethod _ = textViewSetPixelsBelowLines

-- method TextView::set_pixels_inside_wrap
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pixels_inside_wrap", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "default number of pixels between wrapped lines", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_set_pixels_inside_wrap" gtk_text_view_set_pixels_inside_wrap :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    Int32 ->                                -- pixels_inside_wrap : TBasicType TInt
    IO ()

{- |
Sets the default number of pixels of blank space to leave between
display\/wrapped lines within a paragraph. May be overridden by
tags in /@textView@/’s buffer.
-}
textViewSetPixelsInsideWrap ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> Int32
    {- ^ /@pixelsInsideWrap@/: default number of pixels between wrapped lines -}
    -> m ()
textViewSetPixelsInsideWrap textView pixelsInsideWrap = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    gtk_text_view_set_pixels_inside_wrap textView' pixelsInsideWrap
    touchManagedPtr textView
    return ()

data TextViewSetPixelsInsideWrapMethodInfo
instance (signature ~ (Int32 -> m ()), MonadIO m, IsTextView a) => O.MethodInfo TextViewSetPixelsInsideWrapMethodInfo a signature where
    overloadedMethod _ = textViewSetPixelsInsideWrap

-- method TextView::set_right_margin
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "right_margin", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "right margin in pixels", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_set_right_margin" gtk_text_view_set_right_margin :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    Int32 ->                                -- right_margin : TBasicType TInt
    IO ()

{- |
Sets the default right margin for text in the text view.
Tags in the buffer may override the default.

Note that this function is confusingly named.
In CSS terms, the value set here is padding.
-}
textViewSetRightMargin ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> Int32
    {- ^ /@rightMargin@/: right margin in pixels -}
    -> m ()
textViewSetRightMargin textView rightMargin = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    gtk_text_view_set_right_margin textView' rightMargin
    touchManagedPtr textView
    return ()

data TextViewSetRightMarginMethodInfo
instance (signature ~ (Int32 -> m ()), MonadIO m, IsTextView a) => O.MethodInfo TextViewSetRightMarginMethodInfo a signature where
    overloadedMethod _ = textViewSetRightMargin

-- method TextView::set_tabs
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tabs", argType = TInterface (Name {namespace = "Pango", name = "TabArray"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "tabs as a #PangoTabArray", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_set_tabs" gtk_text_view_set_tabs :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    Ptr Pango.TabArray.TabArray ->          -- tabs : TInterface (Name {namespace = "Pango", name = "TabArray"})
    IO ()

{- |
Sets the default tab stops for paragraphs in /@textView@/.
Tags in the buffer may override the default.
-}
textViewSetTabs ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> Pango.TabArray.TabArray
    {- ^ /@tabs@/: tabs as a 'GI.Pango.Structs.TabArray.TabArray' -}
    -> m ()
textViewSetTabs textView tabs = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    tabs' <- unsafeManagedPtrGetPtr tabs
    gtk_text_view_set_tabs textView' tabs'
    touchManagedPtr textView
    touchManagedPtr tabs
    return ()

data TextViewSetTabsMethodInfo
instance (signature ~ (Pango.TabArray.TabArray -> m ()), MonadIO m, IsTextView a) => O.MethodInfo TextViewSetTabsMethodInfo a signature where
    overloadedMethod _ = textViewSetTabs

-- method TextView::set_top_margin
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "top_margin", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "top margin in pixels", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_set_top_margin" gtk_text_view_set_top_margin :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    Int32 ->                                -- top_margin : TBasicType TInt
    IO ()

{- |
Sets the top margin for text in /@textView@/.

Note that this function is confusingly named.
In CSS terms, the value set here is padding.

@since 3.18
-}
textViewSetTopMargin ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> Int32
    {- ^ /@topMargin@/: top margin in pixels -}
    -> m ()
textViewSetTopMargin textView topMargin = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    gtk_text_view_set_top_margin textView' topMargin
    touchManagedPtr textView
    return ()

data TextViewSetTopMarginMethodInfo
instance (signature ~ (Int32 -> m ()), MonadIO m, IsTextView a) => O.MethodInfo TextViewSetTopMarginMethodInfo a signature where
    overloadedMethod _ = textViewSetTopMargin

-- method TextView::set_wrap_mode
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "wrap_mode", argType = TInterface (Name {namespace = "Gtk", name = "WrapMode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkWrapMode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_set_wrap_mode" gtk_text_view_set_wrap_mode :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    CUInt ->                                -- wrap_mode : TInterface (Name {namespace = "Gtk", name = "WrapMode"})
    IO ()

{- |
Sets the line wrapping for the view.
-}
textViewSetWrapMode ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> Gtk.Enums.WrapMode
    {- ^ /@wrapMode@/: a 'GI.Gtk.Enums.WrapMode' -}
    -> m ()
textViewSetWrapMode textView wrapMode = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    let wrapMode' = (fromIntegral . fromEnum) wrapMode
    gtk_text_view_set_wrap_mode textView' wrapMode'
    touchManagedPtr textView
    return ()

data TextViewSetWrapModeMethodInfo
instance (signature ~ (Gtk.Enums.WrapMode -> m ()), MonadIO m, IsTextView a) => O.MethodInfo TextViewSetWrapModeMethodInfo a signature where
    overloadedMethod _ = textViewSetWrapMode

-- method TextView::starts_display_line
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TextIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextIter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_starts_display_line" gtk_text_view_starts_display_line :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    Ptr Gtk.TextIter.TextIter ->            -- iter : TInterface (Name {namespace = "Gtk", name = "TextIter"})
    IO CInt

{- |
Determines whether /@iter@/ is at the start of a display line.
See 'GI.Gtk.Objects.TextView.textViewForwardDisplayLine' for an explanation of
display lines vs. paragraphs.
-}
textViewStartsDisplayLine ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> Gtk.TextIter.TextIter
    {- ^ /@iter@/: a 'GI.Gtk.Structs.TextIter.TextIter' -}
    -> m Bool
    {- ^ __Returns:__ 'True' if /@iter@/ begins a wrapped line -}
textViewStartsDisplayLine textView iter = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    iter' <- unsafeManagedPtrGetPtr iter
    result <- gtk_text_view_starts_display_line textView' iter'
    let result' = (/= 0) result
    touchManagedPtr textView
    touchManagedPtr iter
    return result'

data TextViewStartsDisplayLineMethodInfo
instance (signature ~ (Gtk.TextIter.TextIter -> m Bool), MonadIO m, IsTextView a) => O.MethodInfo TextViewStartsDisplayLineMethodInfo a signature where
    overloadedMethod _ = textViewStartsDisplayLine

-- method TextView::window_to_buffer_coords
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "text_view", argType = TInterface (Name {namespace = "Gtk", name = "TextView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "win", argType = TInterface (Name {namespace = "Gtk", name = "TextWindowType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTextWindowType except #GTK_TEXT_WINDOW_PRIVATE", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "window_x", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "window x coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "window_y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "window y coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buffer_x", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "buffer x coordinate return location or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "buffer_y", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "buffer y coordinate return location or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_view_window_to_buffer_coords" gtk_text_view_window_to_buffer_coords :: 
    Ptr TextView ->                         -- text_view : TInterface (Name {namespace = "Gtk", name = "TextView"})
    CUInt ->                                -- win : TInterface (Name {namespace = "Gtk", name = "TextWindowType"})
    Int32 ->                                -- window_x : TBasicType TInt
    Int32 ->                                -- window_y : TBasicType TInt
    Ptr Int32 ->                            -- buffer_x : TBasicType TInt
    Ptr Int32 ->                            -- buffer_y : TBasicType TInt
    IO ()

{- |
Converts coordinates on the window identified by /@win@/ to buffer
coordinates, storing the result in (/@bufferX@/,/@bufferY@/).

Note that you can’t convert coordinates for a nonexisting window (see
'GI.Gtk.Objects.TextView.textViewSetBorderWindowSize').
-}
textViewWindowToBufferCoords ::
    (B.CallStack.HasCallStack, MonadIO m, IsTextView a) =>
    a
    {- ^ /@textView@/: a 'GI.Gtk.Objects.TextView.TextView' -}
    -> Gtk.Enums.TextWindowType
    {- ^ /@win@/: a 'GI.Gtk.Enums.TextWindowType' except @/GTK_TEXT_WINDOW_PRIVATE/@ -}
    -> Int32
    {- ^ /@windowX@/: window x coordinate -}
    -> Int32
    {- ^ /@windowY@/: window y coordinate -}
    -> m (Int32,Int32)
textViewWindowToBufferCoords textView win windowX windowY = liftIO $ do
    textView' <- unsafeManagedPtrCastPtr textView
    let win' = (fromIntegral . fromEnum) win
    bufferX <- allocMem :: IO (Ptr Int32)
    bufferY <- allocMem :: IO (Ptr Int32)
    gtk_text_view_window_to_buffer_coords textView' win' windowX windowY bufferX bufferY
    bufferX' <- peek bufferX
    bufferY' <- peek bufferY
    touchManagedPtr textView
    freeMem bufferX
    freeMem bufferY
    return (bufferX', bufferY')

data TextViewWindowToBufferCoordsMethodInfo
instance (signature ~ (Gtk.Enums.TextWindowType -> Int32 -> Int32 -> m (Int32,Int32)), MonadIO m, IsTextView a) => O.MethodInfo TextViewWindowToBufferCoordsMethodInfo a signature where
    overloadedMethod _ = textViewWindowToBufferCoords