Class TextMark
- All Implemented Interfaces:
Proxy
- Direct Known Subclasses:
Mark
GtkTextMark
is a position in a GtkTextbuffer
that is preserved
across modifications.
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.
A GtkTextMark
is like a bookmark in a text buffer; it preserves
a position in the text. You can convert the mark to an iterator using
TextBuffer.getIterAtMark(org.gnome.gtk.TextIter, org.gnome.gtk.TextMark)
. 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 TextBuffer.deleteMark(org.gnome.gtk.TextMark)
. Once deleted from
the buffer, a mark is essentially useless.
Marks optionally have names; these can be convenient to avoid passing
the GtkTextMark
object around.
Marks are typically created using the TextBuffer.createMark(java.lang.String, org.gnome.gtk.TextIter, boolean)
function.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
TextMark.Builder<B extends TextMark.Builder<B>>
Inner class implementing a builder pattern to construct a GObject with properties.static class
Nested classes/interfaces inherited from class org.gnome.gobject.GObject
GObject.NotifyCallback, GObject.ObjectClass
-
Constructor Summary
ConstructorDescriptionCreates a text mark.TextMark
(MemorySegment address) Create a TextMark proxy instance for the provided memory address. -
Method Summary
Modifier and TypeMethodDescriptionprotected TextMark
asParent()
Returns this instance as if it were its parent type.static TextMark.Builder
<? extends TextMark.Builder> builder()
ATextMark.Builder
object constructs aTextMark
with the specified properties.Gets the buffer this mark is located inside.boolean
Returnstrue
if the mark has been removed from its buffer.boolean
Determines whether the mark has left gravity.static MemoryLayout
The memory layout of the native struct.getName()
Returns the mark name.static Type
getType()
Get the GType of the TextMark classboolean
Returnstrue
if the mark is visible.void
setVisible
(boolean setting) Sets the visibility of this TextMark.Methods inherited from class org.gnome.gobject.GObject
addToggleRef, addWeakPointer, bindProperty, bindProperty, bindProperty, bindPropertyFull, bindPropertyFull, bindPropertyWithClosures, bindPropertyWithClosures, compatControl, connect, connect, connect, constructed, disconnect, dispatchPropertiesChanged, dispose, dupData, dupQdata, emit, emitNotify, finalize_, forceFloating, freezeNotify, get, getData, getProperty, getProperty, getProperty, getQdata, getv, interfaceFindProperty, interfaceInstallProperty, interfaceListProperties, isFloating, newInstance, newInstance, newInstance, newInstance, newv, notify_, notify_, notifyByPspec, onNotify, ref, refSink, removeToggleRef, removeWeakPointer, replaceData, replaceQdata, runDispose, set, setData, setDataFull, setProperty, setProperty, setProperty, setQdata, setQdataFull, setv, stealData, stealQdata, takeRef, thawNotify, unref, watchClosure, weakRef, weakUnref, withProperties
Methods inherited from class org.gnome.gobject.TypeInstance
callParent, callParent, getPrivate, readGClass, writeGClass
Methods inherited from class io.github.jwharm.javagi.base.ProxyInstance
equals, handle, hashCode
-
Constructor Details
-
TextMark
Create a TextMark proxy instance for the provided memory address.- Parameters:
address
- the memory address of the native object
-
TextMark
Creates a text mark.Add it to a buffer using
TextBuffer.addMark(org.gnome.gtk.TextMark, org.gnome.gtk.TextIter)
. Ifname
isnull
, the mark is anonymous; otherwise, the mark can be retrieved by name usingTextBuffer.getMark(java.lang.String)
. 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).- Parameters:
name
- mark nameleftGravity
- whether the mark should have left gravity
-
-
Method Details
-
getType
-
getMemoryLayout
The memory layout of the native struct.- Returns:
- the memory layout
-
asParent
Returns this instance as if it were its parent type. This is mostly synonymous to the Javasuper
keyword, but will set the native typeclass function pointers to the parent type. When overriding a native virtual method in Java, "chaining up" withsuper.methodName()
doesn't work, because it invokes the overridden function pointer again. To chain up, callasParent().methodName()
. This will call the native function pointer of this virtual method in the typeclass of the parent type. -
getBuffer
Gets the buffer this mark is located inside.Returns
null
if the mark is deleted.- Returns:
- the mark’s
GtkTextBuffer
-
getDeleted
public boolean getDeleted()Returnstrue
if the mark has been removed from its buffer.See
TextBuffer.addMark(org.gnome.gtk.TextMark, org.gnome.gtk.TextIter)
for a way to add it to a buffer again.- Returns:
- whether the mark is deleted
-
getLeftGravity
public boolean getLeftGravity()Determines whether the mark has left gravity.- Returns:
true
if the mark has left gravity,false
otherwise
-
getName
-
getVisible
public boolean getVisible()Returnstrue
if the mark is visible.A cursor is displayed for visible marks.
- Returns:
true
if visible
-
setVisible
public void setVisible(boolean setting) Sets the visibility of this TextMark.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.
- Parameters:
setting
- visibility of mark
-
builder
ATextMark.Builder
object constructs aTextMark
with the specified properties. Use the variousset...()
methods to set properties, and finish construction withTextMark.Builder.build()
.
-