IBusText

## IBusText IBusText — Text with decorating information. |

## Synopsis

                        IBusText;
                        IBusTextClass;
    IBusText *          ibus_text_new_from_string           (const gchar *str);
    IBusText *          ibus_text_new_from_ucs4             (const gunichar *str);
    IBusText *          ibus_text_new_from_static_string    (const gchar *str);
    IBusText *          ibus_text_new_from_printf           (const gchar *fmt,
                                                             ...);
    IBusText *          ibus_text_new_from_unichar          (gunichar c);
    void                ibus_text_append_attribute          (IBusText *text,
                                                             guint type,
                                                             guint value,
                                                             guint start_index,
                                                             gint end_index);
    guint               ibus_text_get_length                (IBusText *text);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----IBusObject
                   +----IBusSerializable
                         +----IBusText

## Description

An IBusText is the main text object in IBus. The text is decorated according to associated IBusAttribute, e.g. the foreground/background color, underline, and applied scope.

## Details

### IBusText

    typedef struct {
        gboolean is_static;
        gchar  *text;
        IBusAttrList *attrs;
    } IBusText;

A text object in IBus.

gboolean `is_static`; | Whether `text` is static, i.e., no need and will not be freed. Only TRUE if IBusText is newed from `ibus_text_new_from_static_string()`.
gchar *`text`; | The string content of IBusText in UTF-8.
IBusAttrList *`attrs`; | Associated IBusAttributes.

### IBusTextClass

    typedef struct {
        IBusSerializableClass parent;
    } IBusTextClass;

### ibus_text_new_from_string ()

    IBusText *          ibus_text_new_from_string           (const gchar *str);

New an IBusText from a string.

`str` will be duplicated in IBusText, so feel free to free `str` after this function.

`str` : | An text string to be set.
Returns : | A newly allocated IBusText.

### ibus_text_new_from_ucs4 ()

    IBusText *          ibus_text_new_from_ucs4             (const gunichar *str);

New an IBusText from an UCS-4 encoded string.

`str` will be duplicated in IBusText, so feel free to free `str` after this function.

`str` : | An text string to be set.
Returns : | A newly allocated IBusText.

### ibus_text_new_from_static_string ()

    IBusText *          ibus_text_new_from_static_string    (const gchar *str);

New an IBusText from a static string.

Since `str` is a static string which won't be freed. This function will NOT duplicate `str`.

`str` : | An text string to be set.
Returns : | A newly allocated IBusText.

### ibus_text_new_from_printf ()

    IBusText *          ibus_text_new_from_printf           (const gchar *fmt,
                                                             ...);

New an IBusText from a printf expression.

The result of printf expression is stored in the new IBusText instance.

`fmt` : | printf format string.
`...` : | arguments for `fmt`.
Returns : | A newly allocated IBusText.

### ibus_text_new_from_unichar ()

    IBusText *          ibus_text_new_from_unichar          (gunichar c);

New an IBusText from a single UCS4-encoded character.

`c` : | A single UCS4-encoded character.
Returns : | A newly allocated IBusText.

### ibus_text_append_attribute ()

    void                ibus_text_append_attribute          (IBusText *text,
                                                             guint type,
                                                             guint value,
                                                             guint start_index,
                                                             gint end_index);

Append an IBusAttribute for IBusText.

`text` : | an IBusText
`type` : | IBusAttributeType for `text`.
`value` : | Value for the type.
`start_index` : | The starting index, inclusive.
`end_index` : | The ending index, exclusive.

### ibus_text_get_length ()

    guint               ibus_text_get_length                (IBusText *text);

Return number of characters in an IBusText. This function is based on `g_utf8_strlen()`, so unlike `strlen()`, it does not count by bytes but characters instead.

`text` : | An IBusText.
Returns : | Number of character in `text`, not counted by bytes.

## See Also

IBusAttribute