{- |
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.
-}

module GI.Gtk.Structs.TextIter
    ( 

-- * Exported types
    TextIter(..)                            ,
    noTextIter                              ,


 -- * Methods
-- ** textIterAssign
    textIterAssign                          ,


-- ** textIterBackwardChar
    textIterBackwardChar                    ,


-- ** textIterBackwardChars
    textIterBackwardChars                   ,


-- ** textIterBackwardCursorPosition
    textIterBackwardCursorPosition          ,


-- ** textIterBackwardCursorPositions
    textIterBackwardCursorPositions         ,


-- ** textIterBackwardFindChar
    textIterBackwardFindChar                ,


-- ** textIterBackwardLine
    textIterBackwardLine                    ,


-- ** textIterBackwardLines
    textIterBackwardLines                   ,


-- ** textIterBackwardSearch
    textIterBackwardSearch                  ,


-- ** textIterBackwardSentenceStart
    textIterBackwardSentenceStart           ,


-- ** textIterBackwardSentenceStarts
    textIterBackwardSentenceStarts          ,


-- ** textIterBackwardToTagToggle
    textIterBackwardToTagToggle             ,


-- ** textIterBackwardVisibleCursorPosition
    textIterBackwardVisibleCursorPosition   ,


-- ** textIterBackwardVisibleCursorPositions
    textIterBackwardVisibleCursorPositions  ,


-- ** textIterBackwardVisibleLine
    textIterBackwardVisibleLine             ,


-- ** textIterBackwardVisibleLines
    textIterBackwardVisibleLines            ,


-- ** textIterBackwardVisibleWordStart
    textIterBackwardVisibleWordStart        ,


-- ** textIterBackwardVisibleWordStarts
    textIterBackwardVisibleWordStarts       ,


-- ** textIterBackwardWordStart
    textIterBackwardWordStart               ,


-- ** textIterBackwardWordStarts
    textIterBackwardWordStarts              ,


-- ** textIterBeginsTag
    textIterBeginsTag                       ,


-- ** textIterCanInsert
    textIterCanInsert                       ,


-- ** textIterCompare
    textIterCompare                         ,


-- ** textIterCopy
    textIterCopy                            ,


-- ** textIterEditable
    textIterEditable                        ,


-- ** textIterEndsLine
    textIterEndsLine                        ,


-- ** textIterEndsSentence
    textIterEndsSentence                    ,


-- ** textIterEndsTag
    textIterEndsTag                         ,


-- ** textIterEndsWord
    textIterEndsWord                        ,


-- ** textIterEqual
    textIterEqual                           ,


-- ** textIterForwardChar
    textIterForwardChar                     ,


-- ** textIterForwardChars
    textIterForwardChars                    ,


-- ** textIterForwardCursorPosition
    textIterForwardCursorPosition           ,


-- ** textIterForwardCursorPositions
    textIterForwardCursorPositions          ,


-- ** textIterForwardFindChar
    textIterForwardFindChar                 ,


-- ** textIterForwardLine
    textIterForwardLine                     ,


-- ** textIterForwardLines
    textIterForwardLines                    ,


-- ** textIterForwardSearch
    textIterForwardSearch                   ,


-- ** textIterForwardSentenceEnd
    textIterForwardSentenceEnd              ,


-- ** textIterForwardSentenceEnds
    textIterForwardSentenceEnds             ,


-- ** textIterForwardToEnd
    textIterForwardToEnd                    ,


-- ** textIterForwardToLineEnd
    textIterForwardToLineEnd                ,


-- ** textIterForwardToTagToggle
    textIterForwardToTagToggle              ,


-- ** textIterForwardVisibleCursorPosition
    textIterForwardVisibleCursorPosition    ,


-- ** textIterForwardVisibleCursorPositions
    textIterForwardVisibleCursorPositions   ,


-- ** textIterForwardVisibleLine
    textIterForwardVisibleLine              ,


-- ** textIterForwardVisibleLines
    textIterForwardVisibleLines             ,


-- ** textIterForwardVisibleWordEnd
    textIterForwardVisibleWordEnd           ,


-- ** textIterForwardVisibleWordEnds
    textIterForwardVisibleWordEnds          ,


-- ** textIterForwardWordEnd
    textIterForwardWordEnd                  ,


-- ** textIterForwardWordEnds
    textIterForwardWordEnds                 ,


-- ** textIterFree
    textIterFree                            ,


-- ** textIterGetAttributes
    textIterGetAttributes                   ,


-- ** textIterGetBuffer
    textIterGetBuffer                       ,


-- ** textIterGetBytesInLine
    textIterGetBytesInLine                  ,


-- ** textIterGetChar
    textIterGetChar                         ,


-- ** textIterGetCharsInLine
    textIterGetCharsInLine                  ,


-- ** textIterGetChildAnchor
    textIterGetChildAnchor                  ,


-- ** textIterGetLanguage
    textIterGetLanguage                     ,


-- ** textIterGetLine
    textIterGetLine                         ,


-- ** textIterGetLineIndex
    textIterGetLineIndex                    ,


-- ** textIterGetLineOffset
    textIterGetLineOffset                   ,


-- ** textIterGetMarks
    textIterGetMarks                        ,


-- ** textIterGetOffset
    textIterGetOffset                       ,


-- ** textIterGetPixbuf
    textIterGetPixbuf                       ,


-- ** textIterGetSlice
    textIterGetSlice                        ,


-- ** textIterGetTags
    textIterGetTags                         ,


-- ** textIterGetText
    textIterGetText                         ,


-- ** textIterGetToggledTags
    textIterGetToggledTags                  ,


-- ** textIterGetVisibleLineIndex
    textIterGetVisibleLineIndex             ,


-- ** textIterGetVisibleLineOffset
    textIterGetVisibleLineOffset            ,


-- ** textIterGetVisibleSlice
    textIterGetVisibleSlice                 ,


-- ** textIterGetVisibleText
    textIterGetVisibleText                  ,


-- ** textIterHasTag
    textIterHasTag                          ,


-- ** textIterInRange
    textIterInRange                         ,


-- ** textIterInsideSentence
    textIterInsideSentence                  ,


-- ** textIterInsideWord
    textIterInsideWord                      ,


-- ** textIterIsCursorPosition
    textIterIsCursorPosition                ,


-- ** textIterIsEnd
    textIterIsEnd                           ,


-- ** textIterIsStart
    textIterIsStart                         ,


-- ** textIterOrder
    textIterOrder                           ,


-- ** textIterSetLine
    textIterSetLine                         ,


-- ** textIterSetLineIndex
    textIterSetLineIndex                    ,


-- ** textIterSetLineOffset
    textIterSetLineOffset                   ,


-- ** textIterSetOffset
    textIterSetOffset                       ,


-- ** textIterSetVisibleLineIndex
    textIterSetVisibleLineIndex             ,


-- ** textIterSetVisibleLineOffset
    textIterSetVisibleLineOffset            ,


-- ** textIterStartsLine
    textIterStartsLine                      ,


-- ** textIterStartsSentence
    textIterStartsSentence                  ,


-- ** textIterStartsWord
    textIterStartsWord                      ,


-- ** textIterTogglesTag
    textIterTogglesTag                      ,




    ) where

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

