man m17nTextProperty () - Function to handle text properties.
NAME
Text Property - Function to handle text properties.
Typedefs
typedef MPlist *(* MTextPropSerializeFunc )(void *val)
Type of serializer functions.
typedef void *(* MTextPropDeserializeFunc )(MPlist *plist)
Type of deserializer functions.
typedef MTextProperty MTextProperty
Type of text properties.
Enumerations
enum MTextPropertyControl { MTEXTPROP_FRONT_STICKY = 0x01, MTEXTPROP_REAR_STICKY = 0x02, MTEXTPROP_VOLATILE_WEAK = 0x04, MTEXTPROP_VOLATILE_STRONG = 0x08, MTEXTPROP_NO_MERGE = 0x10, MTEXTPROP_CONTROL_MAX = 0x1F }
Flag bits to control text property.
Functions
void * mtext_get_prop (MText *mt, int pos, MSymbol key)
Get the value of the topmost text property.
int mtext_get_prop_values (MText *mt, int pos, MSymbol key, void **values, int num)
Get multiple values of a text property.
int mtext_get_prop_keys (MText *mt, int pos, MSymbol **keys)
Get a list of text property keys at a position of an M-text.
int mtext_put_prop (MText *mt, int from, int to, MSymbol key, void *val)
Set a text property.
int mtext_put_prop_values (MText *mt, int from, int to, MSymbol key, void **values, int num)
Set multiple text properties with the same key.
int mtext_push_prop (MText *mt, int from, int to, MSymbol key, void *val)
Push a text property.
int mtext_pop_prop (MText *mt, int from, int to, MSymbol key)
Pop a text property.
int mtext_prop_range (MText *mt, MSymbol key, int pos, int *from, int *to, int deeper)
Find the range where the value of a text property is the same.
MTextProperty * mtext_property (MSymbol key, void *val, int control_bits)
Create a text property.
MText * mtext_property_mtext (MTextProperty *prop)
Return the M-text of a text property.
MSymbol mtext_property_key (MTextProperty *prop)
Return the key of a text property.
void * mtext_property_value (MTextProperty *prop)
Return the value of a text property.
int mtext_property_start (MTextProperty *prop)
Return the start position of a text property.
int mtext_property_end (MTextProperty *prop)
Return the end position of a text property.
MTextProperty * mtext_get_property (MText *mt, int pos, MSymbol key)
Get the topmost text property.
int mtext_get_properties (MText *mt, int pos, MSymbol key, MTextProperty **props, int num)
Get multiple text properties.
int mtext_attach_property (MText *mt, int from, int to, MTextProperty *prop)
Attach a text property to an M-text.
int mtext_detach_property (MTextProperty *prop)
Detach a text property from an M-text.
int mtext_push_property (MText *mt, int from, int to, MTextProperty *prop)
Push a text property onto an M-text.
MText * mtext_serialize (MText *mt, int from, int to, MPlist *property_list)
Serialize text properties in an M-text.
MText * mtext_deserialize (MText *mt)
Deserialize text properties in an M-text.
Variables
MSymbol Mtext_prop_serializer
Symbol for specifying serializer functions.
MSymbol Mtext_prop_deserializer
Symbol for specifying deserializer functions.
Detailed Description
Each character in an M-text can have properties called text properties. Text properties store various kinds of information attached to parts of an M-text to provide application programs with a unified view of those information. As rich information can be stored in M-texts in the form of text properties, functions in application programs can be simple.
A text property consists of a key and values, where key is a symbol and values are anything that can be cast to (void *) . Unlike other types of properties, a text property can have multiple values. 'The text property whose key is K' may be shortened to 'K property'.
Typedef Documentation
typedef MPlist*(* MTextPropSerializeFunc)(void *val)
This is the type of serializer functions. If the key of a symbol property is Mtext_prop_serializer, the value must be of this type.
See Also:.RS 4 mtext_serialize(), Mtext_prop_serializer
typedef void*(* MTextPropDeserializeFunc)(MPlist *plist)
This is the type of deserializer functions. If the key of a symbol property is Mtext_prop_deserializer, the value must be of this type.
See Also:.RS 4 mtext_deserialize(), Mtext_prop_deserializer
typedef struct MTextProperty MTextProperty
The type MTextProperty is for a text property objects. Its internal structure is concealed from application programs.
Enumeration Type Documentation
enum MTextPropertyControl
The mtext_property() funciton accepts logical OR of these flag bits as an argument. They control the behaviour of the created text property as described in the documentation of each flag bit.
Enumeration values:
- MTEXTPROP_FRONT_STICKY
- MTEXTPROP_REAR_STICKY
- MTEXTPROP_VOLATILE_WEAK
- MTEXTPROP_VOLATILE_STRONG
- MTEXTPROP_NO_MERGE
- MTEXTPROP_CONTROL_MAX
Variable Documentation
MSymbol Mtext_prop_serializer
To serialize a text property, the user must supply a serializer function for that text property. This is done by giving a symbol property whose key is Mtext_prop_serializer and value is a pointer to an appropriate serializer function.
See Also:.RS 4 mtext_serialize(), MTextPropSerializeFunc
MSymbol Mtext_prop_deserializer
To deserialize a text property, the user must supply a deserializer function for that text property. This is done by giving a symbol property whose key is Mtext_prop_deserializer and value is a pointer to an appropriate deserializer function.
See Also:.RS 4 mtext_deserialize(), MTextPropSerializeFunc