{-# 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'
--
module Graphics.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
-- @

-- * Types
  TextBuffer,
  TextBufferClass,
  castToTextBuffer, gTypeTextBuffer,
  toTextBuffer,

-- * Constructors
  textBufferNew,

-- * Methods
  textBufferGetLineCount,
  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,

-- * Attributes
  textBufferTagTable,

  textBufferText,

  textBufferModified,

-- * Signals
  applyTag,
  beginUserAction,
  bufferChanged,
  deleteRange,
  endUserAction,
  insertPixbuf,
  insertChildAnchor,
  bufferInsertText,
  markDeleted,
  markSet,
  modifiedChanged,
  pasteDone,
  removeTag,

-- * Deprecated

  onApplyTag,
  afterApplyTag,
  onBeginUserAction,
  afterBeginUserAction,
  onBufferChanged,
  afterBufferChanged,
  onDeleteRange,
  afterDeleteRange,
  onEndUserAction,
  afterEndUserAction,
  onInsertPixbuf,
  afterInsertPixbuf,
  onBufferInsertText,
  afterBufferInsertText,
  onMarkDeleted,
  afterMarkDeleted,
  onMarkSet,
  afterMarkSet,
  onModifiedChanged,
  afterModifiedChanged,
  onRemoveTag,
  afterRemoveTag

  ) where

import Control.Monad (liftM)