import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map

import GI.Gtk.Types
import GI.Gtk.Callbacks
import qualified GI.GdkPixbuf as GdkPixbuf
import qualified GI.Pango as Pango

newtype TextIter = TextIter (ForeignPtr TextIter)
foreign import ccall "gtk_text_iter_get_type" c_gtk_text_iter_get_type :: 
    IO GType

instance BoxedObject TextIter where
    boxedType _ = c_gtk_text_iter_get_type

noTextIter :: Maybe TextIter
noTextIter = Nothing

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

foreign import ccall "gtk_text_iter_assign" gtk_text_iter_assign :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Ptr TextIter ->                         -- other : TInterface "Gtk" "TextIter"
    IO ()


textIterAssign ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    TextIter ->                             -- other
    m ()
textIterAssign _obj other = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    let other' = unsafeManagedPtrGetPtr other
    gtk_text_iter_assign _obj' other'
    touchManagedPtr _obj
    touchManagedPtr other
    return ()

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

foreign import ccall "gtk_text_iter_backward_char" gtk_text_iter_backward_char :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO CInt


textIterBackwardChar ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Bool
textIterBackwardChar _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_backward_char _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_backward_chars" gtk_text_iter_backward_chars :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Int32 ->                                -- count : TBasicType TInt32
    IO CInt


textIterBackwardChars ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    Int32 ->                                -- count
    m Bool
textIterBackwardChars _obj count = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_backward_chars _obj' count
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_backward_cursor_position" gtk_text_iter_backward_cursor_position :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO CInt


textIterBackwardCursorPosition ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Bool
textIterBackwardCursorPosition _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_backward_cursor_position _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_backward_cursor_positions" gtk_text_iter_backward_cursor_positions :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Int32 ->                                -- count : TBasicType TInt32
    IO CInt


textIterBackwardCursorPositions ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    Int32 ->                                -- count
    m Bool
textIterBackwardCursorPositions _obj count = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_backward_cursor_positions _obj' count
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method TextIter::backward_find_char
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TextIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pred", argType = TInterface "Gtk" "TextCharPredicate", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeCall, argClosure = 2, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "limit", argType = TInterface "Gtk" "TextIter", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TextIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pred", argType = TInterface "Gtk" "TextCharPredicate", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeCall, argClosure = 2, argDestroy = -1, transfer = TransferNothing},Arg {argName = "limit", argType = TInterface "Gtk" "TextIter", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_iter_backward_find_char" gtk_text_iter_backward_find_char :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    FunPtr TextCharPredicateC ->            -- pred : TInterface "Gtk" "TextCharPredicate"
    Ptr () ->                               -- user_data : TBasicType TVoid
    Ptr TextIter ->                         -- limit : TInterface "Gtk" "TextIter"
    IO CInt


textIterBackwardFindChar ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    TextCharPredicate ->                    -- pred
    Maybe (TextIter) ->                     -- limit
    m Bool
textIterBackwardFindChar _obj pred limit = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    pred' <- mkTextCharPredicate (textCharPredicateWrapper Nothing pred)
    maybeLimit <- case limit of
        Nothing -> return nullPtr
        Just jLimit -> do
            let jLimit' = unsafeManagedPtrGetPtr jLimit
            return jLimit'
    let user_data = nullPtr
    result <- gtk_text_iter_backward_find_char _obj' pred' user_data maybeLimit
    let result' = (/= 0) result
    safeFreeFunPtr $ castFunPtrToPtr pred'
    touchManagedPtr _obj
    whenJust limit touchManagedPtr
    return result'

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

foreign import ccall "gtk_text_iter_backward_line" gtk_text_iter_backward_line :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO CInt


textIterBackwardLine ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Bool
textIterBackwardLine _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_backward_line _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_backward_lines" gtk_text_iter_backward_lines :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Int32 ->                                -- count : TBasicType TInt32
    IO CInt


textIterBackwardLines ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    Int32 ->                                -- count
    m Bool
textIterBackwardLines _obj count = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_backward_lines _obj' count
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method TextIter::backward_search
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TextIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "Gtk" "TextSearchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "match_start", argType = TInterface "Gtk" "TextIter", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "match_end", argType = TInterface "Gtk" "TextIter", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "limit", argType = TInterface "Gtk" "TextIter", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TextIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "Gtk" "TextSearchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "limit", argType = TInterface "Gtk" "TextIter", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_iter_backward_search" gtk_text_iter_backward_search :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    CString ->                              -- str : TBasicType TUTF8
    CUInt ->                                -- flags : TInterface "Gtk" "TextSearchFlags"
    Ptr TextIter ->                         -- match_start : TInterface "Gtk" "TextIter"
    Ptr TextIter ->                         -- match_end : TInterface "Gtk" "TextIter"
    Ptr TextIter ->                         -- limit : TInterface "Gtk" "TextIter"
    IO CInt


textIterBackwardSearch ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    T.Text ->                               -- str
    [TextSearchFlags] ->                    -- flags
    Maybe (TextIter) ->                     -- limit
    m (Bool,TextIter,TextIter)
textIterBackwardSearch _obj str flags limit = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    str' <- textToCString str
    let flags' = gflagsToWord flags
    match_start <- callocBoxedBytes 80 :: IO (Ptr TextIter)
    match_end <- callocBoxedBytes 80 :: IO (Ptr TextIter)
    maybeLimit <- case limit of
        Nothing -> return nullPtr
        Just jLimit -> do
            let jLimit' = unsafeManagedPtrGetPtr jLimit
            return jLimit'
    result <- gtk_text_iter_backward_search _obj' str' flags' match_start match_end maybeLimit
    let result' = (/= 0) result
    match_start' <- (wrapBoxed TextIter) match_start
    match_end' <- (wrapBoxed TextIter) match_end
    touchManagedPtr _obj
    whenJust limit touchManagedPtr
    freeMem str'
    return (result', match_start', match_end')

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

foreign import ccall "gtk_text_iter_backward_sentence_start" gtk_text_iter_backward_sentence_start :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO CInt


textIterBackwardSentenceStart ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Bool
textIterBackwardSentenceStart _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_backward_sentence_start _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_backward_sentence_starts" gtk_text_iter_backward_sentence_starts :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Int32 ->                                -- count : TBasicType TInt32
    IO CInt


textIterBackwardSentenceStarts ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    Int32 ->                                -- count
    m Bool
textIterBackwardSentenceStarts _obj count = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_backward_sentence_starts _obj' count
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_backward_to_tag_toggle" gtk_text_iter_backward_to_tag_toggle :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Ptr TextTag ->                          -- tag : TInterface "Gtk" "TextTag"
    IO CInt


textIterBackwardToTagToggle ::
    (MonadIO m, TextTagK a) =>
    TextIter ->                             -- _obj
    Maybe (a) ->                            -- tag
    m Bool
textIterBackwardToTagToggle _obj tag = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    maybeTag <- case tag of
        Nothing -> return nullPtr
        Just jTag -> do
            let jTag' = unsafeManagedPtrCastPtr jTag
            return jTag'
    result <- gtk_text_iter_backward_to_tag_toggle _obj' maybeTag
    let result' = (/= 0) result
    touchManagedPtr _obj
    whenJust tag touchManagedPtr
    return result'

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

foreign import ccall "gtk_text_iter_backward_visible_cursor_position" gtk_text_iter_backward_visible_cursor_position :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO CInt


textIterBackwardVisibleCursorPosition ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Bool
textIterBackwardVisibleCursorPosition _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_backward_visible_cursor_position _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_backward_visible_cursor_positions" gtk_text_iter_backward_visible_cursor_positions :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Int32 ->                                -- count : TBasicType TInt32
    IO CInt


textIterBackwardVisibleCursorPositions ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    Int32 ->                                -- count
    m Bool
textIterBackwardVisibleCursorPositions _obj count = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_backward_visible_cursor_positions _obj' count
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_backward_visible_line" gtk_text_iter_backward_visible_line :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO CInt


textIterBackwardVisibleLine ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Bool
textIterBackwardVisibleLine _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_backward_visible_line _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_backward_visible_lines" gtk_text_iter_backward_visible_lines :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Int32 ->                                -- count : TBasicType TInt32
    IO CInt


textIterBackwardVisibleLines ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    Int32 ->                                -- count
    m Bool
textIterBackwardVisibleLines _obj count = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_backward_visible_lines _obj' count
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_backward_visible_word_start" gtk_text_iter_backward_visible_word_start :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO CInt


textIterBackwardVisibleWordStart ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Bool
textIterBackwardVisibleWordStart _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_backward_visible_word_start _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_backward_visible_word_starts" gtk_text_iter_backward_visible_word_starts :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Int32 ->                                -- count : TBasicType TInt32
    IO CInt


textIterBackwardVisibleWordStarts ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    Int32 ->                                -- count
    m Bool
textIterBackwardVisibleWordStarts _obj count = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_backward_visible_word_starts _obj' count
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_backward_word_start" gtk_text_iter_backward_word_start :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO CInt


textIterBackwardWordStart ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Bool
textIterBackwardWordStart _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_backward_word_start _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_backward_word_starts" gtk_text_iter_backward_word_starts :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Int32 ->                                -- count : TBasicType TInt32
    IO CInt


textIterBackwardWordStarts ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    Int32 ->                                -- count
    m Bool
textIterBackwardWordStarts _obj count = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_backward_word_starts _obj' count
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_begins_tag" gtk_text_iter_begins_tag :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Ptr TextTag ->                          -- tag : TInterface "Gtk" "TextTag"
    IO CInt


textIterBeginsTag ::
    (MonadIO m, TextTagK a) =>
    TextIter ->                             -- _obj
    Maybe (a) ->                            -- tag
    m Bool
textIterBeginsTag _obj tag = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    maybeTag <- case tag of
        Nothing -> return nullPtr
        Just jTag -> do
            let jTag' = unsafeManagedPtrCastPtr jTag
            return jTag'
    result <- gtk_text_iter_begins_tag _obj' maybeTag
    let result' = (/= 0) result
    touchManagedPtr _obj
    whenJust tag touchManagedPtr
    return result'

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

foreign import ccall "gtk_text_iter_can_insert" gtk_text_iter_can_insert :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    CInt ->                                 -- default_editability : TBasicType TBoolean
    IO CInt


textIterCanInsert ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    Bool ->                                 -- default_editability
    m Bool
textIterCanInsert _obj default_editability = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    let default_editability' = (fromIntegral . fromEnum) default_editability
    result <- gtk_text_iter_can_insert _obj' default_editability'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_compare" gtk_text_iter_compare :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Ptr TextIter ->                         -- rhs : TInterface "Gtk" "TextIter"
    IO Int32


textIterCompare ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    TextIter ->                             -- rhs
    m Int32
textIterCompare _obj rhs = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    let rhs' = unsafeManagedPtrGetPtr rhs
    result <- gtk_text_iter_compare _obj' rhs'
    touchManagedPtr _obj
    touchManagedPtr rhs
    return result

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

foreign import ccall "gtk_text_iter_copy" gtk_text_iter_copy :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO (Ptr TextIter)


textIterCopy ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m TextIter
textIterCopy _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_copy _obj'
    checkUnexpectedReturnNULL "gtk_text_iter_copy" result
    result' <- (wrapBoxed TextIter) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_editable" gtk_text_iter_editable :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    CInt ->                                 -- default_setting : TBasicType TBoolean
    IO CInt


textIterEditable ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    Bool ->                                 -- default_setting
    m Bool
textIterEditable _obj default_setting = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    let default_setting' = (fromIntegral . fromEnum) default_setting
    result <- gtk_text_iter_editable _obj' default_setting'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_ends_line" gtk_text_iter_ends_line :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO CInt


textIterEndsLine ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Bool
textIterEndsLine _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_ends_line _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_ends_sentence" gtk_text_iter_ends_sentence :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO CInt


textIterEndsSentence ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Bool
textIterEndsSentence _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_ends_sentence _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_ends_tag" gtk_text_iter_ends_tag :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Ptr TextTag ->                          -- tag : TInterface "Gtk" "TextTag"
    IO CInt


textIterEndsTag ::
    (MonadIO m, TextTagK a) =>
    TextIter ->                             -- _obj
    Maybe (a) ->                            -- tag
    m Bool
textIterEndsTag _obj tag = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    maybeTag <- case tag of
        Nothing -> return nullPtr
        Just jTag -> do
            let jTag' = unsafeManagedPtrCastPtr jTag
            return jTag'
    result <- gtk_text_iter_ends_tag _obj' maybeTag
    let result' = (/= 0) result
    touchManagedPtr _obj
    whenJust tag touchManagedPtr
    return result'

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

foreign import ccall "gtk_text_iter_ends_word" gtk_text_iter_ends_word :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO CInt


textIterEndsWord ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Bool
textIterEndsWord _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_ends_word _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_equal" gtk_text_iter_equal :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Ptr TextIter ->                         -- rhs : TInterface "Gtk" "TextIter"
    IO CInt


textIterEqual ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    TextIter ->                             -- rhs
    m Bool
textIterEqual _obj rhs = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    let rhs' = unsafeManagedPtrGetPtr rhs
    result <- gtk_text_iter_equal _obj' rhs'
    let result' = (/= 0) result
    touchManagedPtr _obj
    touchManagedPtr rhs
    return result'

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

foreign import ccall "gtk_text_iter_forward_char" gtk_text_iter_forward_char :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO CInt


textIterForwardChar ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Bool
textIterForwardChar _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_forward_char _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_forward_chars" gtk_text_iter_forward_chars :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Int32 ->                                -- count : TBasicType TInt32
    IO CInt


textIterForwardChars ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    Int32 ->                                -- count
    m Bool
textIterForwardChars _obj count = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_forward_chars _obj' count
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_forward_cursor_position" gtk_text_iter_forward_cursor_position :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO CInt


textIterForwardCursorPosition ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Bool
textIterForwardCursorPosition _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_forward_cursor_position _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_forward_cursor_positions" gtk_text_iter_forward_cursor_positions :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Int32 ->                                -- count : TBasicType TInt32
    IO CInt


textIterForwardCursorPositions ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    Int32 ->                                -- count
    m Bool
textIterForwardCursorPositions _obj count = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_forward_cursor_positions _obj' count
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method TextIter::forward_find_char
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TextIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pred", argType = TInterface "Gtk" "TextCharPredicate", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeCall, argClosure = 2, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "limit", argType = TInterface "Gtk" "TextIter", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TextIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pred", argType = TInterface "Gtk" "TextCharPredicate", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeCall, argClosure = 2, argDestroy = -1, transfer = TransferNothing},Arg {argName = "limit", argType = TInterface "Gtk" "TextIter", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_iter_forward_find_char" gtk_text_iter_forward_find_char :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    FunPtr TextCharPredicateC ->            -- pred : TInterface "Gtk" "TextCharPredicate"
    Ptr () ->                               -- user_data : TBasicType TVoid
    Ptr TextIter ->                         -- limit : TInterface "Gtk" "TextIter"
    IO CInt


textIterForwardFindChar ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    TextCharPredicate ->                    -- pred
    Maybe (TextIter) ->                     -- limit
    m Bool
textIterForwardFindChar _obj pred limit = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    pred' <- mkTextCharPredicate (textCharPredicateWrapper Nothing pred)
    maybeLimit <- case limit of
        Nothing -> return nullPtr
        Just jLimit -> do
            let jLimit' = unsafeManagedPtrGetPtr jLimit
            return jLimit'
    let user_data = nullPtr
    result <- gtk_text_iter_forward_find_char _obj' pred' user_data maybeLimit
    let result' = (/= 0) result
    safeFreeFunPtr $ castFunPtrToPtr pred'
    touchManagedPtr _obj
    whenJust limit touchManagedPtr
    return result'

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

foreign import ccall "gtk_text_iter_forward_line" gtk_text_iter_forward_line :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO CInt


textIterForwardLine ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Bool
textIterForwardLine _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_forward_line _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_forward_lines" gtk_text_iter_forward_lines :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Int32 ->                                -- count : TBasicType TInt32
    IO CInt


textIterForwardLines ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    Int32 ->                                -- count
    m Bool
textIterForwardLines _obj count = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_forward_lines _obj' count
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method TextIter::forward_search
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TextIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "Gtk" "TextSearchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "match_start", argType = TInterface "Gtk" "TextIter", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "match_end", argType = TInterface "Gtk" "TextIter", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "limit", argType = TInterface "Gtk" "TextIter", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TextIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "Gtk" "TextSearchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "limit", argType = TInterface "Gtk" "TextIter", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_iter_forward_search" gtk_text_iter_forward_search :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    CString ->                              -- str : TBasicType TUTF8
    CUInt ->                                -- flags : TInterface "Gtk" "TextSearchFlags"
    Ptr TextIter ->                         -- match_start : TInterface "Gtk" "TextIter"
    Ptr TextIter ->                         -- match_end : TInterface "Gtk" "TextIter"
    Ptr TextIter ->                         -- limit : TInterface "Gtk" "TextIter"
    IO CInt


textIterForwardSearch ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    T.Text ->                               -- str
    [TextSearchFlags] ->                    -- flags
    Maybe (TextIter) ->                     -- limit
    m (Bool,TextIter,TextIter)
textIterForwardSearch _obj str flags limit = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    str' <- textToCString str
    let flags' = gflagsToWord flags
    match_start <- callocBoxedBytes 80 :: IO (Ptr TextIter)
    match_end <- callocBoxedBytes 80 :: IO (Ptr TextIter)
    maybeLimit <- case limit of
        Nothing -> return nullPtr
        Just jLimit -> do
            let jLimit' = unsafeManagedPtrGetPtr jLimit
            return jLimit'
    result <- gtk_text_iter_forward_search _obj' str' flags' match_start match_end maybeLimit
    let result' = (/= 0) result
    match_start' <- (wrapBoxed TextIter) match_start
    match_end' <- (wrapBoxed TextIter) match_end
    touchManagedPtr _obj
    whenJust limit touchManagedPtr
    freeMem str'
    return (result', match_start', match_end')

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

foreign import ccall "gtk_text_iter_forward_sentence_end" gtk_text_iter_forward_sentence_end :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO CInt


textIterForwardSentenceEnd ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Bool
textIterForwardSentenceEnd _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_forward_sentence_end _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_forward_sentence_ends" gtk_text_iter_forward_sentence_ends :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Int32 ->                                -- count : TBasicType TInt32
    IO CInt


textIterForwardSentenceEnds ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    Int32 ->                                -- count
    m Bool
textIterForwardSentenceEnds _obj count = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_forward_sentence_ends _obj' count
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_forward_to_end" gtk_text_iter_forward_to_end :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO ()


textIterForwardToEnd ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m ()
textIterForwardToEnd _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    gtk_text_iter_forward_to_end _obj'
    touchManagedPtr _obj
    return ()

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

foreign import ccall "gtk_text_iter_forward_to_line_end" gtk_text_iter_forward_to_line_end :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO CInt


textIterForwardToLineEnd ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Bool
textIterForwardToLineEnd _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_forward_to_line_end _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_forward_to_tag_toggle" gtk_text_iter_forward_to_tag_toggle :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Ptr TextTag ->                          -- tag : TInterface "Gtk" "TextTag"
    IO CInt


textIterForwardToTagToggle ::
    (MonadIO m, TextTagK a) =>
    TextIter ->                             -- _obj
    Maybe (a) ->                            -- tag
    m Bool
textIterForwardToTagToggle _obj tag = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    maybeTag <- case tag of
        Nothing -> return nullPtr
        Just jTag -> do
            let jTag' = unsafeManagedPtrCastPtr jTag
            return jTag'
    result <- gtk_text_iter_forward_to_tag_toggle _obj' maybeTag
    let result' = (/= 0) result
    touchManagedPtr _obj
    whenJust tag touchManagedPtr
    return result'

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

foreign import ccall "gtk_text_iter_forward_visible_cursor_position" gtk_text_iter_forward_visible_cursor_position :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO CInt


textIterForwardVisibleCursorPosition ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Bool
textIterForwardVisibleCursorPosition _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_forward_visible_cursor_position _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_forward_visible_cursor_positions" gtk_text_iter_forward_visible_cursor_positions :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Int32 ->                                -- count : TBasicType TInt32
    IO CInt


textIterForwardVisibleCursorPositions ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    Int32 ->                                -- count
    m Bool
textIterForwardVisibleCursorPositions _obj count = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_forward_visible_cursor_positions _obj' count
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_forward_visible_line" gtk_text_iter_forward_visible_line :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO CInt


textIterForwardVisibleLine ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Bool
textIterForwardVisibleLine _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_forward_visible_line _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_forward_visible_lines" gtk_text_iter_forward_visible_lines :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Int32 ->                                -- count : TBasicType TInt32
    IO CInt


textIterForwardVisibleLines ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    Int32 ->                                -- count
    m Bool
textIterForwardVisibleLines _obj count = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_forward_visible_lines _obj' count
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_forward_visible_word_end" gtk_text_iter_forward_visible_word_end :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO CInt


textIterForwardVisibleWordEnd ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Bool
textIterForwardVisibleWordEnd _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_forward_visible_word_end _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_forward_visible_word_ends" gtk_text_iter_forward_visible_word_ends :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Int32 ->                                -- count : TBasicType TInt32
    IO CInt


textIterForwardVisibleWordEnds ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    Int32 ->                                -- count
    m Bool
textIterForwardVisibleWordEnds _obj count = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_forward_visible_word_ends _obj' count
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_forward_word_end" gtk_text_iter_forward_word_end :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO CInt


textIterForwardWordEnd ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Bool
textIterForwardWordEnd _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_forward_word_end _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_forward_word_ends" gtk_text_iter_forward_word_ends :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Int32 ->                                -- count : TBasicType TInt32
    IO CInt


textIterForwardWordEnds ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    Int32 ->                                -- count
    m Bool
textIterForwardWordEnds _obj count = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_forward_word_ends _obj' count
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_free" gtk_text_iter_free :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO ()


textIterFree ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m ()
textIterFree _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    gtk_text_iter_free _obj'
    touchManagedPtr _obj
    return ()

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

foreign import ccall "gtk_text_iter_get_attributes" gtk_text_iter_get_attributes :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Ptr TextAttributes ->                   -- values : TInterface "Gtk" "TextAttributes"
    IO CInt


textIterGetAttributes ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m (Bool,TextAttributes)
textIterGetAttributes _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    values <- callocBoxedBytes 168 :: IO (Ptr TextAttributes)
    result <- gtk_text_iter_get_attributes _obj' values
    let result' = (/= 0) result
    values' <- (wrapBoxed TextAttributes) values
    touchManagedPtr _obj
    return (result', values')

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

foreign import ccall "gtk_text_iter_get_buffer" gtk_text_iter_get_buffer :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO (Ptr TextBuffer)


textIterGetBuffer ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m TextBuffer
textIterGetBuffer _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_get_buffer _obj'
    checkUnexpectedReturnNULL "gtk_text_iter_get_buffer" result
    result' <- (newObject TextBuffer) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_get_bytes_in_line" gtk_text_iter_get_bytes_in_line :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO Int32


textIterGetBytesInLine ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Int32
textIterGetBytesInLine _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_get_bytes_in_line _obj'
    touchManagedPtr _obj
    return result

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

foreign import ccall "gtk_text_iter_get_char" gtk_text_iter_get_char :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO CInt


textIterGetChar ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Char
textIterGetChar _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_get_char _obj'
    let result' = (chr . fromIntegral) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_get_chars_in_line" gtk_text_iter_get_chars_in_line :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO Int32


textIterGetCharsInLine ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Int32
textIterGetCharsInLine _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_get_chars_in_line _obj'
    touchManagedPtr _obj
    return result

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

foreign import ccall "gtk_text_iter_get_child_anchor" gtk_text_iter_get_child_anchor :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO (Ptr TextChildAnchor)


textIterGetChildAnchor ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m TextChildAnchor
textIterGetChildAnchor _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_get_child_anchor _obj'
    checkUnexpectedReturnNULL "gtk_text_iter_get_child_anchor" result
    result' <- (newObject TextChildAnchor) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_get_language" gtk_text_iter_get_language :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO (Ptr Pango.Language)


textIterGetLanguage ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Pango.Language
textIterGetLanguage _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_get_language _obj'
    checkUnexpectedReturnNULL "gtk_text_iter_get_language" result
    result' <- (wrapBoxed Pango.Language) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_get_line" gtk_text_iter_get_line :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO Int32


textIterGetLine ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Int32
textIterGetLine _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_get_line _obj'
    touchManagedPtr _obj
    return result

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

foreign import ccall "gtk_text_iter_get_line_index" gtk_text_iter_get_line_index :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO Int32


textIterGetLineIndex ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Int32
textIterGetLineIndex _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_get_line_index _obj'
    touchManagedPtr _obj
    return result

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

foreign import ccall "gtk_text_iter_get_line_offset" gtk_text_iter_get_line_offset :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO Int32


textIterGetLineOffset ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Int32
textIterGetLineOffset _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_get_line_offset _obj'
    touchManagedPtr _obj
    return result

-- method TextIter::get_marks
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TextIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TextIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TGSList (TInterface "Gtk" "TextMark")
-- throws : False
-- Skip return : False

foreign import ccall "gtk_text_iter_get_marks" gtk_text_iter_get_marks :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO (Ptr (GSList (Ptr TextMark)))


textIterGetMarks ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m [TextMark]
textIterGetMarks _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_get_marks _obj'
    checkUnexpectedReturnNULL "gtk_text_iter_get_marks" result
    result' <- unpackGSList result
    result'' <- mapM (newObject TextMark) result'
    g_slist_free result
    touchManagedPtr _obj
    return result''

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

foreign import ccall "gtk_text_iter_get_offset" gtk_text_iter_get_offset :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO Int32


textIterGetOffset ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Int32
textIterGetOffset _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_get_offset _obj'
    touchManagedPtr _obj
    return result

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

foreign import ccall "gtk_text_iter_get_pixbuf" gtk_text_iter_get_pixbuf :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO (Ptr GdkPixbuf.Pixbuf)


textIterGetPixbuf ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m GdkPixbuf.Pixbuf
textIterGetPixbuf _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_get_pixbuf _obj'
    checkUnexpectedReturnNULL "gtk_text_iter_get_pixbuf" result
    result' <- (newObject GdkPixbuf.Pixbuf) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_get_slice" gtk_text_iter_get_slice :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Ptr TextIter ->                         -- end : TInterface "Gtk" "TextIter"
    IO CString


textIterGetSlice ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    TextIter ->                             -- end
    m T.Text
textIterGetSlice _obj end = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    let end' = unsafeManagedPtrGetPtr end
    result <- gtk_text_iter_get_slice _obj' end'
    checkUnexpectedReturnNULL "gtk_text_iter_get_slice" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr _obj
    touchManagedPtr end
    return result'

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

foreign import ccall "gtk_text_iter_get_tags" gtk_text_iter_get_tags :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO (Ptr (GSList (Ptr TextTag)))


textIterGetTags ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m [TextTag]
textIterGetTags _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_get_tags _obj'
    checkUnexpectedReturnNULL "gtk_text_iter_get_tags" result
    result' <- unpackGSList result
    result'' <- mapM (newObject TextTag) result'
    g_slist_free result
    touchManagedPtr _obj
    return result''

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

foreign import ccall "gtk_text_iter_get_text" gtk_text_iter_get_text :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Ptr TextIter ->                         -- end : TInterface "Gtk" "TextIter"
    IO CString


textIterGetText ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    TextIter ->                             -- end
    m T.Text
textIterGetText _obj end = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    let end' = unsafeManagedPtrGetPtr end
    result <- gtk_text_iter_get_text _obj' end'
    checkUnexpectedReturnNULL "gtk_text_iter_get_text" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr _obj
    touchManagedPtr end
    return result'

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

foreign import ccall "gtk_text_iter_get_toggled_tags" gtk_text_iter_get_toggled_tags :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    CInt ->                                 -- toggled_on : TBasicType TBoolean
    IO (Ptr (GSList (Ptr TextTag)))


textIterGetToggledTags ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    Bool ->                                 -- toggled_on
    m [TextTag]
textIterGetToggledTags _obj toggled_on = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    let toggled_on' = (fromIntegral . fromEnum) toggled_on
    result <- gtk_text_iter_get_toggled_tags _obj' toggled_on'
    checkUnexpectedReturnNULL "gtk_text_iter_get_toggled_tags" result
    result' <- unpackGSList result
    result'' <- mapM (newObject TextTag) result'
    g_slist_free result
    touchManagedPtr _obj
    return result''

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

foreign import ccall "gtk_text_iter_get_visible_line_index" gtk_text_iter_get_visible_line_index :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO Int32


textIterGetVisibleLineIndex ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Int32
textIterGetVisibleLineIndex _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_get_visible_line_index _obj'
    touchManagedPtr _obj
    return result

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

foreign import ccall "gtk_text_iter_get_visible_line_offset" gtk_text_iter_get_visible_line_offset :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO Int32


textIterGetVisibleLineOffset ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Int32
textIterGetVisibleLineOffset _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_get_visible_line_offset _obj'
    touchManagedPtr _obj
    return result

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

foreign import ccall "gtk_text_iter_get_visible_slice" gtk_text_iter_get_visible_slice :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Ptr TextIter ->                         -- end : TInterface "Gtk" "TextIter"
    IO CString


textIterGetVisibleSlice ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    TextIter ->                             -- end
    m T.Text
textIterGetVisibleSlice _obj end = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    let end' = unsafeManagedPtrGetPtr end
    result <- gtk_text_iter_get_visible_slice _obj' end'
    checkUnexpectedReturnNULL "gtk_text_iter_get_visible_slice" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr _obj
    touchManagedPtr end
    return result'

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

foreign import ccall "gtk_text_iter_get_visible_text" gtk_text_iter_get_visible_text :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Ptr TextIter ->                         -- end : TInterface "Gtk" "TextIter"
    IO CString


textIterGetVisibleText ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    TextIter ->                             -- end
    m T.Text
textIterGetVisibleText _obj end = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    let end' = unsafeManagedPtrGetPtr end
    result <- gtk_text_iter_get_visible_text _obj' end'
    checkUnexpectedReturnNULL "gtk_text_iter_get_visible_text" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr _obj
    touchManagedPtr end
    return result'

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

foreign import ccall "gtk_text_iter_has_tag" gtk_text_iter_has_tag :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Ptr TextTag ->                          -- tag : TInterface "Gtk" "TextTag"
    IO CInt


textIterHasTag ::
    (MonadIO m, TextTagK a) =>
    TextIter ->                             -- _obj
    a ->                                    -- tag
    m Bool
textIterHasTag _obj tag = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    let tag' = unsafeManagedPtrCastPtr tag
    result <- gtk_text_iter_has_tag _obj' tag'
    let result' = (/= 0) result
    touchManagedPtr _obj
    touchManagedPtr tag
    return result'

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

foreign import ccall "gtk_text_iter_in_range" gtk_text_iter_in_range :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Ptr TextIter ->                         -- start : TInterface "Gtk" "TextIter"
    Ptr TextIter ->                         -- end : TInterface "Gtk" "TextIter"
    IO CInt


textIterInRange ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    TextIter ->                             -- start
    TextIter ->                             -- end
    m Bool
textIterInRange _obj start end = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    let start' = unsafeManagedPtrGetPtr start
    let end' = unsafeManagedPtrGetPtr end
    result <- gtk_text_iter_in_range _obj' start' end'
    let result' = (/= 0) result
    touchManagedPtr _obj
    touchManagedPtr start
    touchManagedPtr end
    return result'

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

foreign import ccall "gtk_text_iter_inside_sentence" gtk_text_iter_inside_sentence :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO CInt


textIterInsideSentence ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Bool
textIterInsideSentence _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_inside_sentence _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_inside_word" gtk_text_iter_inside_word :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO CInt


textIterInsideWord ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Bool
textIterInsideWord _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_inside_word _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_is_cursor_position" gtk_text_iter_is_cursor_position :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO CInt


textIterIsCursorPosition ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Bool
textIterIsCursorPosition _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_is_cursor_position _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_is_end" gtk_text_iter_is_end :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO CInt


textIterIsEnd ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Bool
textIterIsEnd _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_is_end _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_is_start" gtk_text_iter_is_start :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO CInt


textIterIsStart ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Bool
textIterIsStart _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_is_start _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_order" gtk_text_iter_order :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Ptr TextIter ->                         -- second : TInterface "Gtk" "TextIter"
    IO ()


textIterOrder ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    TextIter ->                             -- second
    m ()
textIterOrder _obj second = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    let second' = unsafeManagedPtrGetPtr second
    gtk_text_iter_order _obj' second'
    touchManagedPtr _obj
    touchManagedPtr second
    return ()

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

foreign import ccall "gtk_text_iter_set_line" gtk_text_iter_set_line :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Int32 ->                                -- line_number : TBasicType TInt32
    IO ()


textIterSetLine ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    Int32 ->                                -- line_number
    m ()
textIterSetLine _obj line_number = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    gtk_text_iter_set_line _obj' line_number
    touchManagedPtr _obj
    return ()

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

foreign import ccall "gtk_text_iter_set_line_index" gtk_text_iter_set_line_index :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Int32 ->                                -- byte_on_line : TBasicType TInt32
    IO ()


textIterSetLineIndex ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    Int32 ->                                -- byte_on_line
    m ()
textIterSetLineIndex _obj byte_on_line = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    gtk_text_iter_set_line_index _obj' byte_on_line
    touchManagedPtr _obj
    return ()

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

foreign import ccall "gtk_text_iter_set_line_offset" gtk_text_iter_set_line_offset :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Int32 ->                                -- char_on_line : TBasicType TInt32
    IO ()


textIterSetLineOffset ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    Int32 ->                                -- char_on_line
    m ()
textIterSetLineOffset _obj char_on_line = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    gtk_text_iter_set_line_offset _obj' char_on_line
    touchManagedPtr _obj
    return ()

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

foreign import ccall "gtk_text_iter_set_offset" gtk_text_iter_set_offset :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Int32 ->                                -- char_offset : TBasicType TInt32
    IO ()


textIterSetOffset ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    Int32 ->                                -- char_offset
    m ()
textIterSetOffset _obj char_offset = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    gtk_text_iter_set_offset _obj' char_offset
    touchManagedPtr _obj
    return ()

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

foreign import ccall "gtk_text_iter_set_visible_line_index" gtk_text_iter_set_visible_line_index :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Int32 ->                                -- byte_on_line : TBasicType TInt32
    IO ()


textIterSetVisibleLineIndex ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    Int32 ->                                -- byte_on_line
    m ()
textIterSetVisibleLineIndex _obj byte_on_line = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    gtk_text_iter_set_visible_line_index _obj' byte_on_line
    touchManagedPtr _obj
    return ()

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

foreign import ccall "gtk_text_iter_set_visible_line_offset" gtk_text_iter_set_visible_line_offset :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Int32 ->                                -- char_on_line : TBasicType TInt32
    IO ()


textIterSetVisibleLineOffset ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    Int32 ->                                -- char_on_line
    m ()
textIterSetVisibleLineOffset _obj char_on_line = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    gtk_text_iter_set_visible_line_offset _obj' char_on_line
    touchManagedPtr _obj
    return ()

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

foreign import ccall "gtk_text_iter_starts_line" gtk_text_iter_starts_line :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO CInt


textIterStartsLine ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Bool
textIterStartsLine _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_starts_line _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_starts_sentence" gtk_text_iter_starts_sentence :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO CInt


textIterStartsSentence ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Bool
textIterStartsSentence _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_starts_sentence _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_starts_word" gtk_text_iter_starts_word :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    IO CInt


textIterStartsWord ::
    (MonadIO m) =>
    TextIter ->                             -- _obj
    m Bool
textIterStartsWord _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gtk_text_iter_starts_word _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_text_iter_toggles_tag" gtk_text_iter_toggles_tag :: 
    Ptr TextIter ->                         -- _obj : TInterface "Gtk" "TextIter"
    Ptr TextTag ->                          -- tag : TInterface "Gtk" "TextTag"
    IO CInt


textIterTogglesTag ::
    (MonadIO m, TextTagK a) =>
    TextIter ->                             -- _obj
    Maybe (a) ->                            -- tag
    m Bool
textIterTogglesTag _obj tag = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    maybeTag <- case tag of
        Nothing -> return nullPtr
        Just jTag -> do
            let jTag' = unsafeManagedPtrCastPtr jTag
            return jTag'
    result <- gtk_text_iter_toggles_tag _obj' maybeTag
    let result' = (/= 0) result
    touchManagedPtr _obj
    whenJust tag touchManagedPtr
    return result'