Text Property(3m17n)

NAME
m17nTextProperty - 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 struct 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

Function to handle text properties.

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 void*(* MTextPropDeserializeFunc)(MPlist *plist)

Type of deserializer functions.

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
    mtext_deserialize(), Mtext_prop_deserializer

  typedef struct MTextProperty MTextProperty

Type of text properties.

The type MTextProperty is for a text property objects. Its internal structure is concealed from application programs.

  typedef MPlist*(* MTextPropSerializeFunc)(void *val)

Type of serializer functions.

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
    mtext_serialize(), Mtext_prop_serializer

Enumeration Type Documentation

  enum MTextPropertyControl

Flag bits to control text property.

The mtext_property() function 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.

Enumerator:

MTEXTPROP_FRONT_STICKY
    If this flag bit is on, an M-text inserted at the start position or at the middle of the text property inherits the text property.

MTEXTPROP_REAR_STICKY
    If this flag bit is on, an M-text inserted at the end position or at the middle of the text property inherits the text property.

MTEXTPROP_VOLATILE_WEAK
    If this flag bit is on, the text property is removed if a text in its region is modified.

MTEXTPROP_VOLATILE_STRONG
    If this flag bit is on, the text property is removed if a text or the other text property in its region is modified.

MTEXTPROP_NO_MERGE
    If this flag bit is on, the text property is not automatically merged with the others.

Variable Documentation

  MSymbol Mtext_prop_deserializer

Symbol for specifying deserializer functions.

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
    mtext_deserialize(), MTextPropSerializeFunc

  MSymbol Mtext_prop_serializer

Symbol for specifying serializer functions.

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
    mtext_serialize(), MTextPropSerializeFunc

COPYRIGHT
Copyright (C) 2001 Information-technology Promotion Agency (IPA)
Copyright (C) 2001-2008 National Institute of Advanced Industrial Science and Technology (AIST)
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License <http://www.gnu.org/licenses/fdl.html>.