## IBusEngineDesc IBusEngineDesc — Input method engine description data. |

## Stability Level

Stable, unless otherwise indicated

## Synopsis

    struct              IBusEngineDesc;
    struct              IBusEngineDescClass;
    IBusEngineDesc *    ibus_engine_desc_new                (const gchar *name,
                                                             const gchar *longname,
                                                             const gchar *description,
                                                             const gchar *language,
                                                             const gchar *license,
                                                             const gchar *author,
                                                             const gchar *icon,
                                                             const gchar *layout);
    IBusEngineDesc *    ibus_engine_desc_new_varargs        (const gchar *first_property_name,
                                                             ...);
    IBusEngineDesc *    ibus_engine_desc_new_from_xml_node  (XMLNode *node);
    const gchar *       ibus_engine_desc_get_name           (IBusEngineDesc *info);
    const gchar *       ibus_engine_desc_get_longname       (IBusEngineDesc *info);
    const gchar *       ibus_engine_desc_get_description    (IBusEngineDesc *info);
    const gchar *       ibus_engine_desc_get_language       (IBusEngineDesc *info);
    const gchar *       ibus_engine_desc_get_license        (IBusEngineDesc *info);
    const gchar *       ibus_engine_desc_get_author         (IBusEngineDesc *info);
    const gchar *       ibus_engine_desc_get_icon           (IBusEngineDesc *info);
    const gchar *       ibus_engine_desc_get_layout         (IBusEngineDesc *info);
    const gchar *       ibus_engine_desc_get_layout_variant (IBusEngineDesc *info);
    const gchar *       ibus_engine_desc_get_layout_option  (IBusEngineDesc *info);
    guint               ibus_engine_desc_get_rank           (IBusEngineDesc *info);
    const gchar *       ibus_engine_desc_get_hotkeys        (IBusEngineDesc *info);
    const gchar *       ibus_engine_desc_get_symbol         (IBusEngineDesc *info);
    const gchar *       ibus_engine_desc_get_setup          (IBusEngineDesc *info);
    const gchar *       ibus_engine_desc_get_version        (IBusEngineDesc *info);
    const gchar *       ibus_engine_desc_get_textdomain     (IBusEngineDesc *info);
    void                ibus_engine_desc_output             (IBusEngineDesc *info,
                                                             GString *output,
                                                             gint indent);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----IBusObject
                   +----IBusSerializable
                         +----IBusEngineDesc

## Properties

      "author"                   gchar*                : Read / Write / Construct Only
      "description"              gchar*                : Read / Write / Construct Only
      "hotkeys"                  gchar*                : Read / Write / Construct Only
      "icon"                     gchar*                : Read / Write / Construct Only
      "language"                 gchar*                : Read / Write / Construct Only
      "layout"                   gchar*                : Read / Write / Construct Only
      "layout-option"            gchar*                : Read / Write / Construct Only
      "layout-variant"           gchar*                : Read / Write / Construct Only
      "license"                  gchar*                : Read / Write / Construct Only
      "longname"                 gchar*                : Read / Write / Construct Only
      "name"                     gchar*                : Read / Write / Construct Only
      "rank"                     guint                 : Read / Write / Construct Only
      "setup"                    gchar*                : Read / Write / Construct Only
      "symbol"                   gchar*                : Read / Write / Construct Only
      "textdomain"               gchar*                : Read / Write / Construct Only
      "version"                  gchar*                : Read / Write / Construct Only

## Description

An IBusEngineDesc stores description data of IBusEngine. The description data can either be passed to `ibus_engine_desc_new()`, or loaded from an XML node through `ibus_engine_desc_new_from_xml_node()` to construct IBusEngineDesc.

However, the recommended way to load engine description data is using `ibus_component_new_from_file()` to load a component file, which also includes engine description data.

`see_also`: IBusComponent, IBusEngine

## Details

### struct IBusEngineDesc

    struct IBusEngineDesc;

Input method engine description data. You can get extended values with g_object_get_properties. name: Name of the engine. longname: Long name of the input method engine. description: Input method engine description. language: Language (e.g. zh, jp) supported by this input method engine. license: License of the input method engine. author: Author of the input method engine. icon: Icon file of this engine. layout: Keyboard layout layout_variant: Keyboard variant layout_option: Keyboard option rank: Preference rank among engines, the highest ranked IME will put in the front. hotkeys: One or more hotkeys for switching to this engine, separated by semi-colon. setup: Exec lists of the engine setup command. version: Version number of the input method engine. textdomain: Domain name for `dgettext()`

