Provided by: m17n-docs_1.6.2-2_all bug

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 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 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

   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.

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.

       MTEXTPROP_CONTROL_MAX

Variable Documentation

   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

   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

Author

       Generated automatically by Doxygen for The m17n Library from the source code.

COPYRIGHT

       Copyright (C) 2001 Information-technology Promotion Agency (IPA)
       Copyright (C) 2001-2011 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>.