logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

m17nTextProperty_-_Text_Prop - - Function to handle text properties.

Author

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

Detailed Description

       Function to handle text properties.

       Each character in an M-text can have properties called textproperties. 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'.

Enumeration Type Documentation

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

       EnumeratorMTEXTPROP_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

Name

       m17nTextProperty_-_Text_Prop -  - Function to handle text properties.

Synopsis

Typedefs
       typedef MPlist *(* MTextPropSerializeFunc) (void *val)
           Type of serializer functions.
       typedef void *(* MTextPropDeserializeFunc) (MPlist *plist)
           Type of deserializer functions.

   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)
       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)
       int mtext_pop_prop (MText *mt, int from, int to, MSymbol key)
       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)
       MText * mtext_deserialize (MText *mt)

   Variables
       MSymbol Mtext_prop_serializer
           Symbol for specifying serializer functions.
       MSymbol Mtext_prop_deserializer
           Symbol for specifying deserializer functions.

Typedef Documentation

typedefMPlist*(*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.

       SEEALSOmtext_serialize(),Mtext_prop_serializertypedefvoid*(*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.

       SEEALSOmtext_deserialize(),Mtext_prop_deserializer

Variable Documentation

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

       SEEALSOmtext_serialize(),MTextPropSerializeFuncMSymbolMtext_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.

       SEEALSOmtext_deserialize(),MTextPropSerializeFunc

See Also