Class AttrList
- All Implemented Interfaces:
Proxy
PangoAttrList represents a list of attributes that apply to a section
of text.
The attributes in a PangoAttrList are, in general, allowed to overlap in
an arbitrary fashion. However, if the attributes are manipulated only through
change(org.gnome.pango.Attribute), the overlap between properties will meet
stricter criteria.
Since the PangoAttrList structure is stored as a linear list, it is not
suitable for storing attributes for large amounts of text. In general, you
should not use a single PangoAttrList for more than one paragraph of text.
-
Constructor Summary
ConstructorsConstructorDescriptionAttrList()Create a new empty attribute list with a reference count of one.AttrList(MemorySegment address) Create a AttrList proxy instance for the provided memory address. -
Method Summary
Modifier and TypeMethodDescriptionvoidInsert the given attribute into thePangoAttrList.@Nullable AttrListcopy()Copy this AttrList and return an identical new list.booleanChecks whether this AttrList andotherListcontain the same attributes and whether those attributes apply to the same ranges.@Nullable AttrListfilter(@Nullable AttrFilterFunc func) Given aPangoAttrListand callback function, removes any elements of this AttrList for whichfuncreturnstrueand inserts them into a new list.static @Nullable AttrListfromString(String text) Deserializes aPangoAttrListfrom a string.Gets a list of all attributes inlist.Create a iterator initialized to the beginning of the list.static @Nullable TypegetType()Get the GType of the AttrList classvoidInsert the given attribute into thePangoAttrList.voidinsertBefore(Attribute attr) Insert the given attribute into thePangoAttrList.ref()Increase the reference count of the given attribute list by one.voidThis function opens up a hole inlist,fills it in with attributes from the left, and then mergesotheron top of the hole.toString()Serializes aPangoAttrListto a string.voidunref()Decrease the reference count of the given attribute list by one.voidupdate(int pos, int remove, int add) Update indices of attributes in this AttrList for a change in the text they refer to.Methods inherited from class org.javagi.base.ProxyInstance
equals, handle, hashCode
-
Constructor Details
-
AttrList
Create a AttrList proxy instance for the provided memory address.- Parameters:
address- the memory address of the native object
-
AttrList
public AttrList()Create a new empty attribute list with a reference count of one.
-
-
Method Details
-
getType
-
fromString
Deserializes aPangoAttrListfrom a string.This is the counterpart to
toString(). See that functions for details about the format.- Parameters:
text- a string- Returns:
- a new
PangoAttrList - Since:
- 1.50
-
change
Insert the given attribute into thePangoAttrList.It will replace any attributes of the same type on that segment and be merged with any adjoining attributes that are identical.
This function is slower than
insert(org.gnome.pango.Attribute)for creating an attribute list in order (potentially much slower for large lists). However,insert(org.gnome.pango.Attribute)is not suitable for continually changing a set of attributes since it never removes or combines existing attributes.- Parameters:
attr- the attribute to insert
-
copy
-
equal
Checks whether this AttrList andotherListcontain the same attributes and whether those attributes apply to the same ranges.Beware that this will return wrong values if any list contains duplicates.
- Parameters:
otherList- the otherPangoAttrList- Returns:
trueif the lists are equal,falseif they aren't- Since:
- 1.46
-
filter
Given aPangoAttrListand callback function, removes any elements of this AttrList for whichfuncreturnstrueand inserts them into a new list.- Parameters:
func- callback function; returnstrueif an attribute should be filtered out- Returns:
- the new
PangoAttrListornullif no attributes of the given types were found - Since:
- 1.2
-
getAttributes
Gets a list of all attributes inlist.- Returns:
- a list of all attributes in
list.To free this value, callAttribute.destroy()on each value and g_slist_free() on the list. - Since:
- 1.44
-
getIterator
Create a iterator initialized to the beginning of the list.this AttrList must not be modified until this iterator is freed.
- Returns:
- the newly allocated
PangoAttrIterator, which should be freed withAttrIterator.destroy()
-
insert
Insert the given attribute into thePangoAttrList.It will be inserted after all other attributes with a matching
startIndex.- Parameters:
attr- the attribute to insert
-
insertBefore
Insert the given attribute into thePangoAttrList.It will be inserted before all other attributes with a matching
startIndex.- Parameters:
attr- the attribute to insert
-
ref
Increase the reference count of the given attribute list by one.- Returns:
- The attribute list passed in
- Since:
- 1.10
-
splice
This function opens up a hole inlist,fills it in with attributes from the left, and then mergesotheron top of the hole.This operation is equivalent to stretching every attribute that applies at position
posin this AttrList by an amountlen,and then callingchange(org.gnome.pango.Attribute)with a copy of each attribute inotherin sequence (offset in position bypos,and limited in length tolen).This operation proves useful for, for instance, inserting a pre-edit string in the middle of an edit buffer.
For backwards compatibility, the function behaves differently when
lenis 0. In this case, the attributes fromotherare not imited tolen,and are just overlayed on top oflist.This mode is useful for merging two lists of attributes together.
- Parameters:
other- anotherPangoAttrListpos- the position in this AttrList at which to insertotherlen- the length of the spliced segment. (Note that this must be specified since the attributes inothermay only be present at some subsection of this range)
-
toString
Serializes aPangoAttrListto a string.In the resulting string, serialized attributes are separated by newlines or commas. Individual attributes are serialized to a string of the form
[START END] TYPE VALUE
Where START and END are the indices (with -1 being accepted in place of MAXUINT), TYPE is the nickname of the attribute value type, e.g. _weight_ or _stretch_, and the value is serialized according to its type:
Optionally, START and END can be omitted to indicate unlimited extent.
- enum values as nick or numeric value
- boolean values as _true_ or _false_
- integers and floats as numbers
- strings as string, optionally quoted
- font features as quoted string
- PangoLanguage as string
- PangoFontDescription as serialized by
FontDescription.toString(), quoted - PangoColor as serialized by
Color.toString()
Examples:
0 10 foreground red, 5 15 weight bold, 0 200 font-desc "Sans 10"
0 -1 weight 700 0 100 family Times
weight bold
To parse the returned value, use
fromString(java.lang.String).Note that shape attributes can not be serialized.
-
unref
public void unref()Decrease the reference count of the given attribute list by one.If the result is zero, free the attribute list and the attributes it contains.
-
update
public void update(int pos, int remove, int add) Update indices of attributes in this AttrList for a change in the text they refer to.The change that this function applies is removing
removebytes at positionposand insertingaddbytes instead.Attributes that fall entirely in the (
pos,pos+remove)range are removed.Attributes that start or end inside the (
pos,pos+remove)range are shortened to reflect the removal.Attributes start and end positions are updated if they are behind
pos+remove.- Parameters:
pos- the position of the changeremove- the number of removed bytesadd- the number of added bytes- Since:
- 1.44
-