### struct IBusEngineDescClass

    struct IBusEngineDescClass {
        IBusSerializableClass parent;
        /* class members */
    };

### ibus_engine_desc_new ()

    IBusEngineDesc *    ibus_engine_desc_new                (const gchar *name,
                                                             const gchar *longname,
                                                             const gchar *description,
                                                             const gchar *language,
                                                             const gchar *license,
                                                             const gchar *author,
                                                             const gchar *icon,
                                                             const gchar *layout);

New a IBusEngineDesc.

`name` : | Name of the engine.
`longname` : | Long name of the input method engine.
`description` : | Input method engine description.
`language` : | Language (e.g. zh, jp) supported by this input method engine.
`license` : | License of the input method engine.
`author` : | Author of the input method engine.
`icon` : | Icon file of this engine.
`layout` : | Keyboard layout
Returns : | A newly allocated IBusEngineDesc.

### ibus_engine_desc_new_varargs ()

    IBusEngineDesc *    ibus_engine_desc_new_varargs        (const gchar *first_property_name,
                                                             ...);

New a IBusEngineDesc. `ibus_engine_desc_new_varargs()` supports the va_list format. name property is required. e.g. ibus_engine_desc_new_varargs("name", "ibus-foo", "language", "us", NULL)

`first_property_name` : | Name of the first property.

### ibus_engine_desc_new_from_xml_node ()

    IBusEngineDesc *    ibus_engine_desc_new_from_xml_node  (XMLNode *node);

New a IBusEngineDesc from an XML node.

### Note

This function is called by `ibus_component_new_from_file()`, so developers normally do not need to call it directly.

`node` : | An XML node
Returns : | A newly allocated IBusEngineDesc that contains description from `node`.

### ibus_engine_desc_get_name ()

    const gchar *       ibus_engine_desc_get_name           (IBusEngineDesc *info);

Return the name property in IBusEngineDesc. It should not be freed.

`info` : | An IBusEngineDesc
Returns : | name property in IBusEngineDesc

### ibus_engine_desc_get_longname ()

    const gchar *       ibus_engine_desc_get_longname       (IBusEngineDesc *info);

Return the longname property in IBusEngineDesc. It should not be freed.

`info` : | An IBusEngineDesc
Returns : | longname property in IBusEngineDesc

### ibus_engine_desc_get_description ()

    const gchar *       ibus_engine_desc_get_description    (IBusEngineDesc *info);

Return the description property in IBusEngineDesc. It should not be freed.

`info` : | An IBusEngineDesc
Returns : | description property in IBusEngineDesc

### ibus_engine_desc_get_language ()

    const gchar *       ibus_engine_desc_get_language       (IBusEngineDesc *info);

Return the language property in IBusEngineDesc. It should not be freed.

`info` : | An IBusEngineDesc
Returns : | language property in IBusEngineDesc

### ibus_engine_desc_get_license ()

    const gchar *       ibus_engine_desc_get_license        (IBusEngineDesc *info);

Return the license property in IBusEngineDesc. It should not be freed.

`info` : | An IBusEngineDesc
Returns : | license property in IBusEngineDesc

### ibus_engine_desc_get_author ()

    const gchar *       ibus_engine_desc_get_author         (IBusEngineDesc *info);

Return the author property in IBusEngineDesc. It should not be freed.

`info` : | An IBusEngineDesc
Returns : | author property in IBusEngineDesc

### ibus_engine_desc_get_icon ()

    const gchar *       ibus_engine_desc_get_icon           (IBusEngineDesc *info);

Return the icon property in IBusEngineDesc. It should not be freed.

`info` : | An IBusEngineDesc
Returns : | icon property in IBusEngineDesc

### ibus_engine_desc_get_layout ()

    const gchar *       ibus_engine_desc_get_layout         (IBusEngineDesc *info);

Return the layout property in IBusEngineDesc. It should not be freed.

`info` : | An IBusEngineDesc
Returns : | layout property in IBusEngineDesc

### ibus_engine_desc_get_layout_variant ()

    const gchar *       ibus_engine_desc_get_layout_variant (IBusEngineDesc *info);

Return the keyboard variant property in IBusEngineDesc. It should not be freed.

`info` : | An IBusEngineDesc
Returns : | keyboard variant property in IBusEngineDesc

### ibus_engine_desc_get_layout_option ()

    const gchar *       ibus_engine_desc_get_layout_option  (IBusEngineDesc *info);

Return the keyboard option property in IBusEngineDesc. It should not be freed.

`info` : | An IBusEngineDesc
Returns : | keyboard option property in IBusEngineDesc

### ibus_engine_desc_get_rank ()

    guint               ibus_engine_desc_get_rank           (IBusEngineDesc *info);

Return the rank property in IBusEngineDesc.

`info` : | An IBusEngineDesc
Returns : | rank property in IBusEngineDesc

### ibus_engine_desc_get_hotkeys ()

    const gchar *       ibus_engine_desc_get_hotkeys        (IBusEngineDesc *info);

Return the hotkeys property in IBusEngineDesc. It should not be freed.

`info` : | An IBusEngineDesc
Returns : | hotkeys property in IBusEngineDesc

### ibus_engine_desc_get_symbol ()

    const gchar *       ibus_engine_desc_get_symbol         (IBusEngineDesc *info);

Return the symbol property in IBusEngineDesc. It should not be freed.

`info` : | An IBusEngineDesc
Returns : | symbol property in IBusEngineDesc

### ibus_engine_desc_get_setup ()

    const gchar *       ibus_engine_desc_get_setup          (IBusEngineDesc *info);

Return the setup property in IBusEngineDesc. It should not be freed.

`info` : | An IBusEngineDesc
Returns : | setup property in IBusEngineDesc

### ibus_engine_desc_get_version ()

    const gchar *       ibus_engine_desc_get_version        (IBusEngineDesc *info);

Return the version property in IBusEngineDesc. It should not be freed.

`info` : | An IBusEngineDesc
Returns : | version in IBusEngineDesc

### ibus_engine_desc_get_textdomain ()

    const gchar *       ibus_engine_desc_get_textdomain     (IBusEngineDesc *info);

Return the textdomain property in IBusEngineDesc. It should not be freed.

`info` : | An IBusEngineDesc
Returns : | textdomain in IBusEngineDesc

### ibus_engine_desc_output ()

    void                ibus_engine_desc_output             (IBusEngineDesc *info,
                                                             GString *output,
                                                             gint indent);

Output XML-formatted input method engine description. The result will be append to GString specified in `output`.

`info` : | An IBusEngineDesc
`output` : | XML-formatted Input method engine description.
`indent` : | Number of indent (showed as 4 spaces).

## Property Details

### The `"author"` property

      "author"                   gchar*                : Read / Write / Construct Only

The author of engine description

Default value: ""

### The `"description"` property

      "description"              gchar*                : Read / Write / Construct Only

The description of engine description

Default value: ""

### The `"hotkeys"` property

      "hotkeys"                  gchar*                : Read / Write / Construct Only

The hotkeys of engine description

Default value: ""

### The `"icon"` property

      "icon"                     gchar*                : Read / Write / Construct Only

The icon of engine description

Default value: "ibus-engine"

### The `"language"` property

      "language"                 gchar*                : Read / Write / Construct Only

The language of engine description

Default value: ""

### The `"layout"` property

      "layout"                   gchar*                : Read / Write / Construct Only

The layout of engine description

Default value: "us"

### The `"layout-option"` property

      "layout-option"            gchar*                : Read / Write / Construct Only

The keyboard option of engine description

Default value: ""

### The `"layout-variant"` property

      "layout-variant"           gchar*                : Read / Write / Construct Only

The keyboard variant of engine description

Default value: ""

### The `"license"` property

      "license"                  gchar*                : Read / Write / Construct Only

The license of engine description

Default value: ""

### The `"longname"` property

      "longname"                 gchar*                : Read / Write / Construct Only

The longname of engine description

Default value: ""

### The `"name"` property

      "name"                     gchar*                : Read / Write / Construct Only

The name of engine description

Default value: NULL

### The `"rank"` property

      "rank"                     guint                 : Read / Write / Construct Only

The rank of engine description

Default value: 0

### The `"setup"` property

      "setup"                    gchar*                : Read / Write / Construct Only

The exec lists of the engine setup command

Default value: ""

### The `"symbol"` property

      "symbol"                   gchar*                : Read / Write / Construct Only

The symbol chars of engine description instead of icon image

Default value: ""

### The `"textdomain"` property

      "textdomain"               gchar*                : Read / Write / Construct Only

The textdomain of engine description

Default value: ""

### The `"version"` property

      "version"                  gchar*                : Read / Write / Construct Only

The version number of engine description

Default value: ""