{-# LINE 2 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}-- -*-haskell-*--- GIMP Toolkit (GTK) TextBuffer---- Author : Axel Simon, Andy Stewart---- Created: 23 February 2002---- Copyright (C) 2001-2005 Axel Simon-- Copyright (C) 2009 Andy Stewart---- This library is free software; you can redistribute it and/or-- modify it under the terms of the GNU Lesser General Public-- License as published by the Free Software Foundation; either-- version 2.1 of the License, or (at your option) any later version.---- This library is distributed in the hope that it will be useful,-- but WITHOUT ANY WARRANTY; without even the implied warranty of-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU-- Lesser General Public License for more details.---- NOTES---- Below `variadic` functions can't support by FFI:-- gtk_text_buffer_insert_with_tags-- gtk_text_buffer_insert_with_tags_by_name-- gtk_text_buffer_create_tag-- But above functions is not essential, we can use other functions do same work.-- Example:---- gtk_text_buffer_insert_with_tags equivalent to calling textBufferInsert,-- then textBufferApplyTag on the inserted text.---- gtk_text_buffer_insert_with_tags_by_name same as gtk_text_buffer_insert_with_tags,-- just use textTagName handle tag name.---- gtk_text_buffer_create_tag Equivalent to calling textTagNew-- and then adding the tag to the buffer's tag table. ---- The following functions do not make sense due to Haskell's wide character-- representation of Unicode:-- gtk_text_buffer_get_iter_at_line_index---- The function gtk_text_buffer_get_selection_bounds is only used to test-- if there is a selection (see 'textBufferHasSelection').---- |-- Maintainer : gtk2hs-users@lists.sourceforge.net-- Stability : provisional-- Portability : portable (depends on GHC)---- Stores attributed text for display in a 'TextView'--moduleGraphics.UI.Gtk.Multiline.TextBuffer(-- * Detail---- | You may wish to begin by reading the text widget conceptual overview-- which gives an overview of all the objects and data types related to the-- text widget and how they work together.-- * Class Hierarchy-- |-- @-- | 'GObject'-- | +----TextBuffer-- @-- * TypesTextBuffer,TextBufferClass,castToTextBuffer,gTypeTextBuffer,toTextBuffer,-- * ConstructorstextBufferNew,-- * MethodstextBufferGetLineCount,textBufferGetCharCount,textBufferGetTagTable,textBufferInsert,textBufferInsertByteString,textBufferInsertAtCursor,textBufferInsertByteStringAtCursor,textBufferInsertInteractive,textBufferInsertByteStringInteractive,textBufferInsertInteractiveAtCursor,textBufferInsertByteStringInteractiveAtCursor,textBufferInsertRange,textBufferInsertRangeInteractive,textBufferDelete,textBufferDeleteInteractive,textBufferSetByteString,textBufferGetByteString,textBufferGetByteStringSlice,textBufferSetText,textBufferGetText,textBufferGetSlice,textBufferInsertPixbuf,textBufferCreateMark,textBufferAddMark,textBufferMoveMark,textBufferMoveMarkByName,textBufferDeleteMark,textBufferDeleteMarkByName,textBufferGetMark,textBufferGetInsert,textBufferGetSelectionBound,textBufferPlaceCursor,textBufferApplyTag,textBufferRemoveTag,textBufferApplyTagByName,textBufferRemoveTagByName,textBufferRemoveAllTags,textBufferGetIterAtLineOffset,textBufferGetIterAtOffset,textBufferGetIterAtLine,textBufferGetIterAtMark,textBufferGetStartIter,textBufferGetEndIter,textBufferGetModified,textBufferSetModified,textBufferDeleteSelection,textBufferHasSelection,textBufferGetSelectionBounds,textBufferSelectRange,textBufferGetBounds,textBufferBeginUserAction,textBufferEndUserAction,textBufferBackspace,textBufferInsertChildAnchor,textBufferCreateChildAnchor,textBufferGetIterAtChildAnchor,textBufferPasteClipboard,textBufferPasteClipboardAtCursor,textBufferCopyClipboard,textBufferCutClipboard,textBufferAddSelectionClipboard,textBufferRemoveSelectionClipboard,-- * AttributestextBufferTagTable,textBufferText,textBufferModified,-- * SignalsapplyTag,beginUserAction,bufferChanged,deleteRange,endUserAction,insertPixbuf,insertChildAnchor,bufferInsertText,markDeleted,markSet,modifiedChanged,pasteDone,removeTag,-- * DeprecatedonApplyTag,afterApplyTag,onBeginUserAction,afterBeginUserAction,onBufferChanged,afterBufferChanged,onDeleteRange,afterDeleteRange,onEndUserAction,afterEndUserAction,onInsertPixbuf,afterInsertPixbuf,onBufferInsertText,afterBufferInsertText,onMarkDeleted,afterMarkDeleted,onMarkSet,afterMarkSet,onModifiedChanged,afterModifiedChanged,onRemoveTag,afterRemoveTag)whereimportControl.Monad(liftM)importSystem.Glib.FFIimportSystem.Glib.UTFStringimportSystem.Glib.AttributesimportSystem.Glib.PropertiesimportSystem.Glib.GObject(wrapNewGObject,makeNewGObject)importData.ByteString(ByteString)importData.ByteString.Unsafe(unsafeUseAsCStringLen,unsafePackCStringFinalizer)importGraphics.UI.Gtk.Types{-# LINE 209 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}importGraphics.UI.Gtk.Signals{-# LINE 210 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}importGraphics.UI.Gtk.Multiline.Types{-# LINE 211 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}importGraphics.UI.Gtk.Multiline.TextMark(TextMark,MarkName)importGraphics.UI.Gtk.Multiline.TextTag(TextTag,TagName){-# LINE 215 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}---------------------- Constructors-- | Creates a new text buffer.--textBufferNew::MaybeTextTagTable-- ^ @table@ - a tag table, or @Nothing@ to create a-- new one->IOTextBuffertextBufferNewtable=wrapNewGObjectmkTextBuffer$(\(TextTagTablearg1)->withForeignPtrarg1$\argPtr1->gtk_text_buffer_newargPtr1){-# LINE 228 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(maybe(TextTagTablenullForeignPtr)toTextTagTabletable)---------------------- Methods-- | Obtains the number of lines in the buffer. This value is cached, so the-- function is very fast.--textBufferGetLineCount::TextBufferClassself=>self->IOInttextBufferGetLineCountself=liftMfromIntegral$(\(TextBufferarg1)->withForeignPtrarg1$\argPtr1->gtk_text_buffer_get_line_countargPtr1){-# LINE 240 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)-- | Gets the number of characters in the buffer. The character count is-- cached, so this function is very fast.--textBufferGetCharCount::TextBufferClassself=>self->IOInttextBufferGetCharCountself=liftMfromIntegral$(\(TextBufferarg1)->withForeignPtrarg1$\argPtr1->gtk_text_buffer_get_char_countargPtr1){-# LINE 249 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)-- | Get the 'TextTagTable' associated with this buffer.--textBufferGetTagTable::TextBufferClassself=>self->IOTextTagTabletextBufferGetTagTableself=makeNewGObjectmkTextTagTable$(\(TextBufferarg1)->withForeignPtrarg1$\argPtr1->gtk_text_buffer_get_tag_tableargPtr1){-# LINE 257 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)-- | Inserts @text@ at position @iter@. Emits the-- 'insertText' signal; insertion actually occurs in the default handler for-- the signal. @iter@ is invalidated when insertion occurs (because the buffer-- contents change).--textBufferInsert::TextBufferClassself=>self->TextIter-- ^ @iter@ - a position in the buffer->String-- ^ @text@ - text to insert->IO()textBufferInsertselfitertext=withUTFStringLentext$\(textPtr,len)->(\(TextBufferarg1)(TextIterarg2)arg3arg4->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->gtk_text_buffer_insertargPtr1argPtr2arg3arg4){-# LINE 271 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)itertextPtr(fromIntegrallen)-- | Inserts @text@ at position @iter@. Similar-- to 'textBufferInsert' but uses 'ByteString' buffers.---- * The passed-in buffer must contain a valid UTF-8 encoded string.--textBufferInsertByteString::TextBufferClassself=>self->TextIter-- ^ @iter@ - a position in the buffer->ByteString-- ^ @text@ - text to insert->IO()textBufferInsertByteStringselfitertext=unsafeUseAsCStringLentext$\(textPtr,len)->(\(TextBufferarg1)(TextIterarg2)arg3arg4->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->gtk_text_buffer_insertargPtr1argPtr2arg3arg4){-# LINE 288 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)itertextPtr(fromIntegrallen)-- | Simply calls 'textBufferInsert', using the current cursor position as the-- insertion point.--textBufferInsertAtCursor::TextBufferClassself=>self->String->IO()textBufferInsertAtCursorselftext=withUTFStringLentext$\(textPtr,len)->(\(TextBufferarg1)arg2arg3->withForeignPtrarg1$\argPtr1->gtk_text_buffer_insert_at_cursorargPtr1arg2arg3){-# LINE 300 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)textPtr(fromIntegrallen)-- | Simply calls 'textBufferInsert', using the current cursor position as the-- insertion point. Similar to 'textBufferInsertAtCursor' but uses 'ByteString' buffers.---- * The passed-in buffer must contain a valid UTF-8 encoded string.--textBufferInsertByteStringAtCursor::TextBufferClassself=>self->ByteString->IO()textBufferInsertByteStringAtCursorselftext=unsafeUseAsCStringLentext$\(textPtr,len)->(\(TextBufferarg1)arg2arg3->withForeignPtrarg1$\argPtr1->gtk_text_buffer_insert_at_cursorargPtr1arg2arg3){-# LINE 313 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)textPtr(fromIntegrallen)-- | Like 'textBufferInsert', but the insertion will not occur if @iter@ is at-- a non-editable location in the buffer. Usually you want to prevent-- insertions at ineditable locations if the insertion results from a user-- action (is interactive).---- If no tag is at the specified position, use the default value @def@ to-- decide if the text should be inserted. This value could be set to the result-- of 'Graphics.UI.Gtk.Multiline.TextView.textViewGetEditable'.--textBufferInsertInteractive::TextBufferClassself=>self->TextIter-- ^ @iter@ - a position in @buffer@->String-- ^ @text@ - the text to insert->Bool-- ^ @defaultEditable@ - default editability of buffer->IOBool-- ^ returns whether text was actually insertedtextBufferInsertInteractiveselfitertextdefaultEditable=liftMtoBool$withUTFStringLentext$\(textPtr,len)->(\(TextBufferarg1)(TextIterarg2)arg3arg4arg5->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->gtk_text_buffer_insert_interactiveargPtr1argPtr2arg3arg4arg5){-# LINE 335 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)itertextPtr(fromIntegrallen)(fromBooldefaultEditable)-- | Similar to 'textBufferInsertInteractive' but uses 'ByteString' buffers.---- * The passed-in buffer must contain a valid UTF-8 encoded string.--textBufferInsertByteStringInteractive::TextBufferClassself=>self->TextIter-- ^ @iter@ - a position in @buffer@->ByteString-- ^ @text@ - the text to insert->Bool-- ^ @defaultEditable@ - default editability of buffer->IOBool-- ^ returns whether text was actually insertedtextBufferInsertByteStringInteractiveselfitertextdefaultEditable=liftMtoBool$unsafeUseAsCStringLentext$\(textPtr,len)->(\(TextBufferarg1)(TextIterarg2)arg3arg4arg5->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->gtk_text_buffer_insert_interactiveargPtr1argPtr2arg3arg4arg5){-# LINE 354 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)itertextPtr(fromIntegrallen)(fromBooldefaultEditable)-- | Calls 'textBufferInsertInteractive' at the cursor position.--textBufferInsertInteractiveAtCursor::TextBufferClassself=>self->String-- ^ @text@ - the text to insert->Bool-- ^ @defaultEditable@ - default editability of buffer->IOBool-- ^ returns whether text was actually insertedtextBufferInsertInteractiveAtCursorselftextdefaultEditable=liftMtoBool$withUTFStringLentext$\(textPtr,len)->(\(TextBufferarg1)arg2arg3arg4->withForeignPtrarg1$\argPtr1->gtk_text_buffer_insert_interactive_at_cursorargPtr1arg2arg3arg4){-# LINE 370 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)textPtr(fromIntegrallen)(fromBooldefaultEditable)-- | Similar to 'textBufferInsertInteractiveAtCursor' but uses 'ByteString' buffers.---- * The passed-in buffer must contain a valid UTF-8 encoded string.--textBufferInsertByteStringInteractiveAtCursor::TextBufferClassself=>self->ByteString-- ^ @text@ - the text to insert->Bool-- ^ @defaultEditable@ - default editability of buffer->IOBool-- ^ returns whether text was actually insertedtextBufferInsertByteStringInteractiveAtCursorselftextdefaultEditable=liftMtoBool$unsafeUseAsCStringLentext$\(textPtr,len)->(\(TextBufferarg1)arg2arg3arg4->withForeignPtrarg1$\argPtr1->gtk_text_buffer_insert_interactive_at_cursorargPtr1arg2arg3arg4){-# LINE 387 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)textPtr(fromIntegrallen)(fromBooldefaultEditable)-- | Copies text, tags, and pixbufs between @start@ and @end@ (the order of-- @start@ and @end@ doesn't matter) and inserts the copy at @iter@. Used-- instead of simply getting\/inserting text because it preserves images and-- tags. If @start@ and @end@ are in a different buffer from @buffer@, the two-- buffers must share the same tag table.---- Implemented via emissions of the insert-text and 'applyTag' signals, so-- expect those.--textBufferInsertRange::TextBufferClassself=>self->TextIter-- ^ @iter@ - a position in the buffer->TextIter-- ^ @start@ - a position in a 'TextBuffer'->TextIter-- ^ @end@ - another position in the same buffer as @start@->IO()textBufferInsertRangeselfiterstartend=(\(TextBufferarg1)(TextIterarg2)(TextIterarg3)(TextIterarg4)->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->withForeignPtrarg3$\argPtr3->withForeignPtrarg4$\argPtr4->gtk_text_buffer_insert_rangeargPtr1argPtr2argPtr3argPtr4){-# LINE 408 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)iterstartend-- | Same as 'textBufferInsertRange', but does nothing if the insertion point-- isn't editable. The @defaultEditable@ parameter indicates whether the text-- is editable at @iter@ if no tags enclosing @iter@ affect editability.-- Typically the result of-- 'Graphics.UI.Gtk.Multiline.TextView.textViewGetEditable' is appropriate here.--textBufferInsertRangeInteractive::TextBufferClassself=>self->TextIter-- ^ @iter@ - a position in the buffer->TextIter-- ^ @start@ - a position in a 'TextBuffer'->TextIter-- ^ @end@ - another position in the same buffer as @start@->Bool-- ^ @defaultEditable@ - default editability of the buffer->IOBool-- ^ returns whether an insertion was possible at @iter@textBufferInsertRangeInteractiveselfiterstartenddefaultEditable=liftMtoBool$(\(TextBufferarg1)(TextIterarg2)(TextIterarg3)(TextIterarg4)arg5->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->withForeignPtrarg3$\argPtr3->withForeignPtrarg4$\argPtr4->gtk_text_buffer_insert_range_interactiveargPtr1argPtr2argPtr3argPtr4arg5){-# LINE 428 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)iterstartend(fromBooldefaultEditable)-- | Deletes text between @start@ and @end@. The order of @start@ and @end@ is-- not actually relevant; 'textBufferDelete' will reorder them. This function-- actually emits the 'deleteRange' signal, and the default handler of that-- signal deletes the text. Because the buffer is modified, all outstanding-- iterators become invalid after calling this function; however, the @start@-- and @end@ will be re-initialized to point to the location where text was-- deleted.--textBufferDelete::TextBufferClassself=>self->TextIter-- ^ @start@ - a position in @buffer@->TextIter-- ^ @end@ - another position in @buffer@->IO()textBufferDeleteselfstartend=(\(TextBufferarg1)(TextIterarg2)(TextIterarg3)->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->withForeignPtrarg3$\argPtr3->gtk_text_buffer_deleteargPtr1argPtr2argPtr3){-# LINE 448 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)startend-- | Deletes all /editable/ text in the given range. Calls 'textBufferDelete'-- for each editable sub-range of [@start@,@end@). @start@ and @end@ are-- revalidated to point to the location of the last deleted range, or left-- untouched if no text was deleted.--textBufferDeleteInteractive::TextBufferClassself=>self->TextIter-- ^ @startIter@ - start of range to delete->TextIter-- ^ @endIter@ - end of range->Bool-- ^ @defaultEditable@ - whether the buffer is editable by-- default->IOBool-- ^ returns whether some text was actually deletedtextBufferDeleteInteractiveselfstartIterendIterdefaultEditable=liftMtoBool$(\(TextBufferarg1)(TextIterarg2)(TextIterarg3)arg4->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->withForeignPtrarg3$\argPtr3->gtk_text_buffer_delete_interactiveargPtr1argPtr2argPtr3arg4){-# LINE 466 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)startIterendIter(fromBooldefaultEditable)-- | Deletes current contents of @buffer@, and inserts @text@ instead.--textBufferSetText::TextBufferClassself=>self->String-- ^ @text@ - text to insert->IO()textBufferSetTextselftext=withUTFStringLentext$\(textPtr,len)->(\(TextBufferarg1)arg2arg3->withForeignPtrarg1$\argPtr1->gtk_text_buffer_set_textargPtr1arg2arg3){-# LINE 479 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)textPtr(fromIntegrallen)-- | Returns the text in the range [@start@,@end@). Excludes undisplayed text-- (text marked with tags that set the invisibility attribute) if-- @includeHiddenChars@ is @False@. Does not include characters representing-- embedded images, so character indexes into the returned string do-- /not/ correspond to character indexes into the buffer. Contrast-- with 'textBufferGetSlice'.--textBufferGetText::TextBufferClassself=>self->TextIter-- ^ @start@ - start of a range->TextIter-- ^ @end@ - end of a range->Bool-- ^ @includeHiddenChars@ - whether to include invisible text->IOStringtextBufferGetTextselfstartendincludeHiddenChars=(\(TextBufferarg1)(TextIterarg2)(TextIterarg3)arg4->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->withForeignPtrarg3$\argPtr3->gtk_text_buffer_get_textargPtr1argPtr2argPtr3arg4){-# LINE 497 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)startend(fromBoolincludeHiddenChars)>>=readUTFString-- | Returns the text in the range [@start@,@end@). Excludes undisplayed text-- (text marked with tags that set the invisibility attribute) if-- @includeHiddenChars@ is @False@. The returned string includes a-- @(chr 0xFFFC)@ character whenever the buffer contains embedded images, so-- character indexes into the returned string /do/ correspond to-- character indexes into the buffer. Contrast with 'textBufferGetText'. Note-- that @(chr 0xFFFC)@ can occur in normal text as well, so it is not a reliable-- indicator that a pixbuf or widget is in the buffer.--textBufferGetSlice::TextBufferClassself=>self->TextIter-- ^ @start@ - start of a range->TextIter-- ^ @end@ - end of a range->Bool-- ^ @includeHiddenChars@ - whether to include invisible text->IOStringtextBufferGetSliceselfstartendincludeHiddenChars=(\(TextBufferarg1)(TextIterarg2)(TextIterarg3)arg4->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->withForeignPtrarg3$\argPtr3->gtk_text_buffer_get_sliceargPtr1argPtr2argPtr3arg4){-# LINE 519 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)startend(fromBoolincludeHiddenChars)>>=readUTFString-- | Deletes current contents of @buffer@, and inserts @text@ instead. Similar-- to 'textBufferSetText' but uses 'ByteString' buffers.---- * The passed-in buffer must contain a valid UTF-8 encoded string.--textBufferSetByteString::TextBufferClassself=>self->ByteString-- ^ @text@ - text to insert->IO()textBufferSetByteStringselftext=unsafeUseAsCStringLentext$\(textPtr,len)->(\(TextBufferarg1)arg2arg3->withForeignPtrarg1$\argPtr1->gtk_text_buffer_set_textargPtr1arg2arg3){-# LINE 536 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)textPtr(fromIntegrallen)-- | Returns the text in the range [@start@,@end@). Similar to-- `textBufferGetText` but uses 'ByteString' buffers.---- * The returned buffer is a UTF-8 encoded string.--textBufferGetByteString::TextBufferClassself=>self->TextIter-- ^ @start@ - start of a range->TextIter-- ^ @end@ - end of a range->Bool-- ^ @includeHiddenChars@ - whether to include invisible text->IOByteStringtextBufferGetByteStringselfstartendincludeHiddenChars=dosPtr<-(\(TextBufferarg1)(TextIterarg2)(TextIterarg3)arg4->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->withForeignPtrarg3$\argPtr3->gtk_text_buffer_get_textargPtr1argPtr2argPtr3arg4){-# LINE 552 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)startend(fromBoolincludeHiddenChars)sLen<-lengthArray00sPtrunsafePackCStringFinalizer(castPtrsPtr)(fromIntegralsLen)(g_free(castPtrsPtr))-- | Returns the text in the range [@start@,@end@). Similar to-- `textBufferGetSlice` but uses 'ByteString' buffers.---- * The returned buffer is a UTF-8 encoded string.--textBufferGetByteStringSlice::TextBufferClassself=>self->TextIter-- ^ @start@ - start of a range->TextIter-- ^ @end@ - end of a range->Bool-- ^ @includeHiddenChars@ - whether to include invisible text->IOByteStringtextBufferGetByteStringSliceselfstartendincludeHiddenChars=dosPtr<-(\(TextBufferarg1)(TextIterarg2)(TextIterarg3)arg4->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->withForeignPtrarg3$\argPtr3->gtk_text_buffer_get_sliceargPtr1argPtr2argPtr3arg4){-# LINE 572 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)startend(fromBoolincludeHiddenChars)sLen<-lengthArray00sPtrunsafePackCStringFinalizer(castPtrsPtr)(fromIntegralsLen)(g_free(castPtrsPtr))-- | Inserts an image into the text buffer at @iter@. The image will be-- counted as one character in character counts, and when obtaining the buffer-- contents as a string, will be represented by the Unicode \"object-- replacement character\" @(chr 0xFFFC)@. Note that the \"slice\" variants for-- obtaining portions of the buffer as a string include this character for-- pixbufs, but the \"text\" variants do not. e.g. see 'textBufferGetSlice' and-- 'textBufferGetText'.--textBufferInsertPixbuf::TextBufferClassself=>self->TextIter-- ^ @iter@ - location to insert the pixbuf->Pixbuf-- ^ @pixbuf@ - a 'Pixbuf'->IO()textBufferInsertPixbufselfiterpixbuf=(\(TextBufferarg1)(TextIterarg2)(Pixbufarg3)->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->withForeignPtrarg3$\argPtr3->gtk_text_buffer_insert_pixbufargPtr1argPtr2argPtr3){-# LINE 594 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)iterpixbuf-- | Creates a mark at position @where@. If @markName@ is @Nothing@, the mark-- is anonymous; otherwise, the mark can be retrieved by name using-- 'textBufferGetMark'. If a mark has left gravity, and text is inserted at the-- mark's current location, the mark will be moved to the left of the-- newly-inserted text. If the mark has right gravity (@leftGravity@ =-- @False@), the mark will end up on the right of newly-inserted text. The-- standard left-to-right cursor is a mark with right gravity (when you type,-- the cursor stays on the right side of the text you're typing).---- Emits the 'markSet' signal as notification of the mark's initial-- placement.--textBufferCreateMark::TextBufferClassself=>self->MaybeMarkName-- ^ @markName@ - name for mark, or @Nothing@->TextIter-- ^ @where@ - location to place mark->Bool-- ^ @leftGravity@ - whether the mark has left gravity->IOTextMark-- ^ returns the new 'TextMark' objecttextBufferCreateMarkselfmarkNamewhere_leftGravity=makeNewGObjectmkTextMark$maybeWithwithUTFStringmarkName$\markNamePtr->(\(TextBufferarg1)arg2(TextIterarg3)arg4->withForeignPtrarg1$\argPtr1->withForeignPtrarg3$\argPtr3->gtk_text_buffer_create_markargPtr1arg2argPtr3arg4){-# LINE 619 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)markNamePtrwhere_(fromBoolleftGravity)-- | Adds the mark at position given by the 'TextIter'.-- The mark may not be added to any other buffer.---- Emits the 'markSet' signal as notification of the mark's initial placement.--textBufferAddMark::TextBufferClassself=>self->TextMark-- ^ @mark@ the mark to add->TextIter-- ^ @iter@ location to place mark->IO()textBufferAddMarkselfmarkiter=(\(TextBufferarg1)(TextMarkarg2)(TextIterarg3)->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->withForeignPtrarg3$\argPtr3->gtk_text_buffer_add_markargPtr1argPtr2argPtr3)(toTextBufferself)(toTextMarkmark)iter-- | Moves @mark@ to the new location @where@. Emits the 'markSet' signal-- as notification of the move.--textBufferMoveMark::(TextBufferClassself,TextMarkClassmark)=>self->mark-- ^ @mark@ - a 'TextMark'->TextIter-- ^ @where@ - new location for @mark@ in the buffer->IO()textBufferMoveMarkselfmarkwhere_=(\(TextBufferarg1)(TextMarkarg2)(TextIterarg3)->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->withForeignPtrarg3$\argPtr3->gtk_text_buffer_move_markargPtr1argPtr2argPtr3){-# LINE 647 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)(toTextMarkmark)where_-- | Moves the mark named @name@ (which must exist) to location @where@. See-- 'textBufferMoveMark' for details.--textBufferMoveMarkByName::TextBufferClassself=>self->MarkName-- ^ @name@ - name of a mark->TextIter-- ^ @where@ - new location for mark->IO()textBufferMoveMarkByNameselfnamewhere_=withUTFStringname$\namePtr->(\(TextBufferarg1)arg2(TextIterarg3)->withForeignPtrarg1$\argPtr1->withForeignPtrarg3$\argPtr3->gtk_text_buffer_move_mark_by_nameargPtr1arg2argPtr3){-# LINE 661 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)namePtrwhere_-- | Deletes @mark@, so that it's no longer located anywhere in the buffer.-- Most operations on @mark@ become invalid. There is no way to undelete a-- mark. 'Graphics.UI.Gtk.Multiline.TextMark.textMarkGetDeleted' will-- return @True@ after this function has been-- called on a mark; 'Graphics.UI.Gtk.Multiline.TextMark.textMarkGetDeleted'-- indicates that a mark no longer-- belongs to a buffer. The 'markDeleted' signal will be emitted as-- notification after the mark is deleted.--textBufferDeleteMark::(TextBufferClassself,TextMarkClassmark)=>self->mark-- ^ @mark@ - a 'TextMark' in the buffer->IO()textBufferDeleteMarkselfmark=(\(TextBufferarg1)(TextMarkarg2)->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->gtk_text_buffer_delete_markargPtr1argPtr2){-# LINE 679 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)(toTextMarkmark)-- | Deletes the mark named @name@; the mark must exist. See-- 'textBufferDeleteMark' for details.--textBufferDeleteMarkByName::TextBufferClassself=>self->MarkName-- ^ @name@ - name of a mark in @buffer@->IO()textBufferDeleteMarkByNameselfname=withUTFStringname$\namePtr->(\(TextBufferarg1)arg2->withForeignPtrarg1$\argPtr1->gtk_text_buffer_delete_mark_by_nameargPtr1arg2){-# LINE 691 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)namePtr-- | Returns the mark named @name@ in the buffer, or @Nothing@ if no such-- mark exists in the buffer.--textBufferGetMark::TextBufferClassself=>self->MarkName-- ^ @name@ - a mark name->IO(MaybeTextMark)-- ^ returns a 'TextMark', or @Nothing@textBufferGetMarkselfname=maybeNull(makeNewGObjectmkTextMark)$withUTFStringname$\namePtr->(\(TextBufferarg1)arg2->withForeignPtrarg1$\argPtr1->gtk_text_buffer_get_markargPtr1arg2){-# LINE 704 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)namePtr-- | Returns the mark that represents the cursor (insertion point). Equivalent-- to calling @liftM fromJust $ textBufferGetMark \"insert\"@, but very-- slightly more efficient, and involves less typing.--textBufferGetInsert::TextBufferClassself=>self->IOTextMarktextBufferGetInsertself=makeNewGObjectmkTextMark$(\(TextBufferarg1)->withForeignPtrarg1$\argPtr1->gtk_text_buffer_get_insertargPtr1){-# LINE 715 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)-- | Returns the mark that represents the selection bound. Equivalent to-- calling @liftM fromJust $ textBufferGetMark \"selection_bound\"@, but-- very slightly more efficient, and involves less typing.---- The currently-selected text in @buffer@ is the region between the-- \"selection_bound\" and \"insert\" marks. If \"selection_bound\" and-- \"insert\" are in the same place, then there is no current selection.-- 'textBufferGetSelectionBounds' is another convenient function for handling-- the selection, if you just want to know whether there's a selection and what-- its bounds are.--textBufferGetSelectionBound::TextBufferClassself=>self->IOTextMarktextBufferGetSelectionBoundself=makeNewGObjectmkTextMark$(\(TextBufferarg1)->withForeignPtrarg1$\argPtr1->gtk_text_buffer_get_selection_boundargPtr1){-# LINE 732 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)-- | This function moves the \"insert\" and \"selection_bound\" marks-- simultaneously. If you move them to the same place in two steps with-- 'textBufferMoveMark', you will temporarily select a region in between their-- old and new locations, which can be pretty inefficient since the-- temporarily-selected region will force stuff to be recalculated. This-- function moves them as a unit, which can be optimized.--textBufferPlaceCursor::TextBufferClassself=>self->TextIter-- ^ @where@ - where to put the cursor->IO()textBufferPlaceCursorselfwhere_=(\(TextBufferarg1)(TextIterarg2)->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->gtk_text_buffer_place_cursorargPtr1argPtr2){-# LINE 746 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)where_-- | Emits the 'applyTag' signal on the buffer. The default handler for the-- signal applies @tag@ to the given range. @start@ and @end@ do not have to be-- in order.--textBufferApplyTag::(TextBufferClassself,TextTagClasstag)=>self->tag-- ^ @tag@ - a 'TextTag'->TextIter-- ^ @start@ - one bound of range to be tagged->TextIter-- ^ @end@ - other bound of range to be tagged->IO()textBufferApplyTagselftagstartend=(\(TextBufferarg1)(TextTagarg2)(TextIterarg3)(TextIterarg4)->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->withForeignPtrarg3$\argPtr3->withForeignPtrarg4$\argPtr4->gtk_text_buffer_apply_tagargPtr1argPtr2argPtr3argPtr4){-# LINE 760 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)(toTextTagtag)startend-- | Emits the 'removeTag' signal. The default handler for the signal-- removes all occurrences of @tag@ from the given range. @start@ and @end@-- don't have to be in order.--textBufferRemoveTag::(TextBufferClassself,TextTagClasstag)=>self->tag-- ^ @tag@ - a 'TextTag'->TextIter-- ^ @start@ - one bound of range to be untagged->TextIter-- ^ @end@ - other bound of range to be untagged->IO()textBufferRemoveTagselftagstartend=(\(TextBufferarg1)(TextTagarg2)(TextIterarg3)(TextIterarg4)->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->withForeignPtrarg3$\argPtr3->withForeignPtrarg4$\argPtr4->gtk_text_buffer_remove_tagargPtr1argPtr2argPtr3argPtr4){-# LINE 776 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)(toTextTagtag)startend-- | Calls 'Graphics.UI.Gtk.Multiline.TextTagTable.textTagTableLookup' on the-- buffer's tag table to get a 'TextTag', then calls 'textBufferApplyTag'.--textBufferApplyTagByName::TextBufferClassself=>self->TagName-- ^ @name@ - name of a named 'TextTag'->TextIter-- ^ @start@ - one bound of range to be tagged->TextIter-- ^ @end@ - other bound of range to be tagged->IO()textBufferApplyTagByNameselfnamestartend=withUTFStringname$\namePtr->(\(TextBufferarg1)arg2(TextIterarg3)(TextIterarg4)->withForeignPtrarg1$\argPtr1->withForeignPtrarg3$\argPtr3->withForeignPtrarg4$\argPtr4->gtk_text_buffer_apply_tag_by_nameargPtr1arg2argPtr3argPtr4){-# LINE 792 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)namePtrstartend-- | Calls 'Graphics.UI.Gtk.Multiline.TextTagTable.textTagTableLookup' on the-- buffer's tag table to get a 'TextTag', then calls 'textBufferRemoveTag'.--textBufferRemoveTagByName::TextBufferClassself=>self->TagName-- ^ @name@ - name of a 'TextTag'->TextIter-- ^ @start@ - one bound of range to be untagged->TextIter-- ^ @end@ - other bound of range to be untagged->IO()textBufferRemoveTagByNameselfnamestartend=withUTFStringname$\namePtr->(\(TextBufferarg1)arg2(TextIterarg3)(TextIterarg4)->withForeignPtrarg1$\argPtr1->withForeignPtrarg3$\argPtr3->withForeignPtrarg4$\argPtr4->gtk_text_buffer_remove_tag_by_nameargPtr1arg2argPtr3argPtr4){-# LINE 808 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)namePtrstartend-- | Removes all tags in the range between @start@ and @end@. Be careful with-- this function; it could remove tags added in code unrelated to the code-- you\'re currently writing. That is, using this function is probably a bad-- idea if you have two or more unrelated code sections that add tags.--textBufferRemoveAllTags::TextBufferClassself=>self->TextIter-- ^ @start@ - one bound of range to be untagged->TextIter-- ^ @end@ - other bound of range to be untagged->IO()textBufferRemoveAllTagsselfstartend=(\(TextBufferarg1)(TextIterarg2)(TextIterarg3)->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->withForeignPtrarg3$\argPtr3->gtk_text_buffer_remove_all_tagsargPtr1argPtr2argPtr3){-# LINE 824 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)startend-- | Obtains an iterator pointing to @charOffset@ within the given line. The-- @charOffset@ must exist, offsets off the end of the line are not allowed.--textBufferGetIterAtLineOffset::TextBufferClassself=>self->Int-- ^ @lineNumber@ - line number counting from 0->Int-- ^ @charOffset@ - char offset from start of line->IOTextItertextBufferGetIterAtLineOffsetselflineNumbercharOffset=doiter<-makeEmptyTextIter(\(TextBufferarg1)(TextIterarg2)arg3arg4->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->gtk_text_buffer_get_iter_at_line_offsetargPtr1argPtr2arg3arg4){-# LINE 838 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)iter(fromIntegrallineNumber)(fromIntegralcharOffset)returniter-- | Creates an iterator pointing to a position @charOffset@ chars from the-- start of the entire buffer. If @charOffset@ is -1 or greater than the number-- of characters in the buffer, the end iterator is returned, that is the-- iterator one past the last valid character in the buffer.--textBufferGetIterAtOffset::TextBufferClassself=>self->Int-- ^ @charOffset@ - char offset from start of buffer (counting-- from 0) or -1->IOTextItertextBufferGetIterAtOffsetselfcharOffset=doiter<-makeEmptyTextIter(\(TextBufferarg1)(TextIterarg2)arg3->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->gtk_text_buffer_get_iter_at_offsetargPtr1argPtr2arg3){-# LINE 856 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)iter(fromIntegralcharOffset)returniter-- | Create an iterator at a specific line.--textBufferGetIterAtLine::TextBufferClassself=>self->Int-- ^ @lineNumber@ - line number counting from 0->IOTextItertextBufferGetIterAtLineselflineNumber=doiter<-makeEmptyTextIter(\(TextBufferarg1)(TextIterarg2)arg3->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->gtk_text_buffer_get_iter_at_lineargPtr1argPtr2arg3){-# LINE 869 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)iter(fromIntegrallineNumber)returniter-- | Create an iterator from a mark.--textBufferGetIterAtMark::(TextBufferClassself,TextMarkClassmark)=>self->mark-- ^ @mark@ - a 'TextMark' in the buffer->IOTextItertextBufferGetIterAtMarkselfmark=doiter<-makeEmptyTextIter(\(TextBufferarg1)(TextIterarg2)(TextMarkarg3)->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->withForeignPtrarg3$\argPtr3->gtk_text_buffer_get_iter_at_markargPtr1argPtr2argPtr3){-# LINE 883 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)iter(toTextMarkmark)returniter-- | Create an iterator at the first position in the text buffer. This is-- the same as using 'textBufferGetIterAtOffset' to get the iter at character-- offset 0.--textBufferGetStartIter::TextBufferClassself=>self->IOTextItertextBufferGetStartIterself=doiter<-makeEmptyTextIter(\(TextBufferarg1)(TextIterarg2)->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->gtk_text_buffer_get_start_iterargPtr1argPtr2){-# LINE 896 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)iterreturniter-- | Returns the \"end iterator,\" one past the last valid-- character in the text buffer. If dereferenced with-- 'Graphics.UI.Gtk.Multiline.TextIter.textIterGetChar', the-- end iterator has a character value of 0. The entire buffer lies in the range-- from the first position in the buffer (call 'textBufferGetStartIter' to get-- character position 0) to the end iterator.--textBufferGetEndIter::TextBufferClassself=>self->IOTextItertextBufferGetEndIterself=doiter<-makeEmptyTextIter(\(TextBufferarg1)(TextIterarg2)->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->gtk_text_buffer_get_end_iterargPtr1argPtr2){-# LINE 911 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)iterreturniter-- | Indicates whether the buffer has been modified since the last call to-- 'textBufferSetModified' set the modification flag to @False@. Used for-- example to enable a \"save\" function in a text editor.---- It is often more convenient to use 'onModifiedChanged'.--textBufferGetModified::TextBufferClassself=>self->IOBool-- ^ returns @True@ if the buffer has been modifiedtextBufferGetModifiedself=liftMtoBool$(\(TextBufferarg1)->withForeignPtrarg1$\argPtr1->gtk_text_buffer_get_modifiedargPtr1){-# LINE 926 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)-- | Used to keep track of whether the buffer has been modified since the last-- time it was saved. Whenever the buffer is saved to disk, call-- @'textBufferSetModified' buffer False@. When the buffer is-- modified, it will automatically toggled on the modified bit again. When the-- modified bit flips, the buffer emits a 'modifiedChanged' signal.--textBufferSetModified::TextBufferClassself=>self->Bool->IO()textBufferSetModifiedselfsetting=(\(TextBufferarg1)arg2->withForeignPtrarg1$\argPtr1->gtk_text_buffer_set_modifiedargPtr1arg2){-# LINE 937 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)(fromBoolsetting)-- | Deletes the range between the \"insert\" and \"selection_bound\" marks,-- that is, the currently-selected text. If @interactive@ is @True@, the-- editability of the selection will be considered (users can't delete-- uneditable text).--textBufferDeleteSelection::TextBufferClassself=>self->Bool-- ^ @interactive@ - whether the deletion is caused by user-- interaction->Bool-- ^ @defaultEditable@ - whether the buffer is editable by default->IOBool-- ^ returns whether there was a non-empty selection to deletetextBufferDeleteSelectionselfinteractivedefaultEditable=liftMtoBool$(\(TextBufferarg1)arg2arg3->withForeignPtrarg1$\argPtr1->gtk_text_buffer_delete_selectionargPtr1arg2arg3){-# LINE 953 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)(fromBoolinteractive)(fromBooldefaultEditable)-- | Check if a selection exists.--textBufferHasSelection::TextBufferClassself=>self->IOBooltextBufferHasSelectionself=liftMtoBool$(\(TextBufferarg1)(TextIterarg2)(TextIterarg3)->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->withForeignPtrarg3$\argPtr3->gtk_text_buffer_get_selection_boundsargPtr1argPtr2argPtr3){-# LINE 963 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)(TextIternullForeignPtr)(TextIternullForeignPtr)-- | Returns the bounds of the selection (if the selection has length 0, then-- @start@ and @end@ will be the same). @start@ and @end@ will be in ascending-- order.--textBufferGetSelectionBounds::TextBufferClassself=>self->IO(TextIter,TextIter)-- ^ @(start, end)@ returns the selection start and-- end iteratorstextBufferGetSelectionBoundsself=dostart<-makeEmptyTextIterend<-makeEmptyTextIter(\(TextBufferarg1)(TextIterarg2)(TextIterarg3)->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->withForeignPtrarg3$\argPtr3->gtk_text_buffer_get_selection_boundsargPtr1argPtr2argPtr3){-# LINE 978 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)startendreturn(start,end)-- | Called to indicate that the buffer operations between here and a call to-- 'textBufferEndUserAction' are part of a single user-visible operation. The-- operations between 'textBufferBeginUserAction' and 'textBufferEndUserAction'-- can then be grouped when creating an undo stack. 'TextBuffer' maintains a-- count of calls to 'textBufferBeginUserAction' that have not been closed with-- a call to 'textBufferEndUserAction', and emits the 'beginUserAction' and-- 'endUserAction' signals only for the outermost pair of calls. This-- allows you to build user actions from other user actions.---- The \"interactive\" buffer mutation functions, such as-- 'textBufferInsertInteractive', automatically call begin\/end user action-- around the buffer operations they perform, so there's no need to add extra-- calls if you user action consists solely of a single call to one of those-- functions.--textBufferBeginUserAction::TextBufferClassself=>self->IO()textBufferBeginUserActionself=(\(TextBufferarg1)->withForeignPtrarg1$\argPtr1->gtk_text_buffer_begin_user_actionargPtr1){-# LINE 1001 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)-- | Should be paired with a call to 'textBufferBeginUserAction'. See that-- function for a full explanation.--textBufferEndUserAction::TextBufferClassself=>self->IO()textBufferEndUserActionself=(\(TextBufferarg1)->withForeignPtrarg1$\argPtr1->gtk_text_buffer_end_user_actionargPtr1){-# LINE 1009 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)-- | Performs the appropriate action as if the user hit the delete key with-- the cursor at the position specified by @iter@. In the normal case a single-- character will be deleted, but when combining accents are involved, more-- than one character can be deleted, and when precomposed character and accent-- combinations are involved, less than one character will be deleted.---- Because the buffer is modified, all outstanding iterators become invalid-- after calling this function; however, the @iter@ will be re-initialized to-- point to the location where text was deleted.---- * Available since Gtk+ version 2.6--textBufferBackspace::TextBufferClassself=>self->TextIter-- ^ @iter@ - a position in @buffer@->Bool-- ^ @interactive@ - whether the deletion is caused by user-- interaction->Bool-- ^ @defaultEditable@ - whether the buffer is editable by-- default->IOBool-- ^ returns @True@ if the buffer was modifiedtextBufferBackspaceselfiterinteractivedefaultEditable=liftMtoBool$(\(TextBufferarg1)(TextIterarg2)arg3arg4->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->gtk_text_buffer_backspaceargPtr1argPtr2arg3arg4){-# LINE 1034 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)iter(fromBoolinteractive)(fromBooldefaultEditable)-- | Inserts a child widget anchor into the text buffer at @iter@. The anchor-- will be counted as one character in character counts, and when obtaining the-- buffer contents as a string, will be represented by the Unicode \"object-- replacement character\" @(chr 0xFFFC)@. Note that the \"slice\" variants for-- obtaining portions of the buffer as a string include this character for-- child anchors, but the \"text\" variants do not. e.g. see-- 'textBufferGetSlice' and 'textBufferGetText'. Consider-- 'textBufferCreateChildAnchor' as a more convenient alternative to this-- function.--textBufferInsertChildAnchor::TextBufferClassself=>self->TextIter-- ^ @iter@ - location to insert the anchor->TextChildAnchor-- ^ @anchor@ - a 'TextChildAnchor'->IO()textBufferInsertChildAnchorselfiteranchor=(\(TextBufferarg1)(TextIterarg2)(TextChildAnchorarg3)->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->withForeignPtrarg3$\argPtr3->gtk_text_buffer_insert_child_anchorargPtr1argPtr2argPtr3){-# LINE 1056 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)iteranchor-- | This is a convenience function which simply creates a child anchor with-- 'Graphics.UI.Gtk.Multiline.TextView.textBufferChildAnchorNew' and inserts-- it into the buffer with 'textBufferInsertChildAnchor'.--textBufferCreateChildAnchor::TextBufferClassself=>self->TextIter-- ^ @iter@ - location in the buffer->IOTextChildAnchor-- ^ returns the created child anchortextBufferCreateChildAnchorselfiter=makeNewGObjectmkTextChildAnchor$(\(TextBufferarg1)(TextIterarg2)->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->gtk_text_buffer_create_child_anchorargPtr1argPtr2){-# LINE 1070 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)iter-- | This function moves the \"insert\" and \"selection_bound\" marks-- simultaneously. If you move them in two steps with 'textBufferMoveMark', you-- will temporarily select a region in between their old and new locations,-- which can be pretty inefficient since the temporarily-selected region will-- force stuff to be recalculated. This function moves them as a unit, which-- can be optimized.---- * Available since Gtk+ version 2.4--textBufferSelectRange::TextBufferClassself=>self->TextIter-- ^ @ins@ - where to put the \"insert\" mark->TextIter-- ^ @bound@ - where to put the \"selection_bound\" mark->IO()textBufferSelectRangeselfinsbound=(\(TextBufferarg1)(TextIterarg2)(TextIterarg3)->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->withForeignPtrarg3$\argPtr3->gtk_text_buffer_select_rangeargPtr1argPtr2argPtr3){-# LINE 1089 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)insbound-- | Obtains the location of @anchor@ within @buffer@.--textBufferGetIterAtChildAnchor::TextBufferClassself=>self->TextIter-- ^ @iter@ - an iterator to be initialized->TextChildAnchor-- ^ @anchor@ - a child anchor that appears in @buffer@->IO()textBufferGetIterAtChildAnchorselfiteranchor=(\(TextBufferarg1)(TextIterarg2)(TextChildAnchorarg3)->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->withForeignPtrarg3$\argPtr3->gtk_text_buffer_get_iter_at_child_anchorargPtr1argPtr2argPtr3){-# LINE 1102 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)iteranchor-- | Retrieves the first and last iterators in the buffer, i.e. the entire-- buffer lies within the range @[start,end)@.--textBufferGetBounds::TextBufferClassself=>self->IO(TextIter,TextIter)-- ^ return the first and last iterators in the buffertextBufferGetBoundsself=dostart<-makeEmptyTextIterend<-makeEmptyTextIter(\(TextBufferarg1)(TextIterarg2)(TextIterarg3)->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->withForeignPtrarg3$\argPtr3->gtk_text_buffer_get_boundsargPtr1argPtr2argPtr3){-# LINE 1115 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)startendreturn(start,end)-- | Pastes the contents of a clipboard at the given @location@.-- (Note: pasting is asynchronous, that is,-- we'll ask for the paste data and return, and at some point later-- after the main loop runs, the paste data will be inserted.)textBufferPasteClipboard::TextBufferClassself=>self->Clipboard-- ^ @clipboard@ - the GtkClipboard to paste from->TextIter-- ^ @location@ - location to insert pasted text->Bool-- ^ @defaultEditable@ - whether the buffer is editable by default->IO()textBufferPasteClipboardselfclipboardoverrideLocationdefaultEditable=(\(TextBufferarg1)(Clipboardarg2)(TextIterarg3)arg4->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->withForeignPtrarg3$\argPtr3->gtk_text_buffer_paste_clipboardargPtr1argPtr2argPtr3arg4){-# LINE 1132 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)clipboardoverrideLocation(fromBooldefaultEditable)-- | Pastes the contents of a clipboard at the insertion point.-- (Note: pasting is asynchronous, that is,-- we'll ask for the paste data and return, and at some point later-- after the main loop runs, the paste data will be inserted.)textBufferPasteClipboardAtCursor::TextBufferClassself=>self->Clipboard-- ^ @clipboard@ - the GtkClipboard to paste from->Bool-- ^ @defaultEditable@ - whether the buffer is editable by default->IO()textBufferPasteClipboardAtCursorselfclipboarddefaultEditable=(\(TextBufferarg1)(Clipboardarg2)(TextIterarg3)arg4->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->withForeignPtrarg3$\argPtr3->gtk_text_buffer_paste_clipboardargPtr1argPtr2argPtr3arg4){-# LINE 1147 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)clipboard(TextIternullForeignPtr)(fromBooldefaultEditable)-- | Copies the currently-selected text to a clipboard.textBufferCopyClipboard::TextBufferClassself=>self->Clipboard-- ^ @clipboard@ - the GtkClipboard object to copy to->IO()textBufferCopyClipboardselfclipboard=(\(TextBufferarg1)(Clipboardarg2)->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->gtk_text_buffer_copy_clipboardargPtr1argPtr2){-# LINE 1158 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)clipboard-- | Copies the currently-selected text to a clipboard,-- then deletes said text if it's editable.textBufferCutClipboard::TextBufferClassself=>self->Clipboard-- ^ @clipboard@ - the GtkClipboard object to cut to->Bool-- ^ @defaultEditable@ - whether the buffer is editable by default->IO()textBufferCutClipboardselfclipboarddefaultEditable=(\(TextBufferarg1)(Clipboardarg2)arg3->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->gtk_text_buffer_cut_clipboardargPtr1argPtr2arg3){-# LINE 1169 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}(toTextBufferself)clipboard(fromBooldefaultEditable)-- | Adds clipboard to the list of clipboards in which the selection contents of @self@ are available.-- In most cases, @clipboard@ will be the 'Clipboard' of type 'selectionPrimary' for a view of @self@.--textBufferAddSelectionClipboard::TextBufferClassself=>self->Clipboard-- ^ @clipboard@ - the 'Clipboard' object to add->IO()textBufferAddSelectionClipboardselfclipboard=(\(TextBufferarg1)(Clipboardarg2)->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->gtk_text_buffer_add_selection_clipboardargPtr1argPtr2)(toTextBufferself)clipboard-- | Removes a 'Clipboard' added with 'textBufferAddSelectionClipboard'.--textBufferRemoveSelectionClipboard::TextBufferClassself=>self->Clipboard-- ^ @clipboard@ - the 'Clipboard' object to remove->IO()textBufferRemoveSelectionClipboardselfclipboard=(\(TextBufferarg1)(Clipboardarg2)->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->gtk_text_buffer_remove_selection_clipboardargPtr1argPtr2)(toTextBufferself)clipboard---------------------- Attributes-- | Text Tag Table.--textBufferTagTable::(TextBufferClassself,TextTagTableClasstextTagTable)=>ReadWriteAttrselfTextTagTabletextTagTabletextBufferTagTable=newAttrFromObjectProperty"tag-table"gtk_text_tag_table_get_type{-# LINE 1200 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}-- | The text content of the buffer. Without child widgets and images, see-- 'textBufferGetText' for more information.---- Default value: \"\"--textBufferText::TextBufferClassself=>AttrselfStringtextBufferText=newAttrFromStringProperty"text"-- | The \'modified\' property. See 'textBufferGetModified' and-- 'textBufferSetModified'--textBufferModified::TextBufferClassself=>AttrselfBooltextBufferModified=newAttrtextBufferGetModifiedtextBufferSetModified---------------------- Signals-- | A 'TextTag' was applied to a region of text.--applyTag::TextBufferClassself=>Signalself(TextTag->TextIter->TextIter->IO())applyTag=Signal(connect_OBJECT_BOXED_BOXED__NONE"apply-tag"mkTextIterCopymkTextIterCopy)-- | A new atomic user action is started.---- * Together with 'endUserAction' these signals can be-- used to build an undo stack.--beginUserAction::TextBufferClassself=>Signalself(IO())beginUserAction=Signal(connect_NONE__NONE"begin-user-action")-- | Emitted when the contents of the buffer change.--bufferChanged::TextBufferClassself=>Signalself(IO())bufferChanged=Signal(connect_NONE__NONE"changed")-- | A range of text is about to be deleted.--deleteRange::TextBufferClassself=>Signalself(TextIter->TextIter->IO())deleteRange=Signal(connect_BOXED_BOXED__NONE"delete-range"mkTextIterCopymkTextIterCopy)-- | An atomic action has ended.---- * see 'beginUserAction'--endUserAction::TextBufferClassself=>Signalself(IO())endUserAction=Signal(connect_NONE__NONE"end-user-action")-- | A 'Pixbuf' is inserted into the buffer.--insertPixbuf::TextBufferClassself=>Signalself(TextIter->Pixbuf->IO())insertPixbuf=Signal(connect_BOXED_OBJECT__NONE"insert-pixbuf"mkTextIterCopy)-- | The 'insertChildAnchor' signal is emitted to insert a 'TextChildAnchor' in a 'TextBuffer'.-- Insertion actually occurs in the default handler.--insertChildAnchor::TextBufferClassself=>Signalself(TextIter->TextChildAnchor->IO())insertChildAnchor=Signal(connect_BOXED_OBJECT__NONE"insert-child-anchor"mkTextIterCopy)-- | Some text was inserted.--bufferInsertText::TextBufferClassself=>Signalself(TextIter->String->IO())bufferInsertText=Signal$\afterobjhandler->connect_BOXED_PTR_INT__NONE"insert-text"mkTextIterCopyafterobj(\iterstrPtrstrLen->peekUTFStringLen(strPtr,strLen)>>=handleriter)-- | A 'TextMark' within the buffer was deleted.--markDeleted::TextBufferClassself=>Signalself(TextMark->IO())markDeleted=Signal(connect_OBJECT__NONE"mark-deleted")-- | A 'TextMark' was inserted into the buffer.--markSet::TextBufferClassself=>Signalself(TextIter->TextMark->IO())markSet=Signal(connect_BOXED_OBJECT__NONE"mark-set"mkTextIterCopy)modifiedChanged::TextBufferClassself=>Signalself(IO())modifiedChanged=Signal(connect_NONE__NONE"modified-changed")-- | The 'pasteDone' signal is emitted after paste operation has been completed.-- This is useful to properly scroll the view to the end of the pasted text.-- See 'textBufferPasteClipboard' for more details.pasteDone::TextBufferClassself=>Signalself(Clipboard->IO())pasteDone=Signal(connect_OBJECT__NONE"paste-done")-- | The textbuffer has changed.--removeTag::TextBufferClassself=>Signalself(TextTag->TextIter->TextIter->IO())removeTag=Signal(connect_OBJECT_BOXED_BOXED__NONE"remove-tag"mkTextIterCopymkTextIterCopy)---------------------- Deprecated Signals and Events-- | A 'TextTag' was applied to a region of text.--onApplyTag,afterApplyTag::TextBufferClassself=>self->(TextTag->TextIter->TextIter->IO())->IO(ConnectIdself)onApplyTag=connect_OBJECT_BOXED_BOXED__NONE"apply-tag"mkTextIterCopymkTextIterCopyFalseafterApplyTag=connect_OBJECT_BOXED_BOXED__NONE"apply-tag"mkTextIterCopymkTextIterCopyTrue-- | A new atomic user action is started.---- * Together with 'onEndUserAction' these signals can be-- used to build an undo stack.--onBeginUserAction,afterBeginUserAction::TextBufferClassself=>self->IO()->IO(ConnectIdself)onBeginUserAction=connect_NONE__NONE"begin-user-action"FalseafterBeginUserAction=connect_NONE__NONE"begin-user-action"True--- renamed from Changed to BufferChanged, since the former conflicts with TreeSelection-- | Emitted when the contents of the buffer change.--onBufferChanged,afterBufferChanged::TextBufferClassself=>self->IO()->IO(ConnectIdself)onBufferChanged=connect_NONE__NONE"changed"FalseafterBufferChanged=connect_NONE__NONE"changed"True-- | A range of text is about to be deleted.--onDeleteRange,afterDeleteRange::TextBufferClassself=>self->(TextIter->TextIter->IO())->IO(ConnectIdself)onDeleteRange=connect_BOXED_BOXED__NONE"delete-range"mkTextIterCopymkTextIterCopyFalseafterDeleteRange=connect_BOXED_BOXED__NONE"delete-range"mkTextIterCopymkTextIterCopyTrue-- | An atomic action has ended.---- * see 'onBeginUserAction'--onEndUserAction,afterEndUserAction::TextBufferClassself=>self->IO()->IO(ConnectIdself)onEndUserAction=connect_NONE__NONE"end-user-action"FalseafterEndUserAction=connect_NONE__NONE"end-user-action"True-- | A 'Pixbuf' is inserted into the-- buffer.--onInsertPixbuf,afterInsertPixbuf::TextBufferClassself=>self->(TextIter->Pixbuf->IO())->IO(ConnectIdself)onInsertPixbuf=connect_BOXED_OBJECT__NONE"insert-pixbuf"mkTextIterCopyFalseafterInsertPixbuf=connect_BOXED_OBJECT__NONE"insert-pixbuf"mkTextIterCopyTrue-- | Some text was inserted.--onBufferInsertText,afterBufferInsertText::TextBufferClassself=>self->(TextIter->String->IO())->IO(ConnectIdself)onBufferInsertTextselfuser=connect_BOXED_PTR_INT__NONE"insert-text"mkTextIterCopyFalseself$\iterstrPstrLen->dostr<-peekUTFStringLen(strP,strLen)useriterstrafterBufferInsertTextselfuser=connect_BOXED_PTR_INT__NONE"insert-text"mkTextIterCopyTrueself$\iterstrPstrLen->dostr<-peekUTFStringLen(strP,strLen)useriterstr-- | A 'TextMark' within the buffer was deleted.--onMarkDeleted,afterMarkDeleted::TextBufferClassself=>self->(TextMark->IO())->IO(ConnectIdself)onMarkDeleted=connect_OBJECT__NONE"mark-deleted"FalseafterMarkDeleted=connect_OBJECT__NONE"mark-deleted"True-- | A 'TextMark' was inserted into the buffer.--onMarkSet,afterMarkSet::TextBufferClassself=>self->(TextIter->TextMark->IO())->IO(ConnectIdself)onMarkSet=connect_BOXED_OBJECT__NONE"mark-set"mkTextIterCopyFalseafterMarkSet=connect_BOXED_OBJECT__NONE"mark-set"mkTextIterCopyTrue-- | The textbuffer has changed.--onModifiedChanged,afterModifiedChanged::TextBufferClassself=>self->IO()->IO(ConnectIdself)onModifiedChanged=connect_NONE__NONE"modified-changed"FalseafterModifiedChanged=connect_NONE__NONE"modified-changed"True-- | A 'TextTag' was removed.--onRemoveTag,afterRemoveTag::TextBufferClassself=>self->(TextTag->TextIter->TextIter->IO())->IO(ConnectIdself)onRemoveTag=connect_OBJECT_BOXED_BOXED__NONE"remove-tag"mkTextIterCopymkTextIterCopyFalseafterRemoveTag=connect_OBJECT_BOXED_BOXED__NONE"remove-tag"mkTextIterCopymkTextIterCopyTrueforeignimportccallunsafe"gtk_text_buffer_new"gtk_text_buffer_new::((PtrTextTagTable)->(IO(PtrTextBuffer)))foreignimportccallunsafe"gtk_text_buffer_get_line_count"gtk_text_buffer_get_line_count::((PtrTextBuffer)->(IOCInt))foreignimportccallunsafe"gtk_text_buffer_get_char_count"gtk_text_buffer_get_char_count::((PtrTextBuffer)->(IOCInt))foreignimportccallunsafe"gtk_text_buffer_get_tag_table"gtk_text_buffer_get_tag_table::((PtrTextBuffer)->(IO(PtrTextTagTable)))foreignimportccallsafe"gtk_text_buffer_insert"gtk_text_buffer_insert::((PtrTextBuffer)->((PtrTextIter)->((PtrCChar)->(CInt->(IO())))))foreignimportccallsafe"gtk_text_buffer_insert_at_cursor"gtk_text_buffer_insert_at_cursor::((PtrTextBuffer)->((PtrCChar)->(CInt->(IO()))))foreignimportccallsafe"gtk_text_buffer_insert_interactive"gtk_text_buffer_insert_interactive::((PtrTextBuffer)->((PtrTextIter)->((PtrCChar)->(CInt->(CInt->(IOCInt))))))foreignimportccallsafe"gtk_text_buffer_insert_interactive_at_cursor"gtk_text_buffer_insert_interactive_at_cursor::((PtrTextBuffer)->((PtrCChar)->(CInt->(CInt->(IOCInt)))))foreignimportccallsafe"gtk_text_buffer_insert_range"gtk_text_buffer_insert_range::((PtrTextBuffer)->((PtrTextIter)->((PtrTextIter)->((PtrTextIter)->(IO())))))foreignimportccallsafe"gtk_text_buffer_insert_range_interactive"gtk_text_buffer_insert_range_interactive::((PtrTextBuffer)->((PtrTextIter)->((PtrTextIter)->((PtrTextIter)->(CInt->(IOCInt))))))foreignimportccallsafe"gtk_text_buffer_delete"gtk_text_buffer_delete::((PtrTextBuffer)->((PtrTextIter)->((PtrTextIter)->(IO()))))foreignimportccallsafe"gtk_text_buffer_delete_interactive"gtk_text_buffer_delete_interactive::((PtrTextBuffer)->((PtrTextIter)->((PtrTextIter)->(CInt->(IOCInt)))))foreignimportccallsafe"gtk_text_buffer_set_text"gtk_text_buffer_set_text::((PtrTextBuffer)->((PtrCChar)->(CInt->(IO()))))foreignimportccallunsafe"gtk_text_buffer_get_text"gtk_text_buffer_get_text::((PtrTextBuffer)->((PtrTextIter)->((PtrTextIter)->(CInt->(IO(PtrCChar))))))foreignimportccallunsafe"gtk_text_buffer_get_slice"gtk_text_buffer_get_slice::((PtrTextBuffer)->((PtrTextIter)->((PtrTextIter)->(CInt->(IO(PtrCChar))))))foreignimportccallunsafe"g_free"g_free::((Ptr())->(IO()))foreignimportccallsafe"gtk_text_buffer_insert_pixbuf"gtk_text_buffer_insert_pixbuf::((PtrTextBuffer)->((PtrTextIter)->((PtrPixbuf)->(IO()))))foreignimportccallsafe"gtk_text_buffer_create_mark"gtk_text_buffer_create_mark::((PtrTextBuffer)->((PtrCChar)->((PtrTextIter)->(CInt->(IO(PtrTextMark))))))foreignimportccallsafe"gtk_text_buffer_add_mark"gtk_text_buffer_add_mark::((PtrTextBuffer)->((PtrTextMark)->((PtrTextIter)->(IO()))))foreignimportccallsafe"gtk_text_buffer_move_mark"gtk_text_buffer_move_mark::((PtrTextBuffer)->((PtrTextMark)->((PtrTextIter)->(IO()))))foreignimportccallsafe"gtk_text_buffer_move_mark_by_name"gtk_text_buffer_move_mark_by_name::((PtrTextBuffer)->((PtrCChar)->((PtrTextIter)->(IO()))))foreignimportccallsafe"gtk_text_buffer_delete_mark"gtk_text_buffer_delete_mark::((PtrTextBuffer)->((PtrTextMark)->(IO())))foreignimportccallsafe"gtk_text_buffer_delete_mark_by_name"gtk_text_buffer_delete_mark_by_name::((PtrTextBuffer)->((PtrCChar)->(IO())))foreignimportccallunsafe"gtk_text_buffer_get_mark"gtk_text_buffer_get_mark::((PtrTextBuffer)->((PtrCChar)->(IO(PtrTextMark))))foreignimportccallunsafe"gtk_text_buffer_get_insert"gtk_text_buffer_get_insert::((PtrTextBuffer)->(IO(PtrTextMark)))foreignimportccallunsafe"gtk_text_buffer_get_selection_bound"gtk_text_buffer_get_selection_bound::((PtrTextBuffer)->(IO(PtrTextMark)))foreignimportccallsafe"gtk_text_buffer_place_cursor"gtk_text_buffer_place_cursor::((PtrTextBuffer)->((PtrTextIter)->(IO())))foreignimportccallsafe"gtk_text_buffer_apply_tag"gtk_text_buffer_apply_tag::((PtrTextBuffer)->((PtrTextTag)->((PtrTextIter)->((PtrTextIter)->(IO())))))foreignimportccallsafe"gtk_text_buffer_remove_tag"gtk_text_buffer_remove_tag::((PtrTextBuffer)->((PtrTextTag)->((PtrTextIter)->((PtrTextIter)->(IO())))))foreignimportccallsafe"gtk_text_buffer_apply_tag_by_name"gtk_text_buffer_apply_tag_by_name::((PtrTextBuffer)->((PtrCChar)->((PtrTextIter)->((PtrTextIter)->(IO())))))foreignimportccallsafe"gtk_text_buffer_remove_tag_by_name"gtk_text_buffer_remove_tag_by_name::((PtrTextBuffer)->((PtrCChar)->((PtrTextIter)->((PtrTextIter)->(IO())))))foreignimportccallsafe"gtk_text_buffer_remove_all_tags"gtk_text_buffer_remove_all_tags::((PtrTextBuffer)->((PtrTextIter)->((PtrTextIter)->(IO()))))foreignimportccallunsafe"gtk_text_buffer_get_iter_at_line_offset"gtk_text_buffer_get_iter_at_line_offset::((PtrTextBuffer)->((PtrTextIter)->(CInt->(CInt->(IO())))))foreignimportccallunsafe"gtk_text_buffer_get_iter_at_offset"gtk_text_buffer_get_iter_at_offset::((PtrTextBuffer)->((PtrTextIter)->(CInt->(IO()))))foreignimportccallunsafe"gtk_text_buffer_get_iter_at_line"gtk_text_buffer_get_iter_at_line::((PtrTextBuffer)->((PtrTextIter)->(CInt->(IO()))))foreignimportccallunsafe"gtk_text_buffer_get_iter_at_mark"gtk_text_buffer_get_iter_at_mark::((PtrTextBuffer)->((PtrTextIter)->((PtrTextMark)->(IO()))))foreignimportccallunsafe"gtk_text_buffer_get_start_iter"gtk_text_buffer_get_start_iter::((PtrTextBuffer)->((PtrTextIter)->(IO())))foreignimportccallunsafe"gtk_text_buffer_get_end_iter"gtk_text_buffer_get_end_iter::((PtrTextBuffer)->((PtrTextIter)->(IO())))foreignimportccallunsafe"gtk_text_buffer_get_modified"gtk_text_buffer_get_modified::((PtrTextBuffer)->(IOCInt))foreignimportccallsafe"gtk_text_buffer_set_modified"gtk_text_buffer_set_modified::((PtrTextBuffer)->(CInt->(IO())))foreignimportccallsafe"gtk_text_buffer_delete_selection"gtk_text_buffer_delete_selection::((PtrTextBuffer)->(CInt->(CInt->(IOCInt))))foreignimportccallunsafe"gtk_text_buffer_get_selection_bounds"gtk_text_buffer_get_selection_bounds::((PtrTextBuffer)->((PtrTextIter)->((PtrTextIter)->(IOCInt))))foreignimportccallsafe"gtk_text_buffer_begin_user_action"gtk_text_buffer_begin_user_action::((PtrTextBuffer)->(IO()))foreignimportccallsafe"gtk_text_buffer_end_user_action"gtk_text_buffer_end_user_action::((PtrTextBuffer)->(IO()))foreignimportccallsafe"gtk_text_buffer_backspace"gtk_text_buffer_backspace::((PtrTextBuffer)->((PtrTextIter)->(CInt->(CInt->(IOCInt)))))foreignimportccallsafe"gtk_text_buffer_insert_child_anchor"gtk_text_buffer_insert_child_anchor::((PtrTextBuffer)->((PtrTextIter)->((PtrTextChildAnchor)->(IO()))))foreignimportccallsafe"gtk_text_buffer_create_child_anchor"gtk_text_buffer_create_child_anchor::((PtrTextBuffer)->((PtrTextIter)->(IO(PtrTextChildAnchor))))foreignimportccallsafe"gtk_text_buffer_select_range"gtk_text_buffer_select_range::((PtrTextBuffer)->((PtrTextIter)->((PtrTextIter)->(IO()))))foreignimportccallsafe"gtk_text_buffer_get_iter_at_child_anchor"gtk_text_buffer_get_iter_at_child_anchor::((PtrTextBuffer)->((PtrTextIter)->((PtrTextChildAnchor)->(IO()))))foreignimportccallunsafe"gtk_text_buffer_get_bounds"gtk_text_buffer_get_bounds::((PtrTextBuffer)->((PtrTextIter)->((PtrTextIter)->(IO()))))foreignimportccallsafe"gtk_text_buffer_paste_clipboard"gtk_text_buffer_paste_clipboard::((PtrTextBuffer)->((PtrClipboard)->((PtrTextIter)->(CInt->(IO())))))foreignimportccallsafe"gtk_text_buffer_copy_clipboard"gtk_text_buffer_copy_clipboard::((PtrTextBuffer)->((PtrClipboard)->(IO())))foreignimportccallsafe"gtk_text_buffer_cut_clipboard"gtk_text_buffer_cut_clipboard::((PtrTextBuffer)->((PtrClipboard)->(CInt->(IO()))))foreignimportccallsafe"gtk_text_buffer_add_selection_clipboard"gtk_text_buffer_add_selection_clipboard::((PtrTextBuffer)->((PtrClipboard)->(IO())))foreignimportccallsafe"gtk_text_buffer_remove_selection_clipboard"gtk_text_buffer_remove_selection_clipboard::((PtrTextBuffer)->((PtrClipboard)->(IO())))foreignimportccallunsafe"gtk_text_tag_table_get_type"gtk_text_tag_table_get_type::CUInt