import System.Glib.FFI
import System.Glib.UTFString
import System.Glib.Attributes
import System.Glib.Properties
import Data.ByteString (ByteString)
import Data.ByteString.Unsafe (unsafeUseAsCStringLen, unsafePackCStringFinalizer)
import Graphics.UI.Gtk.Types
{-# LINE 207 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
import Graphics.UI.Gtk.Signals
{-# LINE 208 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
import Graphics.UI.Gtk.Multiline.Types
{-# LINE 209 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
import Graphics.UI.Gtk.Multiline.TextMark (MarkName)
import Graphics.UI.Gtk.Multiline.TextTag (TagName)


{-# LINE 213 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}

--------------------
-- Constructors

-- | Creates a new text buffer.
--
textBufferNew ::
    Maybe TextTagTable -- ^ @table@ - a tag table, or @Nothing@ to create a
                       -- new one
 -> IO TextBuffer
textBufferNew :: Maybe TextTagTable -> IO TextBuffer
textBufferNew Maybe TextTagTable
table =
  (ForeignPtr TextBuffer -> TextBuffer, FinalizerPtr TextBuffer)
-> IO (Ptr TextBuffer) -> IO TextBuffer
forall obj.
GObjectClass obj =>
(ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
wrapNewGObject (ForeignPtr TextBuffer -> TextBuffer, FinalizerPtr TextBuffer)
forall {a}. (ForeignPtr TextBuffer -> TextBuffer, FinalizerPtr a)
mkTextBuffer (IO (Ptr TextBuffer) -> IO TextBuffer)
-> IO (Ptr TextBuffer) -> IO TextBuffer
forall a b. (a -> b) -> a -> b
$
  (\(TextTagTable ForeignPtr TextTagTable
arg1) -> ForeignPtr TextTagTable
-> (Ptr TextTagTable -> IO (Ptr TextBuffer)) -> IO (Ptr TextBuffer)
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextTagTable
arg1 ((Ptr TextTagTable -> IO (Ptr TextBuffer)) -> IO (Ptr TextBuffer))
-> (Ptr TextTagTable -> IO (Ptr TextBuffer)) -> IO (Ptr TextBuffer)
forall a b. (a -> b) -> a -> b
$ \Ptr TextTagTable
argPtr1 ->Ptr TextTagTable -> IO (Ptr TextBuffer)
gtk_text_buffer_new Ptr TextTagTable
argPtr1)
{-# LINE 226 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (maybe (TextTagTable nullForeignPtr) toTextTagTable table)

--------------------
-- Methods

-- | Obtains the number of lines in the buffer. This value is cached, so the
-- function is very fast.
--
textBufferGetLineCount :: TextBufferClass self => self -> IO Int
textBufferGetLineCount :: forall self. TextBufferClass self => self -> IO Int
textBufferGetLineCount self
self =
  (CInt -> Int) -> IO CInt -> IO Int
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
liftM CInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral (IO CInt -> IO Int) -> IO CInt -> IO Int
forall a b. (a -> b) -> a -> b
$
  (\(TextBuffer ForeignPtr TextBuffer
arg1) -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO CInt) -> IO CInt
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO CInt) -> IO CInt)
-> (Ptr TextBuffer -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->Ptr TextBuffer -> IO CInt
gtk_text_buffer_get_line_count Ptr TextBuffer
argPtr1)
{-# LINE 238 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)

-- | Gets the number of characters in the buffer. The character count is
-- cached, so this function is very fast.
--
textBufferGetCharCount :: TextBufferClass self => self -> IO Int
textBufferGetCharCount :: forall self. TextBufferClass self => self -> IO Int
textBufferGetCharCount self
self =
  (CInt -> Int) -> IO CInt -> IO Int
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
liftM CInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral (IO CInt -> IO Int) -> IO CInt -> IO Int
forall a b. (a -> b) -> a -> b
$
  (\(TextBuffer ForeignPtr TextBuffer
arg1) -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO CInt) -> IO CInt
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO CInt) -> IO CInt)
-> (Ptr TextBuffer -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->Ptr TextBuffer -> IO CInt
gtk_text_buffer_get_char_count Ptr TextBuffer
argPtr1)
{-# LINE 247 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)

-- | Get the 'TextTagTable' associated with this buffer.
--
textBufferGetTagTable :: TextBufferClass self => self -> IO TextTagTable
textBufferGetTagTable :: forall self. TextBufferClass self => self -> IO TextTagTable
textBufferGetTagTable self
self =
  (ForeignPtr TextTagTable -> TextTagTable,
 FinalizerPtr TextTagTable)
-> IO (Ptr TextTagTable) -> IO TextTagTable
forall obj.
GObjectClass obj =>
(ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
makeNewGObject (ForeignPtr TextTagTable -> TextTagTable,
 FinalizerPtr TextTagTable)
forall {a}.
(ForeignPtr TextTagTable -> TextTagTable, FinalizerPtr a)
mkTextTagTable (IO (Ptr TextTagTable) -> IO TextTagTable)
-> IO (Ptr TextTagTable) -> IO TextTagTable
forall a b. (a -> b) -> a -> b
$
  (\(TextBuffer ForeignPtr TextBuffer
arg1) -> ForeignPtr TextBuffer
-> (Ptr TextBuffer -> IO (Ptr TextTagTable))
-> IO (Ptr TextTagTable)
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO (Ptr TextTagTable))
 -> IO (Ptr TextTagTable))
-> (Ptr TextBuffer -> IO (Ptr TextTagTable))
-> IO (Ptr TextTagTable)
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->Ptr TextBuffer -> IO (Ptr TextTagTable)
gtk_text_buffer_get_tag_table Ptr TextBuffer
argPtr1)
{-# LINE 255 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)

-- | 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 :: (TextBufferClass self, GlibString string) => self
 -> TextIter -- ^ @iter@ - a position in the buffer
 -> string -- ^ @text@ - text to insert
 -> IO ()
textBufferInsert :: forall self string.
(TextBufferClass self, GlibString string) =>
self -> TextIter -> string -> IO ()
textBufferInsert self
self TextIter
iter string
text =
  string -> (CStringLen -> IO ()) -> IO ()
forall a. string -> (CStringLen -> IO a) -> IO a
forall s a. GlibString s => s -> (CStringLen -> IO a) -> IO a
withUTFStringLen string
text ((CStringLen -> IO ()) -> IO ()) -> (CStringLen -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \(Ptr CChar
textPtr, Int
len) ->
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (TextIter ForeignPtr TextIter
arg2) Ptr CChar
arg3 CInt
arg4 -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextIter -> (Ptr TextIter -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg2 ((Ptr TextIter -> IO ()) -> IO ())
-> (Ptr TextIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr2 ->Ptr TextBuffer -> Ptr TextIter -> Ptr CChar -> CInt -> IO ()
gtk_text_buffer_insert Ptr TextBuffer
argPtr1 Ptr TextIter
argPtr2 Ptr CChar
arg3 CInt
arg4)
{-# LINE 269 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    TextIter
iter
    Ptr CChar
textPtr
    (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
len)

-- | 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 :: TextBufferClass self => self
 -> TextIter -- ^ @iter@ - a position in the buffer
 -> ByteString -- ^ @text@ - text to insert
 -> IO ()
textBufferInsertByteString :: forall self.
TextBufferClass self =>
self -> TextIter -> ByteString -> IO ()
textBufferInsertByteString self
self TextIter
iter ByteString
text =
  ByteString -> (CStringLen -> IO ()) -> IO ()
forall a. ByteString -> (CStringLen -> IO a) -> IO a
unsafeUseAsCStringLen ByteString
text ((CStringLen -> IO ()) -> IO ()) -> (CStringLen -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \(Ptr CChar
textPtr, Int
len) ->
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (TextIter ForeignPtr TextIter
arg2) Ptr CChar
arg3 CInt
arg4 -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextIter -> (Ptr TextIter -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg2 ((Ptr TextIter -> IO ()) -> IO ())
-> (Ptr TextIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr2 ->Ptr TextBuffer -> Ptr TextIter -> Ptr CChar -> CInt -> IO ()
gtk_text_buffer_insert Ptr TextBuffer
argPtr1 Ptr TextIter
argPtr2 Ptr CChar
arg3 CInt
arg4)
{-# LINE 286 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    TextIter
iter
    Ptr CChar
textPtr
    (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
len)

-- | Simply calls 'textBufferInsert', using the current cursor position as the
-- insertion point.
--
textBufferInsertAtCursor :: (TextBufferClass self, GlibString string) => self -> string -> IO ()
textBufferInsertAtCursor :: forall self string.
(TextBufferClass self, GlibString string) =>
self -> string -> IO ()
textBufferInsertAtCursor self
self string
text =
  string -> (CStringLen -> IO ()) -> IO ()
forall a. string -> (CStringLen -> IO a) -> IO a
forall s a. GlibString s => s -> (CStringLen -> IO a) -> IO a
withUTFStringLen string
text ((CStringLen -> IO ()) -> IO ()) -> (CStringLen -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \(Ptr CChar
textPtr, Int
len) ->
  (\(TextBuffer ForeignPtr TextBuffer
arg1) Ptr CChar
arg2 CInt
arg3 -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->Ptr TextBuffer -> Ptr CChar -> CInt -> IO ()
gtk_text_buffer_insert_at_cursor Ptr TextBuffer
argPtr1 Ptr CChar
arg2 CInt
arg3)
{-# LINE 298 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    Ptr CChar
textPtr
    (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
len)

-- | 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 :: TextBufferClass self => self -> ByteString -> IO ()
textBufferInsertByteStringAtCursor :: forall self. TextBufferClass self => self -> ByteString -> IO ()
textBufferInsertByteStringAtCursor self
self ByteString
text =
  ByteString -> (CStringLen -> IO ()) -> IO ()
forall a. ByteString -> (CStringLen -> IO a) -> IO a
unsafeUseAsCStringLen ByteString
text ((CStringLen -> IO ()) -> IO ()) -> (CStringLen -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \(Ptr CChar
textPtr, Int
len) ->
  (\(TextBuffer ForeignPtr TextBuffer
arg1) Ptr CChar
arg2 CInt
arg3 -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->Ptr TextBuffer -> Ptr CChar -> CInt -> IO ()
gtk_text_buffer_insert_at_cursor Ptr TextBuffer
argPtr1 Ptr CChar
arg2 CInt
arg3)
{-# LINE 311 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    Ptr CChar
textPtr
    (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
len)

-- | 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 :: (TextBufferClass self, GlibString string) => self
 -> TextIter -- ^ @iter@ - a position in @buffer@
 -> string -- ^ @text@ - the text to insert
 -> Bool -- ^ @defaultEditable@ - default editability of buffer
 -> IO Bool -- ^ returns whether text was actually inserted
textBufferInsertInteractive :: forall self string.
(TextBufferClass self, GlibString string) =>
self -> TextIter -> string -> Bool -> IO Bool
textBufferInsertInteractive self
self TextIter
iter string
text Bool
defaultEditable =
  (CInt -> Bool) -> IO CInt -> IO Bool
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
liftM CInt -> Bool
forall a. (Eq a, Num a) => a -> Bool
toBool (IO CInt -> IO Bool) -> IO CInt -> IO Bool
forall a b. (a -> b) -> a -> b
$
  string -> (CStringLen -> IO CInt) -> IO CInt
forall a. string -> (CStringLen -> IO a) -> IO a
forall s a. GlibString s => s -> (CStringLen -> IO a) -> IO a
withUTFStringLen string
text ((CStringLen -> IO CInt) -> IO CInt)
-> (CStringLen -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \(Ptr CChar
textPtr, Int
len) ->
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (TextIter ForeignPtr TextIter
arg2) Ptr CChar
arg3 CInt
arg4 CInt
arg5 -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO CInt) -> IO CInt
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO CInt) -> IO CInt)
-> (Ptr TextBuffer -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextIter -> (Ptr TextIter -> IO CInt) -> IO CInt
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg2 ((Ptr TextIter -> IO CInt) -> IO CInt)
-> (Ptr TextIter -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr2 ->Ptr TextBuffer
-> Ptr TextIter -> Ptr CChar -> CInt -> CInt -> IO CInt
gtk_text_buffer_insert_interactive Ptr TextBuffer
argPtr1 Ptr TextIter
argPtr2 Ptr CChar
arg3 CInt
arg4 CInt
arg5)
{-# LINE 333 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    TextIter
iter
    Ptr CChar
textPtr
    (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
len)
    (Bool -> CInt
forall a. Num a => Bool -> a
fromBool Bool
defaultEditable)

-- | Similar to 'textBufferInsertInteractive' but uses 'ByteString' buffers.
--
-- * The passed-in buffer must contain a valid UTF-8 encoded string.
--
textBufferInsertByteStringInteractive :: TextBufferClass self => self
 -> TextIter -- ^ @iter@ - a position in @buffer@
 -> ByteString -- ^ @text@ - the text to insert
 -> Bool -- ^ @defaultEditable@ - default editability of buffer
 -> IO Bool -- ^ returns whether text was actually inserted
textBufferInsertByteStringInteractive :: forall self.
TextBufferClass self =>
self -> TextIter -> ByteString -> Bool -> IO Bool
textBufferInsertByteStringInteractive self
self TextIter
iter ByteString
text Bool
defaultEditable =
  (CInt -> Bool) -> IO CInt -> IO Bool
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
liftM CInt -> Bool
forall a. (Eq a, Num a) => a -> Bool
toBool (IO CInt -> IO Bool) -> IO CInt -> IO Bool
forall a b. (a -> b) -> a -> b
$
  ByteString -> (CStringLen -> IO CInt) -> IO CInt
forall a. ByteString -> (CStringLen -> IO a) -> IO a
unsafeUseAsCStringLen ByteString
text ((CStringLen -> IO CInt) -> IO CInt)
-> (CStringLen -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \(Ptr CChar
textPtr, Int
len) ->
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (TextIter ForeignPtr TextIter
arg2) Ptr CChar
arg3 CInt
arg4 CInt
arg5 -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO CInt) -> IO CInt
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO CInt) -> IO CInt)
-> (Ptr TextBuffer -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextIter -> (Ptr TextIter -> IO CInt) -> IO CInt
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg2 ((Ptr TextIter -> IO CInt) -> IO CInt)
-> (Ptr TextIter -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr2 ->Ptr TextBuffer
-> Ptr TextIter -> Ptr CChar -> CInt -> CInt -> IO CInt
gtk_text_buffer_insert_interactive Ptr TextBuffer
argPtr1 Ptr TextIter
argPtr2 Ptr CChar
arg3 CInt
arg4 CInt
arg5)
{-# LINE 352 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    TextIter
iter
    Ptr CChar
textPtr
    (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
len)
    (Bool -> CInt
forall a. Num a => Bool -> a
fromBool Bool
defaultEditable)

-- | Calls 'textBufferInsertInteractive' at the cursor position.
--
textBufferInsertInteractiveAtCursor :: (TextBufferClass self, GlibString string) => self
 -> string -- ^ @text@ - the text to insert
 -> Bool -- ^ @defaultEditable@ - default editability of buffer
 -> IO Bool -- ^ returns whether text was actually inserted
textBufferInsertInteractiveAtCursor :: forall self string.
(TextBufferClass self, GlibString string) =>
self -> string -> Bool -> IO Bool
textBufferInsertInteractiveAtCursor self
self string
text Bool
defaultEditable =
  (CInt -> Bool) -> IO CInt -> IO Bool
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
liftM CInt -> Bool
forall a. (Eq a, Num a) => a -> Bool
toBool (IO CInt -> IO Bool) -> IO CInt -> IO Bool
forall a b. (a -> b) -> a -> b
$
  string -> (CStringLen -> IO CInt) -> IO CInt
forall a. string -> (CStringLen -> IO a) -> IO a
forall s a. GlibString s => s -> (CStringLen -> IO a) -> IO a
withUTFStringLen string
text ((CStringLen -> IO CInt) -> IO CInt)
-> (CStringLen -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \(Ptr CChar
textPtr, Int
len) ->
  (\(TextBuffer ForeignPtr TextBuffer
arg1) Ptr CChar
arg2 CInt
arg3 CInt
arg4 -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO CInt) -> IO CInt
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO CInt) -> IO CInt)
-> (Ptr TextBuffer -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->Ptr TextBuffer -> Ptr CChar -> CInt -> CInt -> IO CInt
gtk_text_buffer_insert_interactive_at_cursor Ptr TextBuffer
argPtr1 Ptr CChar
arg2 CInt
arg3 CInt
arg4)
{-# LINE 368 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    Ptr CChar
textPtr
    (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
len)
    (Bool -> CInt
forall a. Num a => Bool -> a
fromBool Bool
defaultEditable)

-- | Similar to 'textBufferInsertInteractiveAtCursor' but uses 'ByteString' buffers.
--
-- * The passed-in buffer must contain a valid UTF-8 encoded string.
--
textBufferInsertByteStringInteractiveAtCursor :: TextBufferClass self => self
 -> ByteString -- ^ @text@ - the text to insert
 -> Bool -- ^ @defaultEditable@ - default editability of buffer
 -> IO Bool -- ^ returns whether text was actually inserted
textBufferInsertByteStringInteractiveAtCursor :: forall self.
TextBufferClass self =>
self -> ByteString -> Bool -> IO Bool
textBufferInsertByteStringInteractiveAtCursor self
self ByteString
text Bool
defaultEditable =
  (CInt -> Bool) -> IO CInt -> IO Bool
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
liftM CInt -> Bool
forall a. (Eq a, Num a) => a -> Bool
toBool (IO CInt -> IO Bool) -> IO CInt -> IO Bool
forall a b. (a -> b) -> a -> b
$
  ByteString -> (CStringLen -> IO CInt) -> IO CInt
forall a. ByteString -> (CStringLen -> IO a) -> IO a
unsafeUseAsCStringLen ByteString
text ((CStringLen -> IO CInt) -> IO CInt)
-> (CStringLen -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \(Ptr CChar
textPtr, Int
len) ->
  (\(TextBuffer ForeignPtr TextBuffer
arg1) Ptr CChar
arg2 CInt
arg3 CInt
arg4 -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO CInt) -> IO CInt
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO CInt) -> IO CInt)
-> (Ptr TextBuffer -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->Ptr TextBuffer -> Ptr CChar -> CInt -> CInt -> IO CInt
gtk_text_buffer_insert_interactive_at_cursor Ptr TextBuffer
argPtr1 Ptr CChar
arg2 CInt
arg3 CInt
arg4)
{-# LINE 385 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    Ptr CChar
textPtr
    (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
len)
    (Bool -> CInt
forall a. Num a => Bool -> a
fromBool Bool
defaultEditable)

-- | 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 :: TextBufferClass self => 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 ()
textBufferInsertRange :: forall self.
TextBufferClass self =>
self -> TextIter -> TextIter -> TextIter -> IO ()
textBufferInsertRange self
self TextIter
iter TextIter
start TextIter
end =
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (TextIter ForeignPtr TextIter
arg2) (TextIter ForeignPtr TextIter
arg3) (TextIter ForeignPtr TextIter
arg4) -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextIter -> (Ptr TextIter -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg2 ((Ptr TextIter -> IO ()) -> IO ())
-> (Ptr TextIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr2 ->ForeignPtr TextIter -> (Ptr TextIter -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg3 ((Ptr TextIter -> IO ()) -> IO ())
-> (Ptr TextIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr3 ->ForeignPtr TextIter -> (Ptr TextIter -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg4 ((Ptr TextIter -> IO ()) -> IO ())
-> (Ptr TextIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr4 ->Ptr TextBuffer
-> Ptr TextIter -> Ptr TextIter -> Ptr TextIter -> IO ()
gtk_text_buffer_insert_range Ptr TextBuffer
argPtr1 Ptr TextIter
argPtr2 Ptr TextIter
argPtr3 Ptr TextIter
argPtr4)
{-# LINE 406 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    TextIter
iter
    TextIter
start
    TextIter
end

-- | 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 :: TextBufferClass self => 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
 -> IO Bool -- ^ returns whether an insertion was possible at @iter@
textBufferInsertRangeInteractive :: forall self.
TextBufferClass self =>
self -> TextIter -> TextIter -> TextIter -> Bool -> IO Bool
textBufferInsertRangeInteractive self
self TextIter
iter TextIter
start TextIter
end Bool
defaultEditable =
  (CInt -> Bool) -> IO CInt -> IO Bool
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
liftM CInt -> Bool
forall a. (Eq a, Num a) => a -> Bool
toBool (IO CInt -> IO Bool) -> IO CInt -> IO Bool
forall a b. (a -> b) -> a -> b
$
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (TextIter ForeignPtr TextIter
arg2) (TextIter ForeignPtr TextIter
arg3) (TextIter ForeignPtr TextIter
arg4) CInt
arg5 -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO CInt) -> IO CInt
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO CInt) -> IO CInt)
-> (Ptr TextBuffer -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextIter -> (Ptr TextIter -> IO CInt) -> IO CInt
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg2 ((Ptr TextIter -> IO CInt) -> IO CInt)
-> (Ptr TextIter -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr2 ->ForeignPtr TextIter -> (Ptr TextIter -> IO CInt) -> IO CInt
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg3 ((Ptr TextIter -> IO CInt) -> IO CInt)
-> (Ptr TextIter -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr3 ->ForeignPtr TextIter -> (Ptr TextIter -> IO CInt) -> IO CInt
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg4 ((Ptr TextIter -> IO CInt) -> IO CInt)
-> (Ptr TextIter -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr4 ->Ptr TextBuffer
-> Ptr TextIter -> Ptr TextIter -> Ptr TextIter -> CInt -> IO CInt
gtk_text_buffer_insert_range_interactive Ptr TextBuffer
argPtr1 Ptr TextIter
argPtr2 Ptr TextIter
argPtr3 Ptr TextIter
argPtr4 CInt
arg5)
{-# LINE 426 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    TextIter
iter
    TextIter
start
    TextIter
end
    (Bool -> CInt
forall a. Num a => Bool -> a
fromBool Bool
defaultEditable)

-- | 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 :: TextBufferClass self => self
 -> TextIter -- ^ @start@ - a position in @buffer@
 -> TextIter -- ^ @end@ - another position in @buffer@
 -> IO ()
textBufferDelete :: forall self.
TextBufferClass self =>
self -> TextIter -> TextIter -> IO ()
textBufferDelete self
self TextIter
start TextIter
end =
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (TextIter ForeignPtr TextIter
arg2) (TextIter ForeignPtr TextIter
arg3) -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextIter -> (Ptr TextIter -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg2 ((Ptr TextIter -> IO ()) -> IO ())
-> (Ptr TextIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr2 ->ForeignPtr TextIter -> (Ptr TextIter -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg3 ((Ptr TextIter -> IO ()) -> IO ())
-> (Ptr TextIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr3 ->Ptr TextBuffer -> Ptr TextIter -> Ptr TextIter -> IO ()
gtk_text_buffer_delete Ptr TextBuffer
argPtr1 Ptr TextIter
argPtr2 Ptr TextIter
argPtr3)
{-# LINE 446 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    TextIter
start
    TextIter
end

-- | 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 :: TextBufferClass self => self
 -> TextIter -- ^ @startIter@ - start of range to delete
 -> TextIter -- ^ @endIter@ - end of range
 -> Bool -- ^ @defaultEditable@ - whether the buffer is editable by
             -- default
 -> IO Bool -- ^ returns whether some text was actually deleted
textBufferDeleteInteractive :: forall self.
TextBufferClass self =>
self -> TextIter -> TextIter -> Bool -> IO Bool
textBufferDeleteInteractive self
self TextIter
startIter TextIter
endIter Bool
defaultEditable =
  (CInt -> Bool) -> IO CInt -> IO Bool
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
liftM CInt -> Bool
forall a. (Eq a, Num a) => a -> Bool
toBool (IO CInt -> IO Bool) -> IO CInt -> IO Bool
forall a b. (a -> b) -> a -> b
$
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (TextIter ForeignPtr TextIter
arg2) (TextIter ForeignPtr TextIter
arg3) CInt
arg4 -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO CInt) -> IO CInt
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO CInt) -> IO CInt)
-> (Ptr TextBuffer -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextIter -> (Ptr TextIter -> IO CInt) -> IO CInt
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg2 ((Ptr TextIter -> IO CInt) -> IO CInt)
-> (Ptr TextIter -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr2 ->ForeignPtr TextIter -> (Ptr TextIter -> IO CInt) -> IO CInt
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg3 ((Ptr TextIter -> IO CInt) -> IO CInt)
-> (Ptr TextIter -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr3 ->Ptr TextBuffer -> Ptr TextIter -> Ptr TextIter -> CInt -> IO CInt
gtk_text_buffer_delete_interactive Ptr TextBuffer
argPtr1 Ptr TextIter
argPtr2 Ptr TextIter
argPtr3 CInt
arg4)
{-# LINE 464 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    TextIter
startIter
    TextIter
endIter
    (Bool -> CInt
forall a. Num a => Bool -> a
fromBool Bool
defaultEditable)

-- | Deletes current contents of @buffer@, and inserts @text@ instead.
--
textBufferSetText :: (TextBufferClass self, GlibString string) => self
 -> string -- ^ @text@ - text to insert
 -> IO ()
textBufferSetText :: forall self string.
(TextBufferClass self, GlibString string) =>
self -> string -> IO ()
textBufferSetText self
self string
text =
  string -> (CStringLen -> IO ()) -> IO ()
forall a. string -> (CStringLen -> IO a) -> IO a
forall s a. GlibString s => s -> (CStringLen -> IO a) -> IO a
withUTFStringLen string
text ((CStringLen -> IO ()) -> IO ()) -> (CStringLen -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \(Ptr CChar
textPtr, Int
len) ->
  (\(TextBuffer ForeignPtr TextBuffer
arg1) Ptr CChar
arg2 CInt
arg3 -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->Ptr TextBuffer -> Ptr CChar -> CInt -> IO ()
gtk_text_buffer_set_text Ptr TextBuffer
argPtr1 Ptr CChar
arg2 CInt
arg3)
{-# LINE 477 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    Ptr CChar
textPtr
    (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
len)

-- | 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 :: (TextBufferClass self, GlibString string) => self
 -> TextIter -- ^ @start@ - start of a range
 -> TextIter -- ^ @end@ - end of a range
 -> Bool -- ^ @includeHiddenChars@ - whether to include invisible text
 -> IO string
textBufferGetText :: forall self string.
(TextBufferClass self, GlibString string) =>
self -> TextIter -> TextIter -> Bool -> IO string
textBufferGetText self
self TextIter
start TextIter
end Bool
includeHiddenChars =
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (TextIter ForeignPtr TextIter
arg2) (TextIter ForeignPtr TextIter
arg3) CInt
arg4 -> ForeignPtr TextBuffer
-> (Ptr TextBuffer -> IO (Ptr CChar)) -> IO (Ptr CChar)
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO (Ptr CChar)) -> IO (Ptr CChar))
-> (Ptr TextBuffer -> IO (Ptr CChar)) -> IO (Ptr CChar)
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextIter
-> (Ptr TextIter -> IO (Ptr CChar)) -> IO (Ptr CChar)
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg2 ((Ptr TextIter -> IO (Ptr CChar)) -> IO (Ptr CChar))
-> (Ptr TextIter -> IO (Ptr CChar)) -> IO (Ptr CChar)
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr2 ->ForeignPtr TextIter
-> (Ptr TextIter -> IO (Ptr CChar)) -> IO (Ptr CChar)
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg3 ((Ptr TextIter -> IO (Ptr CChar)) -> IO (Ptr CChar))
-> (Ptr TextIter -> IO (Ptr CChar)) -> IO (Ptr CChar)
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr3 ->Ptr TextBuffer
-> Ptr TextIter -> Ptr TextIter -> CInt -> IO (Ptr CChar)
gtk_text_buffer_get_text Ptr TextBuffer
argPtr1 Ptr TextIter
argPtr2 Ptr TextIter
argPtr3 CInt
arg4)
{-# LINE 495 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    TextIter
start
    TextIter
end
    (Bool -> CInt
forall a. Num a => Bool -> a
fromBool Bool
includeHiddenChars)
  IO (Ptr CChar) -> (Ptr CChar -> IO string) -> IO string
forall a b. IO a -> (a -> IO b) -> IO b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= Ptr CChar -> IO string
forall s. GlibString s => Ptr CChar -> IO s
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 :: (TextBufferClass self, GlibString string) => self
 -> TextIter -- ^ @start@ - start of a range
 -> TextIter -- ^ @end@ - end of a range
 -> Bool -- ^ @includeHiddenChars@ - whether to include invisible text
 -> IO string
textBufferGetSlice :: forall self string.
(TextBufferClass self, GlibString string) =>
self -> TextIter -> TextIter -> Bool -> IO string
textBufferGetSlice self
self TextIter
start TextIter
end Bool
includeHiddenChars =
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (TextIter ForeignPtr TextIter
arg2) (TextIter ForeignPtr TextIter
arg3) CInt
arg4 -> ForeignPtr TextBuffer
-> (Ptr TextBuffer -> IO (Ptr CChar)) -> IO (Ptr CChar)
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO (Ptr CChar)) -> IO (Ptr CChar))
-> (Ptr TextBuffer -> IO (Ptr CChar)) -> IO (Ptr CChar)
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextIter
-> (Ptr TextIter -> IO (Ptr CChar)) -> IO (Ptr CChar)
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg2 ((Ptr TextIter -> IO (Ptr CChar)) -> IO (Ptr CChar))
-> (Ptr TextIter -> IO (Ptr CChar)) -> IO (Ptr CChar)
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr2 ->ForeignPtr TextIter
-> (Ptr TextIter -> IO (Ptr CChar)) -> IO (Ptr CChar)
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg3 ((Ptr TextIter -> IO (Ptr CChar)) -> IO (Ptr CChar))
-> (Ptr TextIter -> IO (Ptr CChar)) -> IO (Ptr CChar)
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr3 ->Ptr TextBuffer
-> Ptr TextIter -> Ptr TextIter -> CInt -> IO (Ptr CChar)
gtk_text_buffer_get_slice Ptr TextBuffer
argPtr1 Ptr TextIter
argPtr2 Ptr TextIter
argPtr3 CInt
arg4)
{-# LINE 517 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    TextIter
start
    TextIter
end
    (Bool -> CInt
forall a. Num a => Bool -> a
fromBool Bool
includeHiddenChars)
  IO (Ptr CChar) -> (Ptr CChar -> IO string) -> IO string
forall a b. IO a -> (a -> IO b) -> IO b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= Ptr CChar -> IO string
forall s. GlibString s => Ptr CChar -> IO s
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 :: TextBufferClass self => self
 -> ByteString -- ^ @text@ - text to insert
 -> IO ()
textBufferSetByteString :: forall self. TextBufferClass self => self -> ByteString -> IO ()
textBufferSetByteString self
self ByteString
text =
  ByteString -> (CStringLen -> IO ()) -> IO ()
forall a. ByteString -> (CStringLen -> IO a) -> IO a
unsafeUseAsCStringLen ByteString
text ((CStringLen -> IO ()) -> IO ()) -> (CStringLen -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \(Ptr CChar
textPtr, Int
len) ->
  (\(TextBuffer ForeignPtr TextBuffer
arg1) Ptr CChar
arg2 CInt
arg3 -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->Ptr TextBuffer -> Ptr CChar -> CInt -> IO ()
gtk_text_buffer_set_text Ptr TextBuffer
argPtr1 Ptr CChar
arg2 CInt
arg3)
{-# LINE 534 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    Ptr CChar
textPtr
    (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
len)

-- | 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 :: TextBufferClass self => self
 -> TextIter -- ^ @start@ - start of a range
 -> TextIter -- ^ @end@ - end of a range
 -> Bool -- ^ @includeHiddenChars@ - whether to include invisible text
 -> IO ByteString
textBufferGetByteString :: forall self.
TextBufferClass self =>
self -> TextIter -> TextIter -> Bool -> IO ByteString
textBufferGetByteString self
self TextIter
start TextIter
end Bool
includeHiddenChars = do
  Ptr CChar
sPtr <- (\(TextBuffer ForeignPtr TextBuffer
arg1) (TextIter ForeignPtr TextIter
arg2) (TextIter ForeignPtr TextIter
arg3) CInt
arg4 -> ForeignPtr TextBuffer
-> (Ptr TextBuffer -> IO (Ptr CChar)) -> IO (Ptr CChar)
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO (Ptr CChar)) -> IO (Ptr CChar))
-> (Ptr TextBuffer -> IO (Ptr CChar)) -> IO (Ptr CChar)
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextIter
-> (Ptr TextIter -> IO (Ptr CChar)) -> IO (Ptr CChar)
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg2 ((Ptr TextIter -> IO (Ptr CChar)) -> IO (Ptr CChar))
-> (Ptr TextIter -> IO (Ptr CChar)) -> IO (Ptr CChar)
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr2 ->ForeignPtr TextIter
-> (Ptr TextIter -> IO (Ptr CChar)) -> IO (Ptr CChar)
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg3 ((Ptr TextIter -> IO (Ptr CChar)) -> IO (Ptr CChar))
-> (Ptr TextIter -> IO (Ptr CChar)) -> IO (Ptr CChar)
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr3 ->Ptr TextBuffer
-> Ptr TextIter -> Ptr TextIter -> CInt -> IO (Ptr CChar)
gtk_text_buffer_get_text Ptr TextBuffer
argPtr1 Ptr TextIter
argPtr2 Ptr TextIter
argPtr3 CInt
arg4)
{-# LINE 550 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    TextIter
start
    TextIter
end
    (Bool -> CInt
forall a. Num a => Bool -> a
fromBool Bool
includeHiddenChars)
  Int
sLen <- CChar -> Ptr CChar -> IO Int
forall a. (Storable a, Eq a) => a -> Ptr a -> IO Int
lengthArray0 CChar
0 Ptr CChar
sPtr
  Ptr Word8 -> Int -> IO () -> IO ByteString
unsafePackCStringFinalizer (Ptr CChar -> Ptr Word8
forall a b. Ptr a -> Ptr b
castPtr Ptr CChar
sPtr) (Int -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
sLen)
    (Ptr () -> IO ()
g_free (Ptr CChar -> Ptr ()
forall a b. Ptr a -> Ptr b
castPtr Ptr CChar
sPtr))

-- | 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 :: TextBufferClass self => self
 -> TextIter -- ^ @start@ - start of a range
 -> TextIter -- ^ @end@ - end of a range
 -> Bool -- ^ @includeHiddenChars@ - whether to include invisible text
 -> IO ByteString
textBufferGetByteStringSlice :: forall self.
TextBufferClass self =>
self -> TextIter -> TextIter -> Bool -> IO ByteString
textBufferGetByteStringSlice self
self TextIter
start TextIter
end Bool
includeHiddenChars = do
  Ptr CChar
sPtr <- (\(TextBuffer ForeignPtr TextBuffer
arg1) (TextIter ForeignPtr TextIter
arg2) (TextIter ForeignPtr TextIter
arg3) CInt
arg4 -> ForeignPtr TextBuffer
-> (Ptr TextBuffer -> IO (Ptr CChar)) -> IO (Ptr CChar)
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO (Ptr CChar)) -> IO (Ptr CChar))
-> (Ptr TextBuffer -> IO (Ptr CChar)) -> IO (Ptr CChar)
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextIter
-> (Ptr TextIter -> IO (Ptr CChar)) -> IO (Ptr CChar)
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg2 ((Ptr TextIter -> IO (Ptr CChar)) -> IO (Ptr CChar))
-> (Ptr TextIter -> IO (Ptr CChar)) -> IO (Ptr CChar)
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr2 ->ForeignPtr TextIter
-> (Ptr TextIter -> IO (Ptr CChar)) -> IO (Ptr CChar)
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg3 ((Ptr TextIter -> IO (Ptr CChar)) -> IO (Ptr CChar))
-> (Ptr TextIter -> IO (Ptr CChar)) -> IO (Ptr CChar)
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr3 ->Ptr TextBuffer
-> Ptr TextIter -> Ptr TextIter -> CInt -> IO (Ptr CChar)
gtk_text_buffer_get_slice Ptr TextBuffer
argPtr1 Ptr TextIter
argPtr2 Ptr TextIter
argPtr3 CInt
arg4)
{-# LINE 570 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    TextIter
start
    TextIter
end
    (Bool -> CInt
forall a. Num a => Bool -> a
fromBool Bool
includeHiddenChars)
  Int
sLen <- CChar -> Ptr CChar -> IO Int
forall a. (Storable a, Eq a) => a -> Ptr a -> IO Int
lengthArray0 CChar
0 Ptr CChar
sPtr
  Ptr Word8 -> Int -> IO () -> IO ByteString
unsafePackCStringFinalizer (Ptr CChar -> Ptr Word8
forall a b. Ptr a -> Ptr b
castPtr Ptr CChar
sPtr) (Int -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
sLen)
    (Ptr () -> IO ()
g_free (Ptr CChar -> Ptr ()
forall a b. Ptr a -> Ptr b
castPtr Ptr CChar
sPtr))

-- | 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 :: TextBufferClass self => self
 -> TextIter -- ^ @iter@ - location to insert the pixbuf
 -> Pixbuf -- ^ @pixbuf@ - a 'Pixbuf'
 -> IO ()
textBufferInsertPixbuf :: forall self.
TextBufferClass self =>
self -> TextIter -> Pixbuf -> IO ()
textBufferInsertPixbuf self
self TextIter
iter Pixbuf
pixbuf =
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (TextIter ForeignPtr TextIter
arg2) (Pixbuf ForeignPtr Pixbuf
arg3) -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextIter -> (Ptr TextIter -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg2 ((Ptr TextIter -> IO ()) -> IO ())
-> (Ptr TextIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr2 ->ForeignPtr Pixbuf -> (Ptr Pixbuf -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Pixbuf
arg3 ((Ptr Pixbuf -> IO ()) -> IO ()) -> (Ptr Pixbuf -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr Pixbuf
argPtr3 ->Ptr TextBuffer -> Ptr TextIter -> Ptr Pixbuf -> IO ()
gtk_text_buffer_insert_pixbuf Ptr TextBuffer
argPtr1 Ptr TextIter
argPtr2 Ptr Pixbuf
argPtr3)
{-# LINE 592 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    TextIter
iter
    Pixbuf
pixbuf

-- | 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 :: TextBufferClass self => self
 -> Maybe MarkName -- ^ @markName@ - name for mark, or @Nothing@
 -> TextIter -- ^ @where@ - location to place mark
 -> Bool -- ^ @leftGravity@ - whether the mark has left gravity
 -> IO TextMark -- ^ returns the new 'TextMark' object
textBufferCreateMark :: forall self.
TextBufferClass self =>
self -> Maybe MarkName -> TextIter -> Bool -> IO TextMark
textBufferCreateMark self
self Maybe MarkName
markName TextIter
where_ Bool
leftGravity =
  (ForeignPtr TextMark -> TextMark, FinalizerPtr TextMark)
-> IO (Ptr TextMark) -> IO TextMark
forall obj.
GObjectClass obj =>
(ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
makeNewGObject (ForeignPtr TextMark -> TextMark, FinalizerPtr TextMark)
forall {a}. (ForeignPtr TextMark -> TextMark, FinalizerPtr a)
mkTextMark (IO (Ptr TextMark) -> IO TextMark)
-> IO (Ptr TextMark) -> IO TextMark
forall a b. (a -> b) -> a -> b
$
  (MarkName -> (Ptr CChar -> IO (Ptr TextMark)) -> IO (Ptr TextMark))
-> Maybe MarkName
-> (Ptr CChar -> IO (Ptr TextMark))
-> IO (Ptr TextMark)
forall a b c.
(a -> (Ptr b -> IO c) -> IO c)
-> Maybe a -> (Ptr b -> IO c) -> IO c
maybeWith MarkName -> (Ptr CChar -> IO (Ptr TextMark)) -> IO (Ptr TextMark)
forall s a. GlibString s => s -> (Ptr CChar -> IO a) -> IO a
forall a. MarkName -> (Ptr CChar -> IO a) -> IO a
withUTFString Maybe MarkName
markName ((Ptr CChar -> IO (Ptr TextMark)) -> IO (Ptr TextMark))
-> (Ptr CChar -> IO (Ptr TextMark)) -> IO (Ptr TextMark)
forall a b. (a -> b) -> a -> b
$ \Ptr CChar
markNamePtr ->
  (\(TextBuffer ForeignPtr TextBuffer
arg1) Ptr CChar
arg2 (TextIter ForeignPtr TextIter
arg3) CInt
arg4 -> ForeignPtr TextBuffer
-> (Ptr TextBuffer -> IO (Ptr TextMark)) -> IO (Ptr TextMark)
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO (Ptr TextMark)) -> IO (Ptr TextMark))
-> (Ptr TextBuffer -> IO (Ptr TextMark)) -> IO (Ptr TextMark)
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextIter
-> (Ptr TextIter -> IO (Ptr TextMark)) -> IO (Ptr TextMark)
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg3 ((Ptr TextIter -> IO (Ptr TextMark)) -> IO (Ptr TextMark))
-> (Ptr TextIter -> IO (Ptr TextMark)) -> IO (Ptr TextMark)
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr3 ->Ptr TextBuffer
-> Ptr CChar -> Ptr TextIter -> CInt -> IO (Ptr TextMark)
gtk_text_buffer_create_mark Ptr TextBuffer
argPtr1 Ptr CChar
arg2 Ptr TextIter
argPtr3 CInt
arg4)
{-# LINE 617 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    Ptr CChar
markNamePtr
    TextIter
where_
    (Bool -> CInt
forall a. Num a => Bool -> a
fromBool Bool
leftGravity)


-- | 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 :: TextBufferClass self => self
 -> TextMark -- ^ @mark@ the mark to add
 -> TextIter -- ^ @iter@ location to place mark
 -> IO ()
textBufferAddMark :: forall self.
TextBufferClass self =>
self -> TextMark -> TextIter -> IO ()
textBufferAddMark self
self TextMark
mark TextIter
iter =
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (TextMark ForeignPtr TextMark
arg2) (TextIter ForeignPtr TextIter
arg3) -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextMark -> (Ptr TextMark -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextMark
arg2 ((Ptr TextMark -> IO ()) -> IO ())
-> (Ptr TextMark -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextMark
argPtr2 ->ForeignPtr TextIter -> (Ptr TextIter -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg3 ((Ptr TextIter -> IO ()) -> IO ())
-> (Ptr TextIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr3 ->Ptr TextBuffer -> Ptr TextMark -> Ptr TextIter -> IO ()
gtk_text_buffer_add_mark Ptr TextBuffer
argPtr1 Ptr TextMark
argPtr2 Ptr TextIter
argPtr3) (self -> TextBuffer
forall o. TextBufferClass o => o -> TextBuffer
toTextBuffer self
self) (TextMark -> TextMark
forall o. TextMarkClass o => o -> TextMark
toTextMark TextMark
mark) TextIter
iter


-- | Moves @mark@ to the new location @where@. Emits the 'markSet' signal
-- as notification of the move.
--
textBufferMoveMark :: (TextBufferClass self, TextMarkClass mark) => self
 -> mark -- ^ @mark@ - a 'TextMark'
 -> TextIter -- ^ @where@ - new location for @mark@ in the buffer
 -> IO ()
textBufferMoveMark :: forall self mark.
(TextBufferClass self, TextMarkClass mark) =>
self -> mark -> TextIter -> IO ()
textBufferMoveMark self
self mark
mark TextIter
where_ =
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (TextMark ForeignPtr TextMark
arg2) (TextIter ForeignPtr TextIter
arg3) -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextMark -> (Ptr TextMark -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextMark
arg2 ((Ptr TextMark -> IO ()) -> IO ())
-> (Ptr TextMark -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextMark
argPtr2 ->ForeignPtr TextIter -> (Ptr TextIter -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg3 ((Ptr TextIter -> IO ()) -> IO ())
-> (Ptr TextIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr3 ->Ptr TextBuffer -> Ptr TextMark -> Ptr TextIter -> IO ()
gtk_text_buffer_move_mark Ptr TextBuffer
argPtr1 Ptr TextMark
argPtr2 Ptr TextIter
argPtr3)
{-# LINE 645 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    (mark -> TextMark
forall o. TextMarkClass o => o -> TextMark
toTextMark mark
mark)
    TextIter
where_

-- | Moves the mark named @name@ (which must exist) to location @where@. See
-- 'textBufferMoveMark' for details.
--
textBufferMoveMarkByName :: TextBufferClass self => self
 -> MarkName -- ^ @name@ - name of a mark
 -> TextIter -- ^ @where@ - new location for mark
 -> IO ()
textBufferMoveMarkByName :: forall self.
TextBufferClass self =>
self -> MarkName -> TextIter -> IO ()
textBufferMoveMarkByName self
self MarkName
name TextIter
where_ =
  MarkName -> (Ptr CChar -> IO ()) -> IO ()
forall s a. GlibString s => s -> (Ptr CChar -> IO a) -> IO a
forall a. MarkName -> (Ptr CChar -> IO a) -> IO a
withUTFString MarkName
name ((Ptr CChar -> IO ()) -> IO ()) -> (Ptr CChar -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr CChar
namePtr ->
  (\(TextBuffer ForeignPtr TextBuffer
arg1) Ptr CChar
arg2 (TextIter ForeignPtr TextIter
arg3) -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextIter -> (Ptr TextIter -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg3 ((Ptr TextIter -> IO ()) -> IO ())
-> (Ptr TextIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr3 ->Ptr TextBuffer -> Ptr CChar -> Ptr TextIter -> IO ()
gtk_text_buffer_move_mark_by_name Ptr TextBuffer
argPtr1 Ptr CChar
arg2 Ptr TextIter
argPtr3)
{-# LINE 659 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    Ptr CChar
namePtr
    TextIter
where_

-- | 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 :: (TextBufferClass self, TextMarkClass mark) => self
 -> mark -- ^ @mark@ - a 'TextMark' in the buffer
 -> IO ()
textBufferDeleteMark :: forall self mark.
(TextBufferClass self, TextMarkClass mark) =>
self -> mark -> IO ()
textBufferDeleteMark self
self mark
mark =
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (TextMark ForeignPtr TextMark
arg2) -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextMark -> (Ptr TextMark -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextMark
arg2 ((Ptr TextMark -> IO ()) -> IO ())
-> (Ptr TextMark -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextMark
argPtr2 ->Ptr TextBuffer -> Ptr TextMark -> IO ()
gtk_text_buffer_delete_mark Ptr TextBuffer
argPtr1 Ptr TextMark
argPtr2)
{-# LINE 677 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    (mark -> TextMark
forall o. TextMarkClass o => o -> TextMark
toTextMark mark
mark)

-- | Deletes the mark named @name@; the mark must exist. See
-- 'textBufferDeleteMark' for details.
--
textBufferDeleteMarkByName :: TextBufferClass self => self
 -> MarkName -- ^ @name@ - name of a mark in @buffer@
 -> IO ()
textBufferDeleteMarkByName :: forall self. TextBufferClass self => self -> MarkName -> IO ()
textBufferDeleteMarkByName self
self MarkName
name =
  MarkName -> (Ptr CChar -> IO ()) -> IO ()
forall s a. GlibString s => s -> (Ptr CChar -> IO a) -> IO a
forall a. MarkName -> (Ptr CChar -> IO a) -> IO a
withUTFString MarkName
name ((Ptr CChar -> IO ()) -> IO ()) -> (Ptr CChar -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr CChar
namePtr ->
  (\(TextBuffer ForeignPtr TextBuffer
arg1) Ptr CChar
arg2 -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->Ptr TextBuffer -> Ptr CChar -> IO ()
gtk_text_buffer_delete_mark_by_name Ptr TextBuffer
argPtr1 Ptr CChar
arg2)
{-# LINE 689 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    Ptr CChar
namePtr

-- | Returns the mark named @name@ in the buffer, or @Nothing@ if no such
-- mark exists in the buffer.
--
textBufferGetMark :: TextBufferClass self => self
 -> MarkName -- ^ @name@ - a mark name
 -> IO (Maybe TextMark) -- ^ returns a 'TextMark', or @Nothing@
textBufferGetMark :: forall self.
TextBufferClass self =>
self -> MarkName -> IO (Maybe TextMark)
textBufferGetMark self
self MarkName
name =
  (IO (Ptr TextMark) -> IO TextMark)
-> IO (Ptr TextMark) -> IO (Maybe TextMark)
forall a. (IO (Ptr a) -> IO a) -> IO (Ptr a) -> IO (Maybe a)
maybeNull ((ForeignPtr TextMark -> TextMark, FinalizerPtr TextMark)
-> IO (Ptr TextMark) -> IO TextMark
forall obj.
GObjectClass obj =>
(ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
makeNewGObject (ForeignPtr TextMark -> TextMark, FinalizerPtr TextMark)
forall {a}. (ForeignPtr TextMark -> TextMark, FinalizerPtr a)
mkTextMark) (IO (Ptr TextMark) -> IO (Maybe TextMark))
-> IO (Ptr TextMark) -> IO (Maybe TextMark)
forall a b. (a -> b) -> a -> b
$
  MarkName -> (Ptr CChar -> IO (Ptr TextMark)) -> IO (Ptr TextMark)
forall s a. GlibString s => s -> (Ptr CChar -> IO a) -> IO a
forall a. MarkName -> (Ptr CChar -> IO a) -> IO a
withUTFString MarkName
name ((Ptr CChar -> IO (Ptr TextMark)) -> IO (Ptr TextMark))
-> (Ptr CChar -> IO (Ptr TextMark)) -> IO (Ptr TextMark)
forall a b. (a -> b) -> a -> b
$ \Ptr CChar
namePtr ->
  (\(TextBuffer ForeignPtr TextBuffer
arg1) Ptr CChar
arg2 -> ForeignPtr TextBuffer
-> (Ptr TextBuffer -> IO (Ptr TextMark)) -> IO (Ptr TextMark)
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO (Ptr TextMark)) -> IO (Ptr TextMark))
-> (Ptr TextBuffer -> IO (Ptr TextMark)) -> IO (Ptr TextMark)
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->Ptr TextBuffer -> Ptr CChar -> IO (Ptr TextMark)
gtk_text_buffer_get_mark Ptr TextBuffer
argPtr1 Ptr CChar
arg2)
{-# LINE 702 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    Ptr CChar
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 :: TextBufferClass self => self -> IO TextMark
textBufferGetInsert :: forall self. TextBufferClass self => self -> IO TextMark
textBufferGetInsert self
self =
  (ForeignPtr TextMark -> TextMark, FinalizerPtr TextMark)
-> IO (Ptr TextMark) -> IO TextMark
forall obj.
GObjectClass obj =>
(ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
makeNewGObject (ForeignPtr TextMark -> TextMark, FinalizerPtr TextMark)
forall {a}. (ForeignPtr TextMark -> TextMark, FinalizerPtr a)
mkTextMark (IO (Ptr TextMark) -> IO TextMark)
-> IO (Ptr TextMark) -> IO TextMark
forall a b. (a -> b) -> a -> b
$
  (\(TextBuffer ForeignPtr TextBuffer
arg1) -> ForeignPtr TextBuffer
-> (Ptr TextBuffer -> IO (Ptr TextMark)) -> IO (Ptr TextMark)
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO (Ptr TextMark)) -> IO (Ptr TextMark))
-> (Ptr TextBuffer -> IO (Ptr TextMark)) -> IO (Ptr TextMark)
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->Ptr TextBuffer -> IO (Ptr TextMark)
gtk_text_buffer_get_insert Ptr TextBuffer
argPtr1)
{-# LINE 713 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)

-- | 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 :: TextBufferClass self => self -> IO TextMark
textBufferGetSelectionBound :: forall self. TextBufferClass self => self -> IO TextMark
textBufferGetSelectionBound self
self =
  (ForeignPtr TextMark -> TextMark, FinalizerPtr TextMark)
-> IO (Ptr TextMark) -> IO TextMark
forall obj.
GObjectClass obj =>
(ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
makeNewGObject (ForeignPtr TextMark -> TextMark, FinalizerPtr TextMark)
forall {a}. (ForeignPtr TextMark -> TextMark, FinalizerPtr a)
mkTextMark (IO (Ptr TextMark) -> IO TextMark)
-> IO (Ptr TextMark) -> IO TextMark
forall a b. (a -> b) -> a -> b
$
  (\(TextBuffer ForeignPtr TextBuffer
arg1) -> ForeignPtr TextBuffer
-> (Ptr TextBuffer -> IO (Ptr TextMark)) -> IO (Ptr TextMark)
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO (Ptr TextMark)) -> IO (Ptr TextMark))
-> (Ptr TextBuffer -> IO (Ptr TextMark)) -> IO (Ptr TextMark)
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->Ptr TextBuffer -> IO (Ptr TextMark)
gtk_text_buffer_get_selection_bound Ptr TextBuffer
argPtr1)
{-# LINE 730 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)

-- | 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 :: TextBufferClass self => self
 -> TextIter -- ^ @where@ - where to put the cursor
 -> IO ()
textBufferPlaceCursor :: forall self. TextBufferClass self => self -> TextIter -> IO ()
textBufferPlaceCursor self
self TextIter
where_ =
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (TextIter ForeignPtr TextIter
arg2) -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextIter -> (Ptr TextIter -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg2 ((Ptr TextIter -> IO ()) -> IO ())
-> (Ptr TextIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr2 ->Ptr TextBuffer -> Ptr TextIter -> IO ()
gtk_text_buffer_place_cursor Ptr TextBuffer
argPtr1 Ptr TextIter
argPtr2)
{-# LINE 744 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    TextIter
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 :: (TextBufferClass self, TextTagClass tag) => self
 -> tag -- ^ @tag@ - a 'TextTag'
 -> TextIter -- ^ @start@ - one bound of range to be tagged
 -> TextIter -- ^ @end@ - other bound of range to be tagged
 -> IO ()
textBufferApplyTag :: forall self tag.
(TextBufferClass self, TextTagClass tag) =>
self -> tag -> TextIter -> TextIter -> IO ()
textBufferApplyTag self
self tag
tag TextIter
start TextIter
end =
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (TextTag ForeignPtr TextTag
arg2) (TextIter ForeignPtr TextIter
arg3) (TextIter ForeignPtr TextIter
arg4) -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextTag -> (Ptr TextTag -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextTag
arg2 ((Ptr TextTag -> IO ()) -> IO ())
-> (Ptr TextTag -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextTag
argPtr2 ->ForeignPtr TextIter -> (Ptr TextIter -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg3 ((Ptr TextIter -> IO ()) -> IO ())
-> (Ptr TextIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr3 ->ForeignPtr TextIter -> (Ptr TextIter -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg4 ((Ptr TextIter -> IO ()) -> IO ())
-> (Ptr TextIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr4 ->Ptr TextBuffer
-> Ptr TextTag -> Ptr TextIter -> Ptr TextIter -> IO ()
gtk_text_buffer_apply_tag Ptr TextBuffer
argPtr1 Ptr TextTag
argPtr2 Ptr TextIter
argPtr3 Ptr TextIter
argPtr4)
{-# LINE 758 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    (tag -> TextTag
forall o. TextTagClass o => o -> TextTag
toTextTag tag
tag)
    TextIter
start
    TextIter
end

-- | 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 :: (TextBufferClass self, TextTagClass tag) => self
 -> tag -- ^ @tag@ - a 'TextTag'
 -> TextIter -- ^ @start@ - one bound of range to be untagged
 -> TextIter -- ^ @end@ - other bound of range to be untagged
 -> IO ()
textBufferRemoveTag :: forall self tag.
(TextBufferClass self, TextTagClass tag) =>
self -> tag -> TextIter -> TextIter -> IO ()
textBufferRemoveTag self
self tag
tag TextIter
start TextIter
end =
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (TextTag ForeignPtr TextTag
arg2) (TextIter ForeignPtr TextIter
arg3) (TextIter ForeignPtr TextIter
arg4) -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextTag -> (Ptr TextTag -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextTag
arg2 ((Ptr TextTag -> IO ()) -> IO ())
-> (Ptr TextTag -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextTag
argPtr2 ->ForeignPtr TextIter -> (Ptr TextIter -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg3 ((Ptr TextIter -> IO ()) -> IO ())
-> (Ptr TextIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr3 ->ForeignPtr TextIter -> (Ptr TextIter -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg4 ((Ptr TextIter -> IO ()) -> IO ())
-> (Ptr TextIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr4 ->Ptr TextBuffer
-> Ptr TextTag -> Ptr TextIter -> Ptr TextIter -> IO ()
gtk_text_buffer_remove_tag Ptr TextBuffer
argPtr1 Ptr TextTag
argPtr2 Ptr TextIter
argPtr3 Ptr TextIter
argPtr4)
{-# LINE 774 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    (tag -> TextTag
forall o. TextTagClass o => o -> TextTag
toTextTag tag
tag)
    TextIter
start
    TextIter
end

-- | Calls 'Graphics.UI.Gtk.Multiline.TextTagTable.textTagTableLookup' on the
-- buffer's tag table to get a 'TextTag', then calls 'textBufferApplyTag'.
--
textBufferApplyTagByName :: TextBufferClass self => 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 ()
textBufferApplyTagByName :: forall self.
TextBufferClass self =>
self -> MarkName -> TextIter -> TextIter -> IO ()
textBufferApplyTagByName self
self MarkName
name TextIter
start TextIter
end =
  MarkName -> (Ptr CChar -> IO ()) -> IO ()
forall s a. GlibString s => s -> (Ptr CChar -> IO a) -> IO a
forall a. MarkName -> (Ptr CChar -> IO a) -> IO a
withUTFString MarkName
name ((Ptr CChar -> IO ()) -> IO ()) -> (Ptr CChar -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr CChar
namePtr ->
  (\(TextBuffer ForeignPtr TextBuffer
arg1) Ptr CChar
arg2 (TextIter ForeignPtr TextIter
arg3) (TextIter ForeignPtr TextIter
arg4) -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextIter -> (Ptr TextIter -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg3 ((Ptr TextIter -> IO ()) -> IO ())
-> (Ptr TextIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr3 ->ForeignPtr TextIter -> (Ptr TextIter -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg4 ((Ptr TextIter -> IO ()) -> IO ())
-> (Ptr TextIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr4 ->Ptr TextBuffer
-> Ptr CChar -> Ptr TextIter -> Ptr TextIter -> IO ()
gtk_text_buffer_apply_tag_by_name Ptr TextBuffer
argPtr1 Ptr CChar
arg2 Ptr TextIter
argPtr3 Ptr TextIter
argPtr4)
{-# LINE 790 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    Ptr CChar
namePtr
    TextIter
start
    TextIter
end

-- | Calls 'Graphics.UI.Gtk.Multiline.TextTagTable.textTagTableLookup' on the
-- buffer's tag table to get a 'TextTag', then calls 'textBufferRemoveTag'.
--
textBufferRemoveTagByName :: TextBufferClass self => 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 ()
textBufferRemoveTagByName :: forall self.
TextBufferClass self =>
self -> MarkName -> TextIter -> TextIter -> IO ()
textBufferRemoveTagByName self
self MarkName
name TextIter
start TextIter
end =
  MarkName -> (Ptr CChar -> IO ()) -> IO ()
forall s a. GlibString s => s -> (Ptr CChar -> IO a) -> IO a
forall a. MarkName -> (Ptr CChar -> IO a) -> IO a
withUTFString MarkName
name ((Ptr CChar -> IO ()) -> IO ()) -> (Ptr CChar -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr CChar
namePtr ->
  (\(TextBuffer ForeignPtr TextBuffer
arg1) Ptr CChar
arg2 (TextIter ForeignPtr TextIter
arg3) (TextIter ForeignPtr TextIter
arg4) -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextIter -> (Ptr TextIter -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg3 ((Ptr TextIter -> IO ()) -> IO ())
-> (Ptr TextIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr3 ->ForeignPtr TextIter -> (Ptr TextIter -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg4 ((Ptr TextIter -> IO ()) -> IO ())
-> (Ptr TextIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr4 ->Ptr TextBuffer
-> Ptr CChar -> Ptr TextIter -> Ptr TextIter -> IO ()
gtk_text_buffer_remove_tag_by_name Ptr TextBuffer
argPtr1 Ptr CChar
arg2 Ptr TextIter
argPtr3 Ptr TextIter
argPtr4)
{-# LINE 806 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    Ptr CChar
namePtr
    TextIter
start
    TextIter
end

-- | 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 :: TextBufferClass self => self
 -> TextIter -- ^ @start@ - one bound of range to be untagged
 -> TextIter -- ^ @end@ - other bound of range to be untagged
 -> IO ()
textBufferRemoveAllTags :: forall self.
TextBufferClass self =>
self -> TextIter -> TextIter -> IO ()
textBufferRemoveAllTags self
self TextIter
start TextIter
end =
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (TextIter ForeignPtr TextIter
arg2) (TextIter ForeignPtr TextIter
arg3) -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextIter -> (Ptr TextIter -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg2 ((Ptr TextIter -> IO ()) -> IO ())
-> (Ptr TextIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr2 ->ForeignPtr TextIter -> (Ptr TextIter -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg3 ((Ptr TextIter -> IO ()) -> IO ())
-> (Ptr TextIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr3 ->Ptr TextBuffer -> Ptr TextIter -> Ptr TextIter -> IO ()
gtk_text_buffer_remove_all_tags Ptr TextBuffer
argPtr1 Ptr TextIter
argPtr2 Ptr TextIter
argPtr3)
{-# LINE 822 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    TextIter
start
    TextIter
end

-- | 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 :: TextBufferClass self => self
 -> Int -- ^ @lineNumber@ - line number counting from 0
 -> Int -- ^ @charOffset@ - char offset from start of line
 -> IO TextIter
textBufferGetIterAtLineOffset :: forall self.
TextBufferClass self =>
self -> Int -> Int -> IO TextIter
textBufferGetIterAtLineOffset self
self Int
lineNumber Int
charOffset = do
  TextIter
iter <- IO TextIter
makeEmptyTextIter
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (TextIter ForeignPtr TextIter
arg2) CInt
arg3 CInt
arg4 -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextIter -> (Ptr TextIter -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg2 ((Ptr TextIter -> IO ()) -> IO ())
-> (Ptr TextIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr2 ->Ptr TextBuffer -> Ptr TextIter -> CInt -> CInt -> IO ()
gtk_text_buffer_get_iter_at_line_offset Ptr TextBuffer
argPtr1 Ptr TextIter
argPtr2 CInt
arg3 CInt
arg4)
{-# LINE 836 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    TextIter
iter
    (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
lineNumber)
    (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
charOffset)
  TextIter -> IO TextIter
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return TextIter
iter

-- | 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 :: TextBufferClass self => self
 -> Int -- ^ @charOffset@ - char offset from start of buffer (counting
             -- from 0) or -1
 -> IO TextIter
textBufferGetIterAtOffset :: forall self. TextBufferClass self => self -> Int -> IO TextIter
textBufferGetIterAtOffset self
self Int
charOffset = do
  TextIter
iter <- IO TextIter
makeEmptyTextIter
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (TextIter ForeignPtr TextIter
arg2) CInt
arg3 -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextIter -> (Ptr TextIter -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg2 ((Ptr TextIter -> IO ()) -> IO ())
-> (Ptr TextIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr2 ->Ptr TextBuffer -> Ptr TextIter -> CInt -> IO ()
gtk_text_buffer_get_iter_at_offset Ptr TextBuffer
argPtr1 Ptr TextIter
argPtr2 CInt
arg3)
{-# LINE 854 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    TextIter
iter
    (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
charOffset)
  TextIter -> IO TextIter
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return TextIter
iter

-- | Create an iterator at a specific line.
--
textBufferGetIterAtLine :: TextBufferClass self => self
 -> Int -- ^ @lineNumber@ - line number counting from 0
 -> IO TextIter
textBufferGetIterAtLine :: forall self. TextBufferClass self => self -> Int -> IO TextIter
textBufferGetIterAtLine self
self Int
lineNumber = do
  TextIter
iter <- IO TextIter
makeEmptyTextIter
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (TextIter ForeignPtr TextIter
arg2) CInt
arg3 -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextIter -> (Ptr TextIter -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg2 ((Ptr TextIter -> IO ()) -> IO ())
-> (Ptr TextIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr2 ->Ptr TextBuffer -> Ptr TextIter -> CInt -> IO ()
gtk_text_buffer_get_iter_at_line Ptr TextBuffer
argPtr1 Ptr TextIter
argPtr2 CInt
arg3)
{-# LINE 867 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    TextIter
iter
    (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
lineNumber)
  TextIter -> IO TextIter
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return TextIter
iter


-- | Create an iterator from a mark.
--
textBufferGetIterAtMark :: (TextBufferClass self, TextMarkClass mark) => self
 -> mark -- ^ @mark@ - a 'TextMark' in the buffer
 -> IO TextIter
textBufferGetIterAtMark :: forall self mark.
(TextBufferClass self, TextMarkClass mark) =>
self -> mark -> IO TextIter
textBufferGetIterAtMark self
self mark
mark = do
  TextIter
iter <- IO TextIter
makeEmptyTextIter
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (TextIter ForeignPtr TextIter
arg2) (TextMark ForeignPtr TextMark
arg3) -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextIter -> (Ptr TextIter -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg2 ((Ptr TextIter -> IO ()) -> IO ())
-> (Ptr TextIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr2 ->ForeignPtr TextMark -> (Ptr TextMark -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextMark
arg3 ((Ptr TextMark -> IO ()) -> IO ())
-> (Ptr TextMark -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextMark
argPtr3 ->Ptr TextBuffer -> Ptr TextIter -> Ptr TextMark -> IO ()
gtk_text_buffer_get_iter_at_mark Ptr TextBuffer
argPtr1 Ptr TextIter
argPtr2 Ptr TextMark
argPtr3)
{-# LINE 881 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    TextIter
iter
    (mark -> TextMark
forall o. TextMarkClass o => o -> TextMark
toTextMark mark
mark)
  TextIter -> IO TextIter
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return TextIter
iter

-- | 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 :: TextBufferClass self => self -> IO TextIter
textBufferGetStartIter :: forall self. TextBufferClass self => self -> IO TextIter
textBufferGetStartIter self
self = do
  TextIter
iter <- IO TextIter
makeEmptyTextIter
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (TextIter ForeignPtr TextIter
arg2) -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextIter -> (Ptr TextIter -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg2 ((Ptr TextIter -> IO ()) -> IO ())
-> (Ptr TextIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr2 ->Ptr TextBuffer -> Ptr TextIter -> IO ()
gtk_text_buffer_get_start_iter Ptr TextBuffer
argPtr1 Ptr TextIter
argPtr2)
{-# LINE 894 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    TextIter
iter
  TextIter -> IO TextIter
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return TextIter
iter

-- | 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 :: TextBufferClass self => self -> IO TextIter
textBufferGetEndIter :: forall self. TextBufferClass self => self -> IO TextIter
textBufferGetEndIter self
self = do
  TextIter
iter <- IO TextIter
makeEmptyTextIter
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (TextIter ForeignPtr TextIter
arg2) -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextIter -> (Ptr TextIter -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg2 ((Ptr TextIter -> IO ()) -> IO ())
-> (Ptr TextIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr2 ->Ptr TextBuffer -> Ptr TextIter -> IO ()
gtk_text_buffer_get_end_iter Ptr TextBuffer
argPtr1 Ptr TextIter
argPtr2)
{-# LINE 909 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    TextIter
iter
  TextIter -> IO TextIter
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return TextIter
iter

-- | 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 :: TextBufferClass self => self
 -> IO Bool -- ^ returns @True@ if the buffer has been modified
textBufferGetModified :: forall self. TextBufferClass self => self -> IO Bool
textBufferGetModified self
self =
  (CInt -> Bool) -> IO CInt -> IO Bool
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
liftM CInt -> Bool
forall a. (Eq a, Num a) => a -> Bool
toBool (IO CInt -> IO Bool) -> IO CInt -> IO Bool
forall a b. (a -> b) -> a -> b
$
  (\(TextBuffer ForeignPtr TextBuffer
arg1) -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO CInt) -> IO CInt
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO CInt) -> IO CInt)
-> (Ptr TextBuffer -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->Ptr TextBuffer -> IO CInt
gtk_text_buffer_get_modified Ptr TextBuffer
argPtr1)
{-# LINE 924 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)

-- | 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 :: TextBufferClass self => self -> Bool -> IO ()
textBufferSetModified :: forall self. TextBufferClass self => self -> Bool -> IO ()
textBufferSetModified self
self Bool
setting =
  (\(TextBuffer ForeignPtr TextBuffer
arg1) CInt
arg2 -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->Ptr TextBuffer -> CInt -> IO ()
gtk_text_buffer_set_modified Ptr TextBuffer
argPtr1 CInt
arg2)
{-# LINE 935 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    (Bool -> CInt
forall a. Num a => Bool -> a
fromBool Bool
setting)

-- | 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 :: TextBufferClass self => self
 -> Bool -- ^ @interactive@ - whether the deletion is caused by user
            -- interaction
 -> Bool -- ^ @defaultEditable@ - whether the buffer is editable by default
 -> IO Bool -- ^ returns whether there was a non-empty selection to delete
textBufferDeleteSelection :: forall self.
TextBufferClass self =>
self -> Bool -> Bool -> IO Bool
textBufferDeleteSelection self
self Bool
interactive Bool
defaultEditable =
  (CInt -> Bool) -> IO CInt -> IO Bool
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
liftM CInt -> Bool
forall a. (Eq a, Num a) => a -> Bool
toBool (IO CInt -> IO Bool) -> IO CInt -> IO Bool
forall a b. (a -> b) -> a -> b
$
  (\(TextBuffer ForeignPtr TextBuffer
arg1) CInt
arg2 CInt
arg3 -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO CInt) -> IO CInt
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO CInt) -> IO CInt)
-> (Ptr TextBuffer -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->Ptr TextBuffer -> CInt -> CInt -> IO CInt
gtk_text_buffer_delete_selection Ptr TextBuffer
argPtr1 CInt
arg2 CInt
arg3)
{-# LINE 951 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    (Bool -> CInt
forall a. Num a => Bool -> a
fromBool Bool
interactive)
    (Bool -> CInt
forall a. Num a => Bool -> a
fromBool Bool
defaultEditable)

-- | Check if a selection exists.
--
textBufferHasSelection :: TextBufferClass self => self -> IO Bool
textBufferHasSelection :: forall self. TextBufferClass self => self -> IO Bool
textBufferHasSelection self
self =
  (CInt -> Bool) -> IO CInt -> IO Bool
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
liftM CInt -> Bool
forall a. (Eq a, Num a) => a -> Bool
toBool (IO CInt -> IO Bool) -> IO CInt -> IO Bool
forall a b. (a -> b) -> a -> b
$
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (TextIter ForeignPtr TextIter
arg2) (TextIter ForeignPtr TextIter
arg3) -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO CInt) -> IO CInt
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO CInt) -> IO CInt)
-> (Ptr TextBuffer -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextIter -> (Ptr TextIter -> IO CInt) -> IO CInt
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg2 ((Ptr TextIter -> IO CInt) -> IO CInt)
-> (Ptr TextIter -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr2 ->ForeignPtr TextIter -> (Ptr TextIter -> IO CInt) -> IO CInt
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg3 ((Ptr TextIter -> IO CInt) -> IO CInt)
-> (Ptr TextIter -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr3 ->Ptr TextBuffer -> Ptr TextIter -> Ptr TextIter -> IO CInt
gtk_text_buffer_get_selection_bounds Ptr TextBuffer
argPtr1 Ptr TextIter
argPtr2 Ptr TextIter
argPtr3)
{-# LINE 961 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    (ForeignPtr TextIter -> TextIter
TextIter ForeignPtr TextIter
forall a. ForeignPtr a
nullForeignPtr)
    (ForeignPtr TextIter -> TextIter
TextIter ForeignPtr TextIter
forall a. ForeignPtr a
nullForeignPtr)

-- | 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 :: TextBufferClass self => self
 -> IO (TextIter, TextIter) -- ^ @(start, end)@ returns the selection start and
                            -- end iterators
textBufferGetSelectionBounds :: forall self.
TextBufferClass self =>
self -> IO (TextIter, TextIter)
textBufferGetSelectionBounds self
self = do
  TextIter
start <- IO TextIter
makeEmptyTextIter
  TextIter
end <- IO TextIter
makeEmptyTextIter
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (TextIter ForeignPtr TextIter
arg2) (TextIter ForeignPtr TextIter
arg3) -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO CInt) -> IO CInt
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO CInt) -> IO CInt)
-> (Ptr TextBuffer -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextIter -> (Ptr TextIter -> IO CInt) -> IO CInt
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg2 ((Ptr TextIter -> IO CInt) -> IO CInt)
-> (Ptr TextIter -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr2 ->ForeignPtr TextIter -> (Ptr TextIter -> IO CInt) -> IO CInt
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg3 ((Ptr TextIter -> IO CInt) -> IO CInt)
-> (Ptr TextIter -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr3 ->Ptr TextBuffer -> Ptr TextIter -> Ptr TextIter -> IO CInt
gtk_text_buffer_get_selection_bounds Ptr TextBuffer
argPtr1 Ptr TextIter
argPtr2 Ptr TextIter
argPtr3)
{-# LINE 976 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    TextIter
start
    TextIter
end
  (TextIter, TextIter) -> IO (TextIter, TextIter)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (TextIter
start, TextIter
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 :: TextBufferClass self => self -> IO ()
textBufferBeginUserAction :: forall self. TextBufferClass self => self -> IO ()
textBufferBeginUserAction self
self =
  (\(TextBuffer ForeignPtr TextBuffer
arg1) -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->Ptr TextBuffer -> IO ()
gtk_text_buffer_begin_user_action Ptr TextBuffer
argPtr1)
{-# LINE 999 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)

-- | Should be paired with a call to 'textBufferBeginUserAction'. See that
-- function for a full explanation.
--
textBufferEndUserAction :: TextBufferClass self => self -> IO ()
textBufferEndUserAction :: forall self. TextBufferClass self => self -> IO ()
textBufferEndUserAction self
self =
  (\(TextBuffer ForeignPtr TextBuffer
arg1) -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->Ptr TextBuffer -> IO ()
gtk_text_buffer_end_user_action Ptr TextBuffer
argPtr1)
{-# LINE 1007 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)


-- | 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 :: TextBufferClass self => 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
 -> IO Bool -- ^ returns @True@ if the buffer was modified
textBufferBackspace :: forall self.
TextBufferClass self =>
self -> TextIter -> Bool -> Bool -> IO Bool
textBufferBackspace self
self TextIter
iter Bool
interactive Bool
defaultEditable =
  (CInt -> Bool) -> IO CInt -> IO Bool
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
liftM CInt -> Bool
forall a. (Eq a, Num a) => a -> Bool
toBool (IO CInt -> IO Bool) -> IO CInt -> IO Bool
forall a b. (a -> b) -> a -> b
$
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (TextIter ForeignPtr TextIter
arg2) CInt
arg3 CInt
arg4 -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO CInt) -> IO CInt
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO CInt) -> IO CInt)
-> (Ptr TextBuffer -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextIter -> (Ptr TextIter -> IO CInt) -> IO CInt
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg2 ((Ptr TextIter -> IO CInt) -> IO CInt)
-> (Ptr TextIter -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr2 ->Ptr TextBuffer -> Ptr TextIter -> CInt -> CInt -> IO CInt
gtk_text_buffer_backspace Ptr TextBuffer
argPtr1 Ptr TextIter
argPtr2 CInt
arg3 CInt
arg4)
{-# LINE 1032 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    TextIter
iter
    (Bool -> CInt
forall a. Num a => Bool -> a
fromBool Bool
interactive)
    (Bool -> CInt
forall a. Num a => Bool -> a
fromBool Bool
defaultEditable)


-- | 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 :: TextBufferClass self => self
 -> TextIter -- ^ @iter@ - location to insert the anchor
 -> TextChildAnchor -- ^ @anchor@ - a 'TextChildAnchor'
 -> IO ()
textBufferInsertChildAnchor :: forall self.
TextBufferClass self =>
self -> TextIter -> TextChildAnchor -> IO ()
textBufferInsertChildAnchor self
self TextIter
iter TextChildAnchor
anchor =
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (TextIter ForeignPtr TextIter
arg2) (TextChildAnchor ForeignPtr TextChildAnchor
arg3) -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextIter -> (Ptr TextIter -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg2 ((Ptr TextIter -> IO ()) -> IO ())
-> (Ptr TextIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr2 ->ForeignPtr TextChildAnchor
-> (Ptr TextChildAnchor -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextChildAnchor
arg3 ((Ptr TextChildAnchor -> IO ()) -> IO ())
-> (Ptr TextChildAnchor -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextChildAnchor
argPtr3 ->Ptr TextBuffer -> Ptr TextIter -> Ptr TextChildAnchor -> IO ()
gtk_text_buffer_insert_child_anchor Ptr TextBuffer
argPtr1 Ptr TextIter
argPtr2 Ptr TextChildAnchor
argPtr3)
{-# LINE 1054 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    TextIter
iter
    TextChildAnchor
anchor

-- | 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 :: TextBufferClass self => self
 -> TextIter -- ^ @iter@ - location in the buffer
 -> IO TextChildAnchor -- ^ returns the created child anchor
textBufferCreateChildAnchor :: forall self.
TextBufferClass self =>
self -> TextIter -> IO TextChildAnchor
textBufferCreateChildAnchor self
self TextIter
iter =
  (ForeignPtr TextChildAnchor -> TextChildAnchor,
 FinalizerPtr TextChildAnchor)
-> IO (Ptr TextChildAnchor) -> IO TextChildAnchor
forall obj.
GObjectClass obj =>
(ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
makeNewGObject (ForeignPtr TextChildAnchor -> TextChildAnchor,
 FinalizerPtr TextChildAnchor)
forall {a}.
(ForeignPtr TextChildAnchor -> TextChildAnchor, FinalizerPtr a)
mkTextChildAnchor (IO (Ptr TextChildAnchor) -> IO TextChildAnchor)
-> IO (Ptr TextChildAnchor) -> IO TextChildAnchor
forall a b. (a -> b) -> a -> b
$
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (TextIter ForeignPtr TextIter
arg2) -> ForeignPtr TextBuffer
-> (Ptr TextBuffer -> IO (Ptr TextChildAnchor))
-> IO (Ptr TextChildAnchor)
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO (Ptr TextChildAnchor))
 -> IO (Ptr TextChildAnchor))
-> (Ptr TextBuffer -> IO (Ptr TextChildAnchor))
-> IO (Ptr TextChildAnchor)
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextIter
-> (Ptr TextIter -> IO (Ptr TextChildAnchor))
-> IO (Ptr TextChildAnchor)
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg2 ((Ptr TextIter -> IO (Ptr TextChildAnchor))
 -> IO (Ptr TextChildAnchor))
-> (Ptr TextIter -> IO (Ptr TextChildAnchor))
-> IO (Ptr TextChildAnchor)
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr2 ->Ptr TextBuffer -> Ptr TextIter -> IO (Ptr TextChildAnchor)
gtk_text_buffer_create_child_anchor Ptr TextBuffer
argPtr1 Ptr TextIter
argPtr2)
{-# LINE 1068 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    TextIter
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 :: TextBufferClass self => self
 -> TextIter -- ^ @ins@ - where to put the \"insert\" mark
 -> TextIter -- ^ @bound@ - where to put the \"selection_bound\" mark
 -> IO ()
textBufferSelectRange :: forall self.
TextBufferClass self =>
self -> TextIter -> TextIter -> IO ()
textBufferSelectRange self
self TextIter
ins TextIter
bound =
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (TextIter ForeignPtr TextIter
arg2) (TextIter ForeignPtr TextIter
arg3) -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextIter -> (Ptr TextIter -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg2 ((Ptr TextIter -> IO ()) -> IO ())
-> (Ptr TextIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr2 ->ForeignPtr TextIter -> (Ptr TextIter -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg3 ((Ptr TextIter -> IO ()) -> IO ())
-> (Ptr TextIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr3 ->Ptr TextBuffer -> Ptr TextIter -> Ptr TextIter -> IO ()
gtk_text_buffer_select_range Ptr TextBuffer
argPtr1 Ptr TextIter
argPtr2 Ptr TextIter
argPtr3)
{-# LINE 1087 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    TextIter
ins
    TextIter
bound


-- | Obtains the location of @anchor@ within @buffer@.
--
textBufferGetIterAtChildAnchor :: TextBufferClass self => self
 -> TextIter -- ^ @iter@ - an iterator to be initialized
 -> TextChildAnchor -- ^ @anchor@ - a child anchor that appears in @buffer@
 -> IO ()
textBufferGetIterAtChildAnchor :: forall self.
TextBufferClass self =>
self -> TextIter -> TextChildAnchor -> IO ()
textBufferGetIterAtChildAnchor self
self TextIter
iter TextChildAnchor
anchor =
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (TextIter ForeignPtr TextIter
arg2) (TextChildAnchor ForeignPtr TextChildAnchor
arg3) -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextIter -> (Ptr TextIter -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg2 ((Ptr TextIter -> IO ()) -> IO ())
-> (Ptr TextIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr2 ->ForeignPtr TextChildAnchor
-> (Ptr TextChildAnchor -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextChildAnchor
arg3 ((Ptr TextChildAnchor -> IO ()) -> IO ())
-> (Ptr TextChildAnchor -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextChildAnchor
argPtr3 ->Ptr TextBuffer -> Ptr TextIter -> Ptr TextChildAnchor -> IO ()
gtk_text_buffer_get_iter_at_child_anchor Ptr TextBuffer
argPtr1 Ptr TextIter
argPtr2 Ptr TextChildAnchor
argPtr3)
{-# LINE 1100 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    TextIter
iter
    TextChildAnchor
anchor

-- | Retrieves the first and last iterators in the buffer, i.e. the entire
-- buffer lies within the range @[start,end)@.
--
textBufferGetBounds :: TextBufferClass self => self
 -> IO (TextIter, TextIter) -- ^ return the first and last iterators in the buffer
textBufferGetBounds :: forall self.
TextBufferClass self =>
self -> IO (TextIter, TextIter)
textBufferGetBounds self
self = do
  TextIter
start <- IO TextIter
makeEmptyTextIter
  TextIter
end <- IO TextIter
makeEmptyTextIter
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (TextIter ForeignPtr TextIter
arg2) (TextIter ForeignPtr TextIter
arg3) -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr TextIter -> (Ptr TextIter -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg2 ((Ptr TextIter -> IO ()) -> IO ())
-> (Ptr TextIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr2 ->ForeignPtr TextIter -> (Ptr TextIter -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg3 ((Ptr TextIter -> IO ()) -> IO ())
-> (Ptr TextIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr3 ->Ptr TextBuffer -> Ptr TextIter -> Ptr TextIter -> IO ()
gtk_text_buffer_get_bounds Ptr TextBuffer
argPtr1 Ptr TextIter
argPtr2 Ptr TextIter
argPtr3)
{-# LINE 1113 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    TextIter
start
    TextIter
end
  (TextIter, TextIter) -> IO (TextIter, TextIter)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (TextIter
start, TextIter
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 :: TextBufferClass self => 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 ()
textBufferPasteClipboard :: forall self.
TextBufferClass self =>
self -> Clipboard -> TextIter -> Bool -> IO ()
textBufferPasteClipboard self
self Clipboard
clipboard TextIter
overrideLocation Bool
defaultEditable =
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (Clipboard ForeignPtr Clipboard
arg2) (TextIter ForeignPtr TextIter
arg3) CInt
arg4 -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr Clipboard -> (Ptr Clipboard -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Clipboard
arg2 ((Ptr Clipboard -> IO ()) -> IO ())
-> (Ptr Clipboard -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr Clipboard
argPtr2 ->ForeignPtr TextIter -> (Ptr TextIter -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg3 ((Ptr TextIter -> IO ()) -> IO ())
-> (Ptr TextIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr3 ->Ptr TextBuffer -> Ptr Clipboard -> Ptr TextIter -> CInt -> IO ()
gtk_text_buffer_paste_clipboard Ptr TextBuffer
argPtr1 Ptr Clipboard
argPtr2 Ptr TextIter
argPtr3 CInt
arg4)
{-# LINE 1130 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    Clipboard
clipboard
    TextIter
overrideLocation
    (Bool -> CInt
forall a. Num a => Bool -> a
fromBool Bool
defaultEditable)

-- | 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 :: TextBufferClass self => self
  -> Clipboard -- ^ @clipboard@ - the GtkClipboard to paste from
  -> Bool -- ^ @defaultEditable@ - whether the buffer is editable by default
  -> IO ()
textBufferPasteClipboardAtCursor :: forall self.
TextBufferClass self =>
self -> Clipboard -> Bool -> IO ()
textBufferPasteClipboardAtCursor self
self Clipboard
clipboard Bool
defaultEditable =
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (Clipboard ForeignPtr Clipboard
arg2) (TextIter ForeignPtr TextIter
arg3) CInt
arg4 -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr Clipboard -> (Ptr Clipboard -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Clipboard
arg2 ((Ptr Clipboard -> IO ()) -> IO ())
-> (Ptr Clipboard -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr Clipboard
argPtr2 ->ForeignPtr TextIter -> (Ptr TextIter -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextIter
arg3 ((Ptr TextIter -> IO ()) -> IO ())
-> (Ptr TextIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextIter
argPtr3 ->Ptr TextBuffer -> Ptr Clipboard -> Ptr TextIter -> CInt -> IO ()
gtk_text_buffer_paste_clipboard Ptr TextBuffer
argPtr1 Ptr Clipboard
argPtr2 Ptr TextIter
argPtr3 CInt
arg4)
{-# LINE 1145 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    Clipboard
clipboard
    (ForeignPtr TextIter -> TextIter
TextIter ForeignPtr TextIter
forall a. ForeignPtr a
nullForeignPtr)
    (Bool -> CInt
forall a. Num a => Bool -> a
fromBool Bool
defaultEditable)

-- | Copies the currently-selected text to a clipboard.
textBufferCopyClipboard :: TextBufferClass self => self
  -> Clipboard -- ^ @clipboard@ - the GtkClipboard object to copy to
  -> IO ()
textBufferCopyClipboard :: forall self. TextBufferClass self => self -> Clipboard -> IO ()
textBufferCopyClipboard self
self Clipboard
clipboard =
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (Clipboard ForeignPtr Clipboard
arg2) -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr Clipboard -> (Ptr Clipboard -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Clipboard
arg2 ((Ptr Clipboard -> IO ()) -> IO ())
-> (Ptr Clipboard -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr Clipboard
argPtr2 ->Ptr TextBuffer -> Ptr Clipboard -> IO ()
gtk_text_buffer_copy_clipboard Ptr TextBuffer
argPtr1 Ptr Clipboard
argPtr2)
{-# LINE 1156 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    Clipboard
clipboard

-- | Copies the currently-selected text to a clipboard,
-- then deletes said text if it's editable.
textBufferCutClipboard :: TextBufferClass self => self
  -> Clipboard -- ^ @clipboard@ - the GtkClipboard object to cut to
  -> Bool -- ^ @defaultEditable@ - whether the buffer is editable by default
  -> IO ()
textBufferCutClipboard :: forall self.
TextBufferClass self =>
self -> Clipboard -> Bool -> IO ()
textBufferCutClipboard self
self Clipboard
clipboard Bool
defaultEditable =
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (Clipboard ForeignPtr Clipboard
arg2) CInt
arg3 -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr Clipboard -> (Ptr Clipboard -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Clipboard
arg2 ((Ptr Clipboard -> IO ()) -> IO ())
-> (Ptr Clipboard -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr Clipboard
argPtr2 ->Ptr TextBuffer -> Ptr Clipboard -> CInt -> IO ()
gtk_text_buffer_cut_clipboard Ptr TextBuffer
argPtr1 Ptr Clipboard
argPtr2 CInt
arg3)
{-# LINE 1167 "./Graphics/UI/Gtk/Multiline/TextBuffer.chs" #-}
    (toTextBuffer self)
    Clipboard
clipboard
    (Bool -> CInt
forall a. Num a => Bool -> a
fromBool Bool
defaultEditable)


-- | 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 :: TextBufferClass self => self
 -> Clipboard -- ^ @clipboard@ - the 'Clipboard' object to add
 -> IO ()
textBufferAddSelectionClipboard :: forall self. TextBufferClass self => self -> Clipboard -> IO ()
textBufferAddSelectionClipboard self
self Clipboard
clipboard =
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (Clipboard ForeignPtr Clipboard
arg2) -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr Clipboard -> (Ptr Clipboard -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Clipboard
arg2 ((Ptr Clipboard -> IO ()) -> IO ())
-> (Ptr Clipboard -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr Clipboard
argPtr2 ->Ptr TextBuffer -> Ptr Clipboard -> IO ()
gtk_text_buffer_add_selection_clipboard Ptr TextBuffer
argPtr1 Ptr Clipboard
argPtr2) (self -> TextBuffer
forall o. TextBufferClass o => o -> TextBuffer
toTextBuffer self
self) Clipboard
clipboard

-- | Removes a 'Clipboard' added with 'textBufferAddSelectionClipboard'.
--
textBufferRemoveSelectionClipboard :: TextBufferClass self => self
 -> Clipboard -- ^ @clipboard@ - the 'Clipboard' object to remove
 -> IO ()
textBufferRemoveSelectionClipboard :: forall self. TextBufferClass self => self -> Clipboard -> IO ()
textBufferRemoveSelectionClipboard self
self Clipboard
clipboard =
  (\(TextBuffer ForeignPtr TextBuffer
arg1) (Clipboard ForeignPtr Clipboard
arg2) -> ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg1 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr1 ->ForeignPtr Clipboard -> (Ptr Clipboard -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Clipboard
arg2 ((Ptr Clipboard -> IO ()) -> IO ())
-> (Ptr Clipboard -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr Clipboard
argPtr2 ->Ptr TextBuffer -> Ptr Clipboard -> IO ()
gtk_text_buffer_remove_selection_clipboard Ptr TextBuffer
argPtr1 Ptr Clipboard
argPtr2) (self -> TextBuffer
forall o. TextBufferClass o => o -> TextBuffer
toTextBuffer self
self) Clipboard
clipboard

--------------------
-- Attributes

-- | Text Tag Table.
--
textBufferTagTable :: (TextBufferClass self, TextTagTableClass textTagTable)
 => ReadWriteAttr self TextTagTable textTagTable
textBufferTagTable :: forall self textTagTable.
(TextBufferClass self, TextTagTableClass textTagTable) =>
ReadWriteAttr self TextTagTable textTagTable
textBufferTagTable = String -> GType -> ReadWriteAttr self TextTagTable textTagTable
forall gobj gobj' gobj''.
(GObjectClass gobj, GObjectClass gobj', GObjectClass gobj'') =>
String -> GType -> ReadWriteAttr gobj gobj' gobj''
newAttrFromObjectProperty String
"tag-table"
  GType
gtk_text_tag_table_get_type
{-# LINE 1198 "./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 :: (TextBufferClass self, GlibString string) => Attr self string
textBufferText :: forall self string.
(TextBufferClass self, GlibString string) =>
Attr self string
textBufferText = String -> Attr self string
forall gobj string.
(GObjectClass gobj, GlibString string) =>
String -> Attr gobj string
newAttrFromStringProperty String
"text"


-- | The \'modified\' property. See 'textBufferGetModified' and
-- 'textBufferSetModified'
--
textBufferModified :: TextBufferClass self => Attr self Bool
textBufferModified :: forall self. TextBufferClass self => Attr self Bool
textBufferModified = (self -> IO Bool)
-> (self -> Bool -> IO ()) -> ReadWriteAttr self Bool Bool
forall o a b.
(o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
newAttr
  self -> IO Bool
forall self. TextBufferClass self => self -> IO Bool
textBufferGetModified
  self -> Bool -> IO ()
forall self. TextBufferClass self => self -> Bool -> IO ()
textBufferSetModified

--------------------
-- Signals

-- | A 'TextTag' was applied to a region of text.
--
applyTag :: TextBufferClass self => Signal self (TextTag -> TextIter -> TextIter -> IO ())
applyTag :: forall self.
TextBufferClass self =>
Signal self (TextTag -> TextIter -> TextIter -> IO ())
applyTag = (Bool
 -> self
 -> (TextTag -> TextIter -> TextIter -> IO ())
 -> IO (ConnectId self))
-> Signal self (TextTag -> TextIter -> TextIter -> IO ())
forall object handler.
(Bool -> object -> handler -> IO (ConnectId object))
-> Signal object handler
Signal (String
-> (Ptr TextIter -> IO TextIter)
-> (Ptr TextIter -> IO TextIter)
-> Bool
-> self
-> (TextTag -> TextIter -> TextIter -> IO ())
-> IO (ConnectId self)
forall a' obj b' b c' c.
(GObjectClass a', GObjectClass obj) =>
String
-> (Ptr b' -> IO b)
-> (Ptr c' -> IO c)
-> Bool
-> obj
-> (a' -> b -> c -> IO ())
-> IO (ConnectId obj)
connect_OBJECT_BOXED_BOXED__NONE String
"apply-tag" Ptr TextIter -> IO TextIter
mkTextIterCopy Ptr TextIter -> IO TextIter
mkTextIterCopy)

-- | A new atomic user action is started.
--
-- * Together with 'endUserAction' these signals can be
-- used to build an undo stack.
--
beginUserAction :: TextBufferClass self => Signal self (IO ())
beginUserAction :: forall self. TextBufferClass self => Signal self (IO ())
beginUserAction = (Bool -> self -> IO () -> IO (ConnectId self))
-> Signal self (IO ())
forall object handler.
(Bool -> object -> handler -> IO (ConnectId object))
-> Signal object handler
Signal (String -> Bool -> self -> IO () -> IO (ConnectId self)
forall obj.
GObjectClass obj =>
String -> Bool -> obj -> IO () -> IO (ConnectId obj)
connect_NONE__NONE String
"begin-user-action")

-- | Emitted when the contents of the buffer change.
--
bufferChanged :: TextBufferClass self => Signal self (IO ())
bufferChanged :: forall self. TextBufferClass self => Signal self (IO ())
bufferChanged = (Bool -> self -> IO () -> IO (ConnectId self))
-> Signal self (IO ())
forall object handler.
(Bool -> object -> handler -> IO (ConnectId object))
-> Signal object handler
Signal (String -> Bool -> self -> IO () -> IO (ConnectId self)
forall obj.
GObjectClass obj =>
String -> Bool -> obj -> IO () -> IO (ConnectId obj)
connect_NONE__NONE String
"changed")

-- | A range of text is about to be deleted.
--
deleteRange :: TextBufferClass self => Signal self (TextIter -> TextIter -> IO ())
deleteRange :: forall self.
TextBufferClass self =>
Signal self (TextIter -> TextIter -> IO ())
deleteRange = (Bool
 -> self -> (TextIter -> TextIter -> IO ()) -> IO (ConnectId self))
-> Signal self (TextIter -> TextIter -> IO ())
forall object handler.
(Bool -> object -> handler -> IO (ConnectId object))
-> Signal object handler
Signal (String
-> (Ptr TextIter -> IO TextIter)
-> (Ptr TextIter -> IO TextIter)
-> Bool
-> self
-> (TextIter -> TextIter -> IO ())
-> IO (ConnectId self)
forall obj a' a b' b.
GObjectClass obj =>
String
-> (Ptr a' -> IO a)
-> (Ptr b' -> IO b)
-> Bool
-> obj
-> (a -> b -> IO ())
-> IO (ConnectId obj)
connect_BOXED_BOXED__NONE String
"delete-range" Ptr TextIter -> IO TextIter
mkTextIterCopy Ptr TextIter -> IO TextIter
mkTextIterCopy)

-- | An atomic action has ended.
--
-- * see 'beginUserAction'
--
endUserAction :: TextBufferClass self => Signal self (IO ())
endUserAction :: forall self. TextBufferClass self => Signal self (IO ())
endUserAction = (Bool -> self -> IO () -> IO (ConnectId self))
-> Signal self (IO ())
forall object handler.
(Bool -> object -> handler -> IO (ConnectId object))
-> Signal object handler
Signal (String -> Bool -> self -> IO () -> IO (ConnectId self)
forall obj.
GObjectClass obj =>
String -> Bool -> obj -> IO () -> IO (ConnectId obj)
connect_NONE__NONE String
"end-user-action")

-- | A 'Pixbuf' is inserted into the buffer.
--
-- * See note in 'bufferInsertText'.
--
insertPixbuf :: TextBufferClass self => Signal self (TextIter -> Pixbuf -> IO ())
insertPixbuf :: forall self.
TextBufferClass self =>
Signal self (TextIter -> Pixbuf -> IO ())
insertPixbuf = (Bool
 -> self -> (TextIter -> Pixbuf -> IO ()) -> IO (ConnectId self))
-> Signal self (TextIter -> Pixbuf -> IO ())
forall object handler.
(Bool -> object -> handler -> IO (ConnectId object))
-> Signal object handler
Signal (String
-> (Ptr TextIter -> IO TextIter)
-> Bool
-> self
-> (TextIter -> Pixbuf -> IO ())
-> IO (ConnectId self)
forall b' obj a' a.
(GObjectClass b', GObjectClass obj) =>
String
-> (Ptr a' -> IO a)
-> Bool
-> obj
-> (a -> b' -> IO ())
-> IO (ConnectId obj)
connect_BOXED_OBJECT__NONE String
"insert-pixbuf" Ptr TextIter -> IO TextIter
mkTextIterCopy)

-- | The 'insertChildAnchor' signal is emitted to insert a 'TextChildAnchor' in a 'TextBuffer'.
-- Insertion actually occurs in the default handler.
--
-- * See note in 'bufferInsertText'.
--
insertChildAnchor :: TextBufferClass self => Signal self (TextIter -> TextChildAnchor -> IO ())
insertChildAnchor :: forall self.
TextBufferClass self =>
Signal self (TextIter -> TextChildAnchor -> IO ())
insertChildAnchor = (Bool
 -> self
 -> (TextIter -> TextChildAnchor -> IO ())
 -> IO (ConnectId self))
-> Signal self (TextIter -> TextChildAnchor -> IO ())
forall object handler.
(Bool -> object -> handler -> IO (ConnectId object))
-> Signal object handler
Signal (String
-> (Ptr TextIter -> IO TextIter)
-> Bool
-> self
-> (TextIter -> TextChildAnchor -> IO ())
-> IO (ConnectId self)
forall b' obj a' a.
(GObjectClass b', GObjectClass obj) =>
String
-> (Ptr a' -> IO a)
-> Bool
-> obj
-> (a -> b' -> IO ())
-> IO (ConnectId obj)
connect_BOXED_OBJECT__NONE String
"insert-child-anchor" Ptr TextIter -> IO TextIter
mkTextIterCopy)

-- | Some text is inserted. Insertion actually occurs in the default handler.
--
-- * The function connected to this handler may not modify the buffer since
-- this would invalidate the iterator. If this function replaces the
-- default handler, it needs to stop the emission of this signal in order
-- to prevent the default handler from running. If additional text should
-- be inserted, this can be done using the 'after' function to connect.
--
bufferInsertText :: (TextBufferClass self, GlibString string) => Signal self (TextIter -> string -> IO ())
bufferInsertText :: forall self string.
(TextBufferClass self, GlibString string) =>
Signal self (TextIter -> string -> IO ())
bufferInsertText = (Bool
 -> self -> (TextIter -> string -> IO ()) -> IO (ConnectId self))
-> Signal self (TextIter -> string -> IO ())
forall object handler.
(Bool -> object -> handler -> IO (ConnectId object))
-> Signal object handler
Signal ((Bool
  -> self -> (TextIter -> string -> IO ()) -> IO (ConnectId self))
 -> Signal self (TextIter -> string -> IO ()))
-> (Bool
    -> self -> (TextIter -> string -> IO ()) -> IO (ConnectId self))
-> Signal self (TextIter -> string -> IO ())
forall a b. (a -> b) -> a -> b
$ \Bool
after self
obj TextIter -> string -> IO ()
handler ->
  String
-> (Ptr TextIter -> IO TextIter)
-> Bool
-> self
-> (TextIter -> Ptr CChar -> Int -> IO ())
-> IO (ConnectId self)
forall obj a' a b.
GObjectClass obj =>
String
-> (Ptr a' -> IO a)
-> Bool
-> obj
-> (a -> Ptr b -> Int -> IO ())
-> IO (ConnectId obj)
connect_BOXED_PTR_INT__NONE String
"insert-text" Ptr TextIter -> IO TextIter
mkTextIterCopy Bool
after self
obj
  (\TextIter
iter Ptr CChar
strPtr Int
strLen -> CStringLen -> IO string
forall s. GlibString s => CStringLen -> IO s
peekUTFStringLen (Ptr CChar
strPtr, Int
strLen) IO string -> (string -> IO ()) -> IO ()
forall a b. IO a -> (a -> IO b) -> IO b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TextIter -> string -> IO ()
handler TextIter
iter)

-- | A 'TextMark' within the buffer was deleted.
--
markDeleted :: TextBufferClass self => Signal self (TextMark -> IO ())
markDeleted :: forall self.
TextBufferClass self =>
Signal self (TextMark -> IO ())
markDeleted = (Bool -> self -> (TextMark -> IO ()) -> IO (ConnectId self))
-> Signal self (TextMark -> IO ())
forall object handler.
(Bool -> object -> handler -> IO (ConnectId object))
-> Signal object handler
Signal (String
-> Bool -> self -> (TextMark -> IO ()) -> IO (ConnectId self)
forall a' obj.
(GObjectClass a', GObjectClass obj) =>
String -> Bool -> obj -> (a' -> IO ()) -> IO (ConnectId obj)
connect_OBJECT__NONE String
"mark-deleted")

-- | A 'TextMark' was inserted into the buffer.
--
markSet :: TextBufferClass self => Signal self (TextIter -> TextMark -> IO ())
markSet :: forall self.
TextBufferClass self =>
Signal self (TextIter -> TextMark -> IO ())
markSet = (Bool
 -> self -> (TextIter -> TextMark -> IO ()) -> IO (ConnectId self))
-> Signal self (TextIter -> TextMark -> IO ())
forall object handler.
(Bool -> object -> handler -> IO (ConnectId object))
-> Signal object handler
Signal (String
-> (Ptr TextIter -> IO TextIter)
-> Bool
-> self
-> (TextIter -> TextMark -> IO ())
-> IO (ConnectId self)
forall b' obj a' a.
(GObjectClass b', GObjectClass obj) =>
String
-> (Ptr a' -> IO a)
-> Bool
-> obj
-> (a -> b' -> IO ())
-> IO (ConnectId obj)
connect_BOXED_OBJECT__NONE String
"mark-set" Ptr TextIter -> IO TextIter
mkTextIterCopy)

modifiedChanged :: TextBufferClass self => Signal self (IO ())
modifiedChanged :: forall self. TextBufferClass self => Signal self (IO ())
modifiedChanged = (Bool -> self -> IO () -> IO (ConnectId self))
-> Signal self (IO ())
forall object handler.
(Bool -> object -> handler -> IO (ConnectId object))
-> Signal object handler
Signal (String -> Bool -> self -> IO () -> IO (ConnectId self)
forall obj.
GObjectClass obj =>
String -> Bool -> obj -> IO () -> IO (ConnectId obj)
connect_NONE__NONE String
"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 :: TextBufferClass self => Signal self (Clipboard -> IO ())
pasteDone :: forall self.
TextBufferClass self =>
Signal self (Clipboard -> IO ())
pasteDone = (Bool -> self -> (Clipboard -> IO ()) -> IO (ConnectId self))
-> Signal self (Clipboard -> IO ())
forall object handler.
(Bool -> object -> handler -> IO (ConnectId object))
-> Signal object handler
Signal (String
-> Bool -> self -> (Clipboard -> IO ()) -> IO (ConnectId self)
forall a' obj.
(GObjectClass a', GObjectClass obj) =>
String -> Bool -> obj -> (a' -> IO ()) -> IO (ConnectId obj)
connect_OBJECT__NONE String
"paste-done")

-- | The textbuffer has changed.
--
removeTag :: TextBufferClass self => Signal self (TextTag -> TextIter -> TextIter -> IO ())
removeTag :: forall self.
TextBufferClass self =>
Signal self (TextTag -> TextIter -> TextIter -> IO ())
removeTag = (Bool
 -> self
 -> (TextTag -> TextIter -> TextIter -> IO ())
 -> IO (ConnectId self))
-> Signal self (TextTag -> TextIter -> TextIter -> IO ())
forall object handler.
(Bool -> object -> handler -> IO (ConnectId object))
-> Signal object handler
Signal (String
-> (Ptr TextIter -> IO TextIter)
-> (Ptr TextIter -> IO TextIter)
-> Bool
-> self
-> (TextTag -> TextIter -> TextIter -> IO ())
-> IO (ConnectId self)
forall a' obj b' b c' c.
(GObjectClass a', GObjectClass obj) =>
String
-> (Ptr b' -> IO b)
-> (Ptr c' -> IO c)
-> Bool
-> obj
-> (a' -> b -> c -> IO ())
-> IO (ConnectId obj)
connect_OBJECT_BOXED_BOXED__NONE String
"remove-tag" Ptr TextIter -> IO TextIter
mkTextIterCopy Ptr TextIter -> IO TextIter
mkTextIterCopy)

--------------------
-- Deprecated Signals and Events



-- | A 'TextTag' was applied to a region of text.
--
onApplyTag, afterApplyTag :: TextBufferClass self => self
 -> (TextTag -> TextIter -> TextIter -> IO ())
 -> IO (ConnectId self)
onApplyTag :: forall self.
TextBufferClass self =>
self
-> (TextTag -> TextIter -> TextIter -> IO ())
-> IO (ConnectId self)
onApplyTag = String
-> (Ptr TextIter -> IO TextIter)
-> (Ptr TextIter -> IO TextIter)
-> Bool
-> self
-> (TextTag -> TextIter -> TextIter -> IO ())
-> IO (ConnectId self)
forall a' obj b' b c' c.
(GObjectClass a', GObjectClass obj) =>
String
-> (Ptr b' -> IO b)
-> (Ptr c' -> IO c)
-> Bool
-> obj
-> (a' -> b -> c -> IO ())
-> IO (ConnectId obj)
connect_OBJECT_BOXED_BOXED__NONE String
"apply-tag"
  Ptr TextIter -> IO TextIter
mkTextIterCopy Ptr TextIter -> IO TextIter
mkTextIterCopy Bool
False
afterApplyTag :: forall self.
TextBufferClass self =>
self
-> (TextTag -> TextIter -> TextIter -> IO ())
-> IO (ConnectId self)
afterApplyTag = String
-> (Ptr TextIter -> IO TextIter)
-> (Ptr TextIter -> IO TextIter)
-> Bool
-> self
-> (TextTag -> TextIter -> TextIter -> IO ())
-> IO (ConnectId self)
forall a' obj b' b c' c.
(GObjectClass a', GObjectClass obj) =>
String
-> (Ptr b' -> IO b)
-> (Ptr c' -> IO c)
-> Bool
-> obj
-> (a' -> b -> c -> IO ())
-> IO (ConnectId obj)
connect_OBJECT_BOXED_BOXED__NONE String
"apply-tag"
  Ptr TextIter -> IO TextIter
mkTextIterCopy Ptr TextIter -> IO TextIter
mkTextIterCopy Bool
True

-- | A new atomic user action is started.
--
-- * Together with 'onEndUserAction' these signals can be
-- used to build an undo stack.
--
onBeginUserAction, afterBeginUserAction :: TextBufferClass self => self
 -> IO ()
 -> IO (ConnectId self)
onBeginUserAction :: forall self.
TextBufferClass self =>
self -> IO () -> IO (ConnectId self)
onBeginUserAction = String -> Bool -> self -> IO () -> IO (ConnectId self)
forall obj.
GObjectClass obj =>
String -> Bool -> obj -> IO () -> IO (ConnectId obj)
connect_NONE__NONE String
"begin-user-action" Bool
False
afterBeginUserAction :: forall self.
TextBufferClass self =>
self -> IO () -> IO (ConnectId self)
afterBeginUserAction = String -> Bool -> self -> IO () -> IO (ConnectId self)
forall obj.
GObjectClass obj =>
String -> Bool -> obj -> IO () -> IO (ConnectId obj)
connect_NONE__NONE String
"begin-user-action" Bool
True

--- renamed from Changed to BufferChanged, since the former conflicts with TreeSelection
-- | Emitted when the contents of the buffer change.
--
onBufferChanged, afterBufferChanged :: TextBufferClass self => self
 -> IO ()
 -> IO (ConnectId self)
onBufferChanged :: forall self.
TextBufferClass self =>
self -> IO () -> IO (ConnectId self)
onBufferChanged = String -> Bool -> self -> IO () -> IO (ConnectId self)
forall obj.
GObjectClass obj =>
String -> Bool -> obj -> IO () -> IO (ConnectId obj)
connect_NONE__NONE String
"changed" Bool
False
afterBufferChanged :: forall self.
TextBufferClass self =>
self -> IO () -> IO (ConnectId self)
afterBufferChanged = String -> Bool -> self -> IO () -> IO (ConnectId self)
forall obj.
GObjectClass obj =>
String -> Bool -> obj -> IO () -> IO (ConnectId obj)
connect_NONE__NONE String
"changed" Bool
True

-- | A range of text is about to be deleted.
--
onDeleteRange, afterDeleteRange :: TextBufferClass self => self
 -> (TextIter -> TextIter -> IO ())
 -> IO (ConnectId self)
onDeleteRange :: forall self.
TextBufferClass self =>
self -> (TextIter -> TextIter -> IO ()) -> IO (ConnectId self)
onDeleteRange = String
-> (Ptr TextIter -> IO TextIter)
-> (Ptr TextIter -> IO TextIter)
-> Bool
-> self
-> (TextIter -> TextIter -> IO ())
-> IO (ConnectId self)
forall obj a' a b' b.
GObjectClass obj =>
String
-> (Ptr a' -> IO a)
-> (Ptr b' -> IO b)
-> Bool
-> obj
-> (a -> b -> IO ())
-> IO (ConnectId obj)
connect_BOXED_BOXED__NONE String
"delete-range"
  Ptr TextIter -> IO TextIter
mkTextIterCopy Ptr TextIter -> IO TextIter
mkTextIterCopy Bool
False
afterDeleteRange :: forall self.
TextBufferClass self =>
self -> (TextIter -> TextIter -> IO ()) -> IO (ConnectId self)
afterDeleteRange = String
-> (Ptr TextIter -> IO TextIter)
-> (Ptr TextIter -> IO TextIter)
-> Bool
-> self
-> (TextIter -> TextIter -> IO ())
-> IO (ConnectId self)
forall obj a' a b' b.
GObjectClass obj =>
String
-> (Ptr a' -> IO a)
-> (Ptr b' -> IO b)
-> Bool
-> obj
-> (a -> b -> IO ())
-> IO (ConnectId obj)
connect_BOXED_BOXED__NONE String
"delete-range"
  Ptr TextIter -> IO TextIter
mkTextIterCopy Ptr TextIter -> IO TextIter
mkTextIterCopy Bool
True

-- | An atomic action has ended.
--
-- * see 'onBeginUserAction'
--
onEndUserAction, afterEndUserAction :: TextBufferClass self => self
 -> IO ()
 -> IO (ConnectId self)
onEndUserAction :: forall self.
TextBufferClass self =>
self -> IO () -> IO (ConnectId self)
onEndUserAction = String -> Bool -> self -> IO () -> IO (ConnectId self)
forall obj.
GObjectClass obj =>
String -> Bool -> obj -> IO () -> IO (ConnectId obj)
connect_NONE__NONE String
"end-user-action" Bool
False
afterEndUserAction :: forall self.
TextBufferClass self =>
self -> IO () -> IO (ConnectId self)
afterEndUserAction = String -> Bool -> self -> IO () -> IO (ConnectId self)
forall obj.
GObjectClass obj =>
String -> Bool -> obj -> IO () -> IO (ConnectId obj)
connect_NONE__NONE String
"end-user-action" Bool
True

-- | A 'Pixbuf' is inserted into the
-- buffer.
--
onInsertPixbuf, afterInsertPixbuf :: TextBufferClass self => self
 -> (TextIter -> Pixbuf -> IO ())
 -> IO (ConnectId self)
onInsertPixbuf :: forall self.
TextBufferClass self =>
self -> (TextIter -> Pixbuf -> IO ()) -> IO (ConnectId self)
onInsertPixbuf = String
-> (Ptr TextIter -> IO TextIter)
-> Bool
-> self
-> (TextIter -> Pixbuf -> IO ())
-> IO (ConnectId self)
forall b' obj a' a.
(GObjectClass b', GObjectClass obj) =>
String
-> (Ptr a' -> IO a)
-> Bool
-> obj
-> (a -> b' -> IO ())
-> IO (ConnectId obj)
connect_BOXED_OBJECT__NONE String
"insert-pixbuf" Ptr TextIter -> IO TextIter
mkTextIterCopy Bool
False
afterInsertPixbuf :: forall self.
TextBufferClass self =>
self -> (TextIter -> Pixbuf -> IO ()) -> IO (ConnectId self)
afterInsertPixbuf = String
-> (Ptr TextIter -> IO TextIter)
-> Bool
-> self
-> (TextIter -> Pixbuf -> IO ())
-> IO (ConnectId self)
forall b' obj a' a.
(GObjectClass b', GObjectClass obj) =>
String
-> (Ptr a' -> IO a)
-> Bool
-> obj
-> (a -> b' -> IO ())
-> IO (ConnectId obj)
connect_BOXED_OBJECT__NONE String
"insert-pixbuf" Ptr TextIter -> IO TextIter
mkTextIterCopy Bool
True

-- | Some text was inserted.
--
onBufferInsertText, afterBufferInsertText :: (TextBufferClass self, GlibString string) => self
 -> (TextIter -> string -> IO ())
 -> IO (ConnectId self)
onBufferInsertText :: forall self string.
(TextBufferClass self, GlibString string) =>
self -> (TextIter -> string -> IO ()) -> IO (ConnectId self)
onBufferInsertText self
self TextIter -> string -> IO ()
user =
  String
-> (Ptr TextIter -> IO TextIter)
-> Bool
-> self
-> (TextIter -> Ptr CChar -> Int -> IO ())
-> IO (ConnectId self)
forall obj a' a b.
GObjectClass obj =>
String
-> (Ptr a' -> IO a)
-> Bool
-> obj
-> (a -> Ptr b -> Int -> IO ())
-> IO (ConnectId obj)
connect_BOXED_PTR_INT__NONE String
"insert-text" Ptr TextIter -> IO TextIter
mkTextIterCopy Bool
False self
self ((TextIter -> Ptr CChar -> Int -> IO ()) -> IO (ConnectId self))
-> (TextIter -> Ptr CChar -> Int -> IO ()) -> IO (ConnectId self)
forall a b. (a -> b) -> a -> b
$
    \TextIter
iter Ptr CChar
strP Int
strLen -> do
      string
str <- CStringLen -> IO string
forall s. GlibString s => CStringLen -> IO s
peekUTFStringLen (Ptr CChar
strP,Int
strLen)
      TextIter -> string -> IO ()
user TextIter
iter string
str
afterBufferInsertText :: forall self string.
(TextBufferClass self, GlibString string) =>
self -> (TextIter -> string -> IO ()) -> IO (ConnectId self)
afterBufferInsertText self
self TextIter -> string -> IO ()
user =
  String
-> (Ptr TextIter -> IO TextIter)
-> Bool
-> self
-> (TextIter -> Ptr CChar -> Int -> IO ())
-> IO (ConnectId self)
forall obj a' a b.
GObjectClass obj =>
String
-> (Ptr a' -> IO a)
-> Bool
-> obj
-> (a -> Ptr b -> Int -> IO ())
-> IO (ConnectId obj)
connect_BOXED_PTR_INT__NONE String
"insert-text" Ptr TextIter -> IO TextIter
mkTextIterCopy Bool
True self
self ((TextIter -> Ptr CChar -> Int -> IO ()) -> IO (ConnectId self))
-> (TextIter -> Ptr CChar -> Int -> IO ()) -> IO (ConnectId self)
forall a b. (a -> b) -> a -> b
$
    \TextIter
iter Ptr CChar
strP Int
strLen -> do
      string
str <- CStringLen -> IO string
forall s. GlibString s => CStringLen -> IO s
peekUTFStringLen (Ptr CChar
strP,Int
strLen)
      TextIter -> string -> IO ()
user TextIter
iter string
str

-- | A 'TextMark' within the buffer was deleted.
--
onMarkDeleted, afterMarkDeleted :: TextBufferClass self => self
 -> (TextMark -> IO ())
 -> IO (ConnectId self)
onMarkDeleted :: forall self.
TextBufferClass self =>
self -> (TextMark -> IO ()) -> IO (ConnectId self)
onMarkDeleted = String
-> Bool -> self -> (TextMark -> IO ()) -> IO (ConnectId self)
forall a' obj.
(GObjectClass a', GObjectClass obj) =>
String -> Bool -> obj -> (a' -> IO ()) -> IO (ConnectId obj)
connect_OBJECT__NONE String
"mark-deleted" Bool
False
afterMarkDeleted :: forall self.
TextBufferClass self =>
self -> (TextMark -> IO ()) -> IO (ConnectId self)
afterMarkDeleted = String
-> Bool -> self -> (TextMark -> IO ()) -> IO (ConnectId self)
forall a' obj.
(GObjectClass a', GObjectClass obj) =>
String -> Bool -> obj -> (a' -> IO ()) -> IO (ConnectId obj)
connect_OBJECT__NONE String
"mark-deleted" Bool
True

-- | A 'TextMark' was inserted into the buffer.
--
onMarkSet, afterMarkSet :: TextBufferClass self => self ->
                           (TextIter -> TextMark -> IO ()) ->
                           IO (ConnectId self)
onMarkSet :: forall self.
TextBufferClass self =>
self -> (TextIter -> TextMark -> IO ()) -> IO (ConnectId self)
onMarkSet = String
-> (Ptr TextIter -> IO TextIter)
-> Bool
-> self
-> (TextIter -> TextMark -> IO ())
-> IO (ConnectId self)
forall b' obj a' a.
(GObjectClass b', GObjectClass obj) =>
String
-> (Ptr a' -> IO a)
-> Bool
-> obj
-> (a -> b' -> IO ())
-> IO (ConnectId obj)
connect_BOXED_OBJECT__NONE String
"mark-set" Ptr TextIter -> IO TextIter
mkTextIterCopy Bool
False
afterMarkSet :: forall self.
TextBufferClass self =>
self -> (TextIter -> TextMark -> IO ()) -> IO (ConnectId self)
afterMarkSet = String
-> (Ptr TextIter -> IO TextIter)
-> Bool
-> self
-> (TextIter -> TextMark -> IO ())
-> IO (ConnectId self)
forall b' obj a' a.
(GObjectClass b', GObjectClass obj) =>
String
-> (Ptr a' -> IO a)
-> Bool
-> obj
-> (a -> b' -> IO ())
-> IO (ConnectId obj)
connect_BOXED_OBJECT__NONE String
"mark-set" Ptr TextIter -> IO TextIter
mkTextIterCopy Bool
True

-- | The textbuffer has changed.
--
onModifiedChanged, afterModifiedChanged :: TextBufferClass self => self
 -> IO ()
 -> IO (ConnectId self)
onModifiedChanged :: forall self.
TextBufferClass self =>
self -> IO () -> IO (ConnectId self)
onModifiedChanged = String -> Bool -> self -> IO () -> IO (ConnectId self)
forall obj.
GObjectClass obj =>
String -> Bool -> obj -> IO () -> IO (ConnectId obj)
connect_NONE__NONE String
"modified-changed" Bool
False
afterModifiedChanged :: forall self.
TextBufferClass self =>
self -> IO () -> IO (ConnectId self)
afterModifiedChanged = String -> Bool -> self -> IO () -> IO (ConnectId self)
forall obj.
GObjectClass obj =>
String -> Bool -> obj -> IO () -> IO (ConnectId obj)
connect_NONE__NONE String
"modified-changed" Bool
True

-- | A 'TextTag' was removed.
--
onRemoveTag, afterRemoveTag :: TextBufferClass self => self
 -> (TextTag -> TextIter -> TextIter -> IO ())
 -> IO (ConnectId self)
onRemoveTag :: forall self.
TextBufferClass self =>
self
-> (TextTag -> TextIter -> TextIter -> IO ())
-> IO (ConnectId self)
onRemoveTag = String
-> (Ptr TextIter -> IO TextIter)
-> (Ptr TextIter -> IO TextIter)
-> Bool
-> self
-> (TextTag -> TextIter -> TextIter -> IO ())
-> IO (ConnectId self)
forall a' obj b' b c' c.
(GObjectClass a', GObjectClass obj) =>
String
-> (Ptr b' -> IO b)
-> (Ptr c' -> IO c)
-> Bool
-> obj
-> (a' -> b -> c -> IO ())
-> IO (ConnectId obj)
connect_OBJECT_BOXED_BOXED__NONE String
"remove-tag"
  Ptr TextIter -> IO TextIter
mkTextIterCopy Ptr TextIter -> IO TextIter
mkTextIterCopy Bool
False
afterRemoveTag :: forall self.
TextBufferClass self =>
self
-> (TextTag -> TextIter -> TextIter -> IO ())
-> IO (ConnectId self)
afterRemoveTag = String
-> (Ptr TextIter -> IO TextIter)
-> (Ptr TextIter -> IO TextIter)
-> Bool
-> self
-> (TextTag -> TextIter -> TextIter -> IO ())
-> IO (ConnectId self)
forall a' obj b' b c' c.
(GObjectClass a', GObjectClass obj) =>
String
-> (Ptr b' -> IO b)
-> (Ptr c' -> IO c)
-> Bool
-> obj
-> (a' -> b -> c -> IO ())
-> IO (ConnectId obj)
connect_OBJECT_BOXED_BOXED__NONE String
"remove-tag"
  Ptr TextIter -> IO TextIter
mkTextIterCopy Ptr TextIter -> IO TextIter
mkTextIterCopy Bool
True

foreign import ccall unsafe "gtk_text_buffer_new"
  gtk_text_buffer_new :: ((Ptr TextTagTable) -> (IO (Ptr TextBuffer)))

foreign import ccall unsafe "gtk_text_buffer_get_line_count"
  gtk_text_buffer_get_line_count :: ((Ptr TextBuffer) -> (IO CInt))

foreign import ccall unsafe "gtk_text_buffer_get_char_count"
  gtk_text_buffer_get_char_count :: ((Ptr TextBuffer) -> (IO CInt))

foreign import ccall unsafe "gtk_text_buffer_get_tag_table"
  gtk_text_buffer_get_tag_table :: ((Ptr TextBuffer) -> (IO (Ptr TextTagTable)))

foreign import ccall safe "gtk_text_buffer_insert"
  gtk_text_buffer_insert :: ((Ptr TextBuffer) -> ((Ptr TextIter) -> ((Ptr CChar) -> (CInt -> (IO ())))))

foreign import ccall safe "gtk_text_buffer_insert_at_cursor"
  gtk_text_buffer_insert_at_cursor :: ((Ptr TextBuffer) -> ((Ptr CChar) -> (CInt -> (IO ()))))

foreign import ccall safe "gtk_text_buffer_insert_interactive"
  gtk_text_buffer_insert_interactive :: ((Ptr TextBuffer) -> ((Ptr TextIter) -> ((Ptr CChar) -> (CInt -> (CInt -> (IO CInt))))))

foreign import ccall safe "gtk_text_buffer_insert_interactive_at_cursor"
  gtk_text_buffer_insert_interactive_at_cursor :: ((Ptr TextBuffer) -> ((Ptr CChar) -> (CInt -> (CInt -> (IO CInt)))))

foreign import ccall safe "gtk_text_buffer_insert_range"
  gtk_text_buffer_insert_range :: ((Ptr TextBuffer) -> ((Ptr TextIter) -> ((Ptr TextIter) -> ((Ptr TextIter) -> (IO ())))))

foreign import ccall safe "gtk_text_buffer_insert_range_interactive"
  gtk_text_buffer_insert_range_interactive :: ((Ptr TextBuffer) -> ((Ptr TextIter) -> ((Ptr TextIter) -> ((Ptr TextIter) -> (CInt -> (IO CInt))))))

foreign import ccall safe "gtk_text_buffer_delete"
  gtk_text_buffer_delete :: ((Ptr TextBuffer) -> ((Ptr TextIter) -> ((Ptr TextIter) -> (IO ()))))

foreign import ccall safe "gtk_text_buffer_delete_interactive"
  gtk_text_buffer_delete_interactive :: ((Ptr TextBuffer) -> ((Ptr TextIter) -> ((Ptr TextIter) -> (CInt -> (IO CInt)))))

foreign import ccall safe "gtk_text_buffer_set_text"
  gtk_text_buffer_set_text :: ((Ptr TextBuffer) -> ((Ptr CChar) -> (CInt -> (IO ()))))

foreign import ccall unsafe "gtk_text_buffer_get_text"
  gtk_text_buffer_get_text :: ((Ptr TextBuffer) -> ((Ptr TextIter) -> ((Ptr TextIter) -> (CInt -> (IO (Ptr CChar))))))

foreign import ccall unsafe "gtk_text_buffer_get_slice"
  gtk_text_buffer_get_slice :: ((Ptr TextBuffer) -> ((Ptr TextIter) -> ((Ptr TextIter) -> (CInt -> (IO (Ptr CChar))))))

foreign import ccall unsafe "g_free"
  g_free :: ((Ptr ()) -> (IO ()))

foreign import ccall safe "gtk_text_buffer_insert_pixbuf"
  gtk_text_buffer_insert_pixbuf :: ((Ptr TextBuffer) -> ((Ptr TextIter) -> ((Ptr Pixbuf) -> (IO ()))))

foreign import ccall safe "gtk_text_buffer_create_mark"
  gtk_text_buffer_create_mark :: ((Ptr TextBuffer) -> ((Ptr CChar) -> ((Ptr TextIter) -> (CInt -> (IO (Ptr TextMark))))))

foreign import ccall safe "gtk_text_buffer_add_mark"
  gtk_text_buffer_add_mark :: ((Ptr TextBuffer) -> ((Ptr TextMark) -> ((Ptr TextIter) -> (IO ()))))

foreign import ccall safe "gtk_text_buffer_move_mark"
  gtk_text_buffer_move_mark :: ((Ptr TextBuffer) -> ((Ptr TextMark) -> ((Ptr TextIter) -> (IO ()))))

foreign import ccall safe "gtk_text_buffer_move_mark_by_name"
  gtk_text_buffer_move_mark_by_name :: ((Ptr TextBuffer) -> ((Ptr CChar) -> ((Ptr TextIter) -> (IO ()))))

foreign import ccall safe "gtk_text_buffer_delete_mark"
  gtk_text_buffer_delete_mark :: ((Ptr TextBuffer) -> ((Ptr TextMark) -> (IO ())))

foreign import ccall safe "gtk_text_buffer_delete_mark_by_name"
  gtk_text_buffer_delete_mark_by_name :: ((Ptr TextBuffer) -> ((Ptr CChar) -> (IO ())))

foreign import ccall unsafe "gtk_text_buffer_get_mark"
  gtk_text_buffer_get_mark :: ((Ptr TextBuffer) -> ((Ptr CChar) -> (IO (Ptr TextMark))))

foreign import ccall unsafe "gtk_text_buffer_get_insert"
  gtk_text_buffer_get_insert :: ((Ptr TextBuffer) -> (IO (Ptr TextMark)))

foreign import ccall unsafe "gtk_text_buffer_get_selection_bound"
  gtk_text_buffer_get_selection_bound :: ((Ptr TextBuffer) -> (IO (Ptr TextMark)))

foreign import ccall safe "gtk_text_buffer_place_cursor"
  gtk_text_buffer_place_cursor :: ((Ptr TextBuffer) -> ((Ptr TextIter) -> (IO ())))

foreign import ccall safe "gtk_text_buffer_apply_tag"
  gtk_text_buffer_apply_tag :: ((Ptr TextBuffer) -> ((Ptr TextTag) -> ((Ptr TextIter) -> ((Ptr TextIter) -> (IO ())))))

foreign import ccall safe "gtk_text_buffer_remove_tag"
  gtk_text_buffer_remove_tag :: ((Ptr TextBuffer) -> ((Ptr TextTag) -> ((Ptr TextIter) -> ((Ptr TextIter) -> (IO ())))))

foreign import ccall safe "gtk_text_buffer_apply_tag_by_name"
  gtk_text_buffer_apply_tag_by_name :: ((Ptr TextBuffer) -> ((Ptr CChar) -> ((Ptr TextIter) -> ((Ptr TextIter) -> (IO ())))))

foreign import ccall safe "gtk_text_buffer_remove_tag_by_name"
  gtk_text_buffer_remove_tag_by_name :: ((Ptr TextBuffer) -> ((Ptr CChar) -> ((Ptr TextIter) -> ((Ptr TextIter) -> (IO ())))))

foreign import ccall safe "gtk_text_buffer_remove_all_tags"
  gtk_text_buffer_remove_all_tags :: ((Ptr TextBuffer) -> ((Ptr TextIter) -> ((Ptr TextIter) -> (IO ()))))

foreign import ccall unsafe "gtk_text_buffer_get_iter_at_line_offset"
  gtk_text_buffer_get_iter_at_line_offset :: ((Ptr TextBuffer) -> ((Ptr TextIter) -> (CInt -> (CInt -> (IO ())))))

foreign import ccall unsafe "gtk_text_buffer_get_iter_at_offset"
  gtk_text_buffer_get_iter_at_offset :: ((Ptr TextBuffer) -> ((Ptr TextIter) -> (CInt -> (IO ()))))

foreign import ccall unsafe "gtk_text_buffer_get_iter_at_line"
  gtk_text_buffer_get_iter_at_line :: ((Ptr TextBuffer) -> ((Ptr TextIter) -> (CInt -> (IO ()))))

foreign import ccall unsafe "gtk_text_buffer_get_iter_at_mark"
  gtk_text_buffer_get_iter_at_mark :: ((Ptr TextBuffer) -> ((Ptr TextIter) -> ((Ptr TextMark) -> (IO ()))))

foreign import ccall unsafe "gtk_text_buffer_get_start_iter"
  gtk_text_buffer_get_start_iter :: ((Ptr TextBuffer) -> ((Ptr TextIter) -> (IO ())))

foreign import ccall unsafe "gtk_text_buffer_get_end_iter"
  gtk_text_buffer_get_end_iter :: ((Ptr TextBuffer) -> ((Ptr TextIter) -> (IO ())))

foreign import ccall unsafe "gtk_text_buffer_get_modified"
  gtk_text_buffer_get_modified :: ((Ptr TextBuffer) -> (IO CInt))

foreign import ccall safe "gtk_text_buffer_set_modified"
  gtk_text_buffer_set_modified :: ((Ptr TextBuffer) -> (CInt -> (IO ())))

foreign import ccall safe "gtk_text_buffer_delete_selection"
  gtk_text_buffer_delete_selection :: ((Ptr TextBuffer) -> (CInt -> (CInt -> (IO CInt))))

foreign import ccall unsafe "gtk_text_buffer_get_selection_bounds"
  gtk_text_buffer_get_selection_bounds :: ((Ptr TextBuffer) -> ((Ptr TextIter) -> ((Ptr TextIter) -> (IO CInt))))

foreign import ccall safe "gtk_text_buffer_begin_user_action"
  gtk_text_buffer_begin_user_action :: ((Ptr TextBuffer) -> (IO ()))

foreign import ccall safe "gtk_text_buffer_end_user_action"
  gtk_text_buffer_end_user_action :: ((Ptr TextBuffer) -> (IO ()))

foreign import ccall safe "gtk_text_buffer_backspace"
  gtk_text_buffer_backspace :: ((Ptr TextBuffer) -> ((Ptr TextIter) -> (CInt -> (CInt -> (IO CInt)))))

foreign import ccall safe "gtk_text_buffer_insert_child_anchor"
  gtk_text_buffer_insert_child_anchor :: ((Ptr TextBuffer) -> ((Ptr TextIter) -> ((Ptr TextChildAnchor) -> (IO ()))))

foreign import ccall safe "gtk_text_buffer_create_child_anchor"
  gtk_text_buffer_create_child_anchor :: ((Ptr TextBuffer) -> ((Ptr TextIter) -> (IO (Ptr TextChildAnchor))))

foreign import ccall safe "gtk_text_buffer_select_range"
  gtk_text_buffer_select_range :: ((Ptr TextBuffer) -> ((Ptr TextIter) -> ((Ptr TextIter) -> (IO ()))))

foreign import ccall safe "gtk_text_buffer_get_iter_at_child_anchor"
  gtk_text_buffer_get_iter_at_child_anchor :: ((Ptr TextBuffer) -> ((Ptr TextIter) -> ((Ptr TextChildAnchor) -> (IO ()))))

foreign import ccall unsafe "gtk_text_buffer_get_bounds"
  gtk_text_buffer_get_bounds :: ((Ptr TextBuffer) -> ((Ptr TextIter) -> ((Ptr TextIter) -> (IO ()))))

foreign import ccall safe "gtk_text_buffer_paste_clipboard"
  gtk_text_buffer_paste_clipboard :: ((Ptr TextBuffer) -> ((Ptr Clipboard) -> ((Ptr TextIter) -> (CInt -> (IO ())))))

foreign import ccall safe "gtk_text_buffer_copy_clipboard"
  gtk_text_buffer_copy_clipboard :: ((Ptr TextBuffer) -> ((Ptr Clipboard) -> (IO ())))

foreign import ccall safe "gtk_text_buffer_cut_clipboard"
  gtk_text_buffer_cut_clipboard :: ((Ptr TextBuffer) -> ((Ptr Clipboard) -> (CInt -> (IO ()))))

foreign import ccall safe "gtk_text_buffer_add_selection_clipboard"
  gtk_text_buffer_add_selection_clipboard :: ((Ptr TextBuffer) -> ((Ptr Clipboard) -> (IO ())))

foreign import ccall safe "gtk_text_buffer_remove_selection_clipboard"
  gtk_text_buffer_remove_selection_clipboard :: ((Ptr TextBuffer) -> ((Ptr Clipboard) -> (IO ())))

foreign import ccall unsafe "gtk_text_tag_table_get_type"
  gtk_text_tag_table_get_type :: CUInt