Copyright | Will Thompson, Iñaki García Etxebarria and Jonas Platte |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria (garetxe@gmail.com) |
Safe Haskell | None |
Language | Haskell2010 |
You may wish to begin by reading the [text widget conceptual overview][TextWidget] which gives an overview of all the objects and data types related to the text widget and how they work together.
A TextMark
is like a bookmark in a text buffer; it preserves a position in
the text. You can convert the mark to an iterator using
textBufferGetIterAtMark
. Unlike iterators, marks remain valid across
buffer mutations, because their behavior is defined when text is inserted or
deleted. When text containing a mark is deleted, the mark remains in the
position originally occupied by the deleted text. When text is inserted at a
mark, a mark with “left gravity” will be moved to the
beginning of the newly-inserted text, and a mark with “right
gravity” will be moved to the end.
Note that “left” and “right” here refer to logical direction (left is the toward the start of the buffer); in some languages such as Hebrew the logically-leftmost text is not actually on the left when displayed.
Marks are reference counted, but the reference count only controls the validity
of the memory; marks can be deleted from the buffer at any time with
textBufferDeleteMark
. Once deleted from the buffer, a mark is
essentially useless.
Marks optionally have names; these can be convenient to avoid passing the
TextMark
object around.
Marks are typically created using the textBufferCreateMark
function.
- newtype TextMark = TextMark (ManagedPtr TextMark)
- class GObject o => IsTextMark o
- toTextMark :: IsTextMark o => o -> IO TextMark
- noTextMark :: Maybe TextMark
- data TextMarkGetBufferMethodInfo
- textMarkGetBuffer :: (HasCallStack, MonadIO m, IsTextMark a) => a -> m TextBuffer
- data TextMarkGetDeletedMethodInfo
- textMarkGetDeleted :: (HasCallStack, MonadIO m, IsTextMark a) => a -> m Bool
- data TextMarkGetLeftGravityMethodInfo
- textMarkGetLeftGravity :: (HasCallStack, MonadIO m, IsTextMark a) => a -> m Bool
- data TextMarkGetNameMethodInfo
- textMarkGetName :: (HasCallStack, MonadIO m, IsTextMark a) => a -> m Text
- data TextMarkGetVisibleMethodInfo
- textMarkGetVisible :: (HasCallStack, MonadIO m, IsTextMark a) => a -> m Bool
- textMarkNew :: (HasCallStack, MonadIO m) => Maybe Text -> Bool -> m TextMark
- data TextMarkSetVisibleMethodInfo
- textMarkSetVisible :: (HasCallStack, MonadIO m, IsTextMark a) => a -> Bool -> m ()
- data TextMarkLeftGravityPropertyInfo
- constructTextMarkLeftGravity :: IsTextMark o => Bool -> IO (GValueConstruct o)
- getTextMarkLeftGravity :: (MonadIO m, IsTextMark o) => o -> m Bool
- textMarkLeftGravity :: AttrLabelProxy "leftGravity"
- data TextMarkNamePropertyInfo
- constructTextMarkName :: IsTextMark o => Text -> IO (GValueConstruct o)
- getTextMarkName :: (MonadIO m, IsTextMark o) => o -> m Text
- textMarkName :: AttrLabelProxy "name"
Exported types
GObject TextMark Source # | |
IsObject TextMark Source # | |
IsTextMark TextMark Source # | |
((~) * info (ResolveTextMarkMethod t TextMark), MethodInfo * info TextMark p) => IsLabel t (TextMark -> p) Source # | |
((~) * info (ResolveTextMarkMethod t TextMark), MethodInfo * info TextMark p) => IsLabelProxy t (TextMark -> p) Source # | |
HasAttributeList * TextMark Source # | |
type AttributeList TextMark Source # | |
type SignalList TextMark Source # | |
class GObject o => IsTextMark o Source #
(GObject a, UnknownAncestorError Constraint TextMark a) => IsTextMark a Source # | |
IsTextMark TextMark Source # | |
toTextMark :: IsTextMark o => o -> IO TextMark Source #
Methods
getBuffer
data TextMarkGetBufferMethodInfo Source #
((~) * signature (m TextBuffer), MonadIO m, IsTextMark a) => MethodInfo * TextMarkGetBufferMethodInfo a signature Source # | |
:: (HasCallStack, MonadIO m, IsTextMark a) | |
=> a |
|
-> m TextBuffer | Returns: the mark’s |
Gets the buffer this mark is located inside,
or Nothing
if the mark is deleted.
getDeleted
data TextMarkGetDeletedMethodInfo Source #
((~) * signature (m Bool), MonadIO m, IsTextMark a) => MethodInfo * TextMarkGetDeletedMethodInfo a signature Source # | |
:: (HasCallStack, MonadIO m, IsTextMark a) | |
=> a |
|
-> m Bool | Returns: whether the mark is deleted |
Returns True
if the mark has been removed from its buffer
with textBufferDeleteMark
. See textBufferAddMark
for a way to add it to a buffer again.
getLeftGravity
data TextMarkGetLeftGravityMethodInfo Source #
((~) * signature (m Bool), MonadIO m, IsTextMark a) => MethodInfo * TextMarkGetLeftGravityMethodInfo a signature Source # | |
textMarkGetLeftGravity Source #
:: (HasCallStack, MonadIO m, IsTextMark a) | |
=> a |
|
-> m Bool |
Determines whether the mark has left gravity.
getName
data TextMarkGetNameMethodInfo Source #
((~) * signature (m Text), MonadIO m, IsTextMark a) => MethodInfo * TextMarkGetNameMethodInfo a signature Source # | |
:: (HasCallStack, MonadIO m, IsTextMark a) | |
=> a |
|
-> m Text | Returns: mark name |
Returns the mark name; returns NULL for anonymous marks.
getVisible
data TextMarkGetVisibleMethodInfo Source #
((~) * signature (m Bool), MonadIO m, IsTextMark a) => MethodInfo * TextMarkGetVisibleMethodInfo a signature Source # | |
:: (HasCallStack, MonadIO m, IsTextMark a) | |
=> a |
|
-> m Bool | Returns: |
Returns True
if the mark is visible (i.e. a cursor is displayed
for it).
new
:: (HasCallStack, MonadIO m) | |
=> Maybe Text |
|
-> Bool |
|
-> m TextMark | Returns: new |
Creates a text mark. Add it to a buffer using textBufferAddMark
.
If name
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).
Since: 2.12
setVisible
data TextMarkSetVisibleMethodInfo Source #
((~) * signature (Bool -> m ()), MonadIO m, IsTextMark a) => MethodInfo * TextMarkSetVisibleMethodInfo a signature Source # | |
:: (HasCallStack, MonadIO m, IsTextMark a) | |
=> a |
|
-> Bool |
|
-> m () |
Sets the visibility of mark
; the insertion point is normally
visible, i.e. you can see it as a vertical bar. Also, the text
widget uses a visible mark to indicate where a drop will occur when
dragging-and-dropping text. Most other marks are not visible.
Marks are not visible by default.
Properties
leftGravity
data TextMarkLeftGravityPropertyInfo Source #
constructTextMarkLeftGravity :: IsTextMark o => Bool -> IO (GValueConstruct o) Source #
getTextMarkLeftGravity :: (MonadIO m, IsTextMark o) => o -> m Bool Source #
textMarkLeftGravity :: AttrLabelProxy "leftGravity" Source #
name
data TextMarkNamePropertyInfo Source #
constructTextMarkName :: IsTextMark o => Text -> IO (GValueConstruct o) Source #
getTextMarkName :: (MonadIO m, IsTextMark o) => o -> m Text Source #
textMarkName :: AttrLabelProxy "name" Source #