<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
               "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
[
  <!ENTITY % local.common.attrib "xmlns:xi  CDATA  #FIXED 'http://www.w3.org/2003/XInclude'">
  <!ENTITY % gtkdocentities SYSTEM "../xml/gtkdocentities.ent">
  %gtkdocentities;
]>
<refentry id="NimfEngine">
<refmeta>
<refentrytitle role="top_of_page" id="NimfEngine.top_of_page">NimfEngine</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>NIMF Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>NimfEngine</refname>
<refpurpose></refpurpose>
</refnamediv>

<refsect1 id="NimfEngine.functions" role="functions_proto">
<title role="functions_proto.title">Functions</title>
<informaltable pgwide="1" frame="none">
<tgroup cols="2">
<colspec colname="functions_proto_type" colwidth="150px"/>
<colspec colname="functions_proto_name"/>
<tbody>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="nimf-engine-filter-event">nimf_engine_filter_event</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="nimf-engine-reset">nimf_engine_reset</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="nimf-engine-focus-in">nimf_engine_focus_in</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="nimf-engine-focus-out">nimf_engine_focus_out</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="nimf-engine-set-surrounding">nimf_engine_set_surrounding</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="nimf-engine-get-surrounding">nimf_engine_get_surrounding</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="nimf-engine-status-changed">nimf_engine_status_changed</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="nimf-engine-set-method">nimf_engine_set_method</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="nimf-engine-emit-preedit-start">nimf_engine_emit_preedit_start</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="nimf-engine-emit-preedit-changed">nimf_engine_emit_preedit_changed</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="nimf-engine-emit-preedit-end">nimf_engine_emit_preedit_end</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="nimf-engine-emit-commit">nimf_engine_emit_commit</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="nimf-engine-emit-retrieve-surrounding">nimf_engine_emit_retrieve_surrounding</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="nimf-engine-emit-delete-surrounding">nimf_engine_emit_delete_surrounding</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="nimf-engine-emit-beep">nimf_engine_emit_beep</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type">const <link linkend="gchar"><returnvalue>gchar</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="nimf-engine-get-id">nimf_engine_get_id</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type">const <link linkend="gchar"><returnvalue>gchar</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="nimf-engine-get-icon-name">nimf_engine_get_icon_name</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="NimfCandidatable"><returnvalue>NimfCandidatable</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="nimf-engine-get-candidatable">nimf_engine_get_candidatable</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="NimfEngine.other" role="other_proto">
<title role="other_proto.title">Types and Values</title>
<informaltable pgwide="1" frame="none">
<tgroup cols="2">
<colspec colname="other_proto_type" colwidth="150px"/>
<colspec colname="other_proto_name"/>
<tbody>
<row><entry role="datatype_keyword">struct</entry><entry role="function_name"><link linkend="NimfEngineClass">NimfEngineClass</link></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="NimfEngine.object-hierarchy" role="object_hierarchy">
<title role="object_hierarchy.title">Object Hierarchy</title>
<screen>    <link linkend="GObject">GObject</link>
    <phrase role="lineart">&#9584;&#9472;&#9472;</phrase> NimfEngine
</screen>
</refsect1>


<refsect1 id="NimfEngine.description" role="desc">
<title role="desc.title">Description</title>

</refsect1>
<refsect1 id="NimfEngine.functions_details" role="details">
<title role="details.title">Functions</title>
<refsect2 id="nimf-engine-filter-event" role="function">
<title>nimf_engine_filter_event&#160;()</title>
<indexterm zone="nimf-engine-filter-event"><primary sortas="engine_filter_event">nimf_engine_filter_event</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
nimf_engine_filter_event (<parameter><link linkend="NimfEngine"><type>NimfEngine</type></link> *engine</parameter>,
                          <parameter><link linkend="NimfServiceIC"><type>NimfServiceIC</type></link> *ic</parameter>,
                          <parameter><link linkend="NimfEvent"><type>NimfEvent</type></link> *event</parameter>);</programlisting>
<para>Let the language engine handle the event.</para>
<refsect3 id="nimf-engine-filter-event.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>engine</para></entry>
<entry role="parameter_description"><para>a <link linkend="NimfEngine"><type>NimfEngine</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>ic</para></entry>
<entry role="parameter_description"><para>a <link linkend="NimfServiceIC"><type>NimfServiceIC</type></link> associated with <parameter>engine</parameter>
</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>event</para></entry>
<entry role="parameter_description"><para>a <link linkend="NimfEvent"><type>NimfEvent</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="nimf-engine-filter-event.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the language engine consumed the event.</para>
</refsect3></refsect2>
<refsect2 id="nimf-engine-reset" role="function">
<title>nimf_engine_reset&#160;()</title>
<indexterm zone="nimf-engine-reset"><primary sortas="engine_reset">nimf_engine_reset</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
nimf_engine_reset (<parameter><link linkend="NimfEngine"><type>NimfEngine</type></link> *engine</parameter>,
                   <parameter><link linkend="NimfServiceIC"><type>NimfServiceIC</type></link> *ic</parameter>);</programlisting>
<para>Resets the <parameter>engine</parameter>
.</para>
<refsect3 id="nimf-engine-reset.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>engine</para></entry>
<entry role="parameter_description"><para>a <link linkend="NimfEngine"><type>NimfEngine</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>ic</para></entry>
<entry role="parameter_description"><para>a <link linkend="NimfServiceIC"><type>NimfServiceIC</type></link> associated with <parameter>engine</parameter>
</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="nimf-engine-focus-in" role="function">
<title>nimf_engine_focus_in&#160;()</title>
<indexterm zone="nimf-engine-focus-in"><primary sortas="engine_focus_in">nimf_engine_focus_in</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
nimf_engine_focus_in (<parameter><link linkend="NimfEngine"><type>NimfEngine</type></link> *engine</parameter>,
                      <parameter><link linkend="NimfServiceIC"><type>NimfServiceIC</type></link> *ic</parameter>);</programlisting>
<para>Notifies the language engine that the caller has gained focus.</para>
<refsect3 id="nimf-engine-focus-in.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>engine</para></entry>
<entry role="parameter_description"><para>a <link linkend="NimfEngine"><type>NimfEngine</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>ic</para></entry>
<entry role="parameter_description"><para>a <link linkend="NimfServiceIC"><type>NimfServiceIC</type></link> associated with <parameter>engine</parameter>
</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="nimf-engine-focus-out" role="function">
<title>nimf_engine_focus_out&#160;()</title>
<indexterm zone="nimf-engine-focus-out"><primary sortas="engine_focus_out">nimf_engine_focus_out</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
nimf_engine_focus_out (<parameter><link linkend="NimfEngine"><type>NimfEngine</type></link> *engine</parameter>,
                       <parameter><link linkend="NimfServiceIC"><type>NimfServiceIC</type></link> *ic</parameter>);</programlisting>
<para>Notifies the language engine that the caller has lost focus.</para>
<refsect3 id="nimf-engine-focus-out.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>engine</para></entry>
<entry role="parameter_description"><para>a <link linkend="NimfEngine"><type>NimfEngine</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>ic</para></entry>
<entry role="parameter_description"><para>a <link linkend="NimfServiceIC"><type>NimfServiceIC</type></link> associated with <parameter>engine</parameter>
</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="nimf-engine-set-surrounding" role="function">
<title>nimf_engine_set_surrounding&#160;()</title>
<indexterm zone="nimf-engine-set-surrounding"><primary sortas="engine_set_surrounding">nimf_engine_set_surrounding</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
nimf_engine_set_surrounding (<parameter><link linkend="NimfEngine"><type>NimfEngine</type></link> *engine</parameter>,
                             <parameter>const <link linkend="char"><type>char</type></link> *text</parameter>,
                             <parameter><link linkend="gint"><type>gint</type></link> len</parameter>,
                             <parameter><link linkend="gint"><type>gint</type></link> cursor_index</parameter>);</programlisting>
<para>Sets surrounding text in <parameter>engine</parameter>
. This function is expected to be
called in response to <link linkend="nimf-engine-get-surrounding"><function>nimf_engine_get_surrounding()</function></link>.</para>
<refsect3 id="nimf-engine-set-surrounding.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>engine</para></entry>
<entry role="parameter_description"><para>a <link linkend="NimfEngine"><type>NimfEngine</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>text</para></entry>
<entry role="parameter_description"><para>surrounding text</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>len</para></entry>
<entry role="parameter_description"><para>the byte length of <parameter>text</parameter>
</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>cursor_index</para></entry>
<entry role="parameter_description"><para>the character index of the cursor within <parameter>text</parameter>
.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="nimf-engine-get-surrounding" role="function">
<title>nimf_engine_get_surrounding&#160;()</title>
<indexterm zone="nimf-engine-get-surrounding"><primary sortas="engine_get_surrounding">nimf_engine_get_surrounding</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
nimf_engine_get_surrounding (<parameter><link linkend="NimfEngine"><type>NimfEngine</type></link> *engine</parameter>,
                             <parameter><link linkend="NimfServiceIC"><type>NimfServiceIC</type></link> *ic</parameter>,
                             <parameter><link linkend="gchar"><type>gchar</type></link> **text</parameter>,
                             <parameter><link linkend="gint"><type>gint</type></link> *cursor_index</parameter>);</programlisting>
<para>This function internally calls <link linkend="nimf-engine-emit-retrieve-surrounding"><function>nimf_engine_emit_retrieve_surrounding()</function></link>.
Gets surrounding text from the caller of <link linkend="nimf-im-set-surrounding"><function>nimf_im_set_surrounding()</function></link>,
if available.</para>
<refsect3 id="nimf-engine-get-surrounding.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>engine</para></entry>
<entry role="parameter_description"><para>a <link linkend="NimfEngine"><type>NimfEngine</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>ic</para></entry>
<entry role="parameter_description"><para>a <link linkend="NimfServiceIC"><type>NimfServiceIC</type></link> associated with <parameter>engine</parameter>
</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>text</para></entry>
<entry role="parameter_description"><para>location to store surrounding text. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>][<acronym>transfer full</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>cursor_index</para></entry>
<entry role="parameter_description"><para>location to store cursor index. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>][<acronym>transfer full</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="nimf-engine-get-surrounding.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if surrounding text is available</para>
</refsect3></refsect2>
<refsect2 id="nimf-engine-status-changed" role="function">
<title>nimf_engine_status_changed&#160;()</title>
<indexterm zone="nimf-engine-status-changed"><primary sortas="engine_status_changed">nimf_engine_status_changed</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
nimf_engine_status_changed (<parameter><link linkend="NimfEngine"><type>NimfEngine</type></link> *engine</parameter>);</programlisting>
<para>Notifies that the status of the <parameter>engine</parameter>
 has changed.</para>
<refsect3 id="nimf-engine-status-changed.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>engine</para></entry>
<entry role="parameter_description"><para>a <link linkend="NimfEngine"><type>NimfEngine</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="nimf-engine-set-method" role="function">
<title>nimf_engine_set_method&#160;()</title>
<indexterm zone="nimf-engine-set-method"><primary sortas="engine_set_method">nimf_engine_set_method</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
nimf_engine_set_method (<parameter><link linkend="NimfEngine"><type>NimfEngine</type></link> *engine</parameter>,
                        <parameter>const <link linkend="gchar"><type>gchar</type></link> *method_id</parameter>);</programlisting>
<para>The engine may provide multiple input methods. Sets an input method by
<parameter>method_id</parameter>
</para>
<refsect3 id="nimf-engine-set-method.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>engine</para></entry>
<entry role="parameter_description"><para>a <link linkend="NimfEngine"><type>NimfEngine</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>method_id</para></entry>
<entry role="parameter_description"><para>method id</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="nimf-engine-emit-preedit-start" role="function">
<title>nimf_engine_emit_preedit_start&#160;()</title>
<indexterm zone="nimf-engine-emit-preedit-start"><primary sortas="engine_emit_preedit_start">nimf_engine_emit_preedit_start</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
nimf_engine_emit_preedit_start (<parameter><link linkend="NimfEngine"><type>NimfEngine</type></link> *engine</parameter>,
                                <parameter><link linkend="NimfServiceIC"><type>NimfServiceIC</type></link> *ic</parameter>);</programlisting>
<para>Emits the <link linkend="NimfIM-preedit-start"><type>“preedit-start”</type></link> signal.</para>
<refsect3 id="nimf-engine-emit-preedit-start.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>engine</para></entry>
<entry role="parameter_description"><para>a <link linkend="NimfEngine"><type>NimfEngine</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>ic</para></entry>
<entry role="parameter_description"><para>a <link linkend="NimfServiceIC"><type>NimfServiceIC</type></link> associated with <parameter>engine</parameter>
</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="nimf-engine-emit-preedit-changed" role="function">
<title>nimf_engine_emit_preedit_changed&#160;()</title>
<indexterm zone="nimf-engine-emit-preedit-changed"><primary sortas="engine_emit_preedit_changed">nimf_engine_emit_preedit_changed</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
nimf_engine_emit_preedit_changed (<parameter><link linkend="NimfEngine"><type>NimfEngine</type></link> *engine</parameter>,
                                  <parameter><link linkend="NimfServiceIC"><type>NimfServiceIC</type></link> *ic</parameter>,
                                  <parameter>const <link linkend="gchar"><type>gchar</type></link> *preedit_string</parameter>,
                                  <parameter><link linkend="NimfPreeditAttr"><type>NimfPreeditAttr</type></link> **attrs</parameter>,
                                  <parameter><link linkend="gint"><type>gint</type></link> cursor_pos</parameter>);</programlisting>
<para>Emits the <link linkend="NimfIM-preedit-changed"><type>“preedit-changed”</type></link> signal.</para>
<refsect3 id="nimf-engine-emit-preedit-changed.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>engine</para></entry>
<entry role="parameter_description"><para>a <link linkend="NimfEngine"><type>NimfEngine</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>ic</para></entry>
<entry role="parameter_description"><para>a <link linkend="NimfServiceIC"><type>NimfServiceIC</type></link> associated with <parameter>engine</parameter>
</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>preedit_string</para></entry>
<entry role="parameter_description"><para>preedit string</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>attrs</para></entry>
<entry role="parameter_description"><para><link linkend="NimfPreeditAttr"><type>NimfPreeditAttr</type></link> array</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>cursor_pos</para></entry>
<entry role="parameter_description"><para>cursor position within <parameter>preedit_string</parameter>
</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="nimf-engine-emit-preedit-end" role="function">
<title>nimf_engine_emit_preedit_end&#160;()</title>
<indexterm zone="nimf-engine-emit-preedit-end"><primary sortas="engine_emit_preedit_end">nimf_engine_emit_preedit_end</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
nimf_engine_emit_preedit_end (<parameter><link linkend="NimfEngine"><type>NimfEngine</type></link> *engine</parameter>,
                              <parameter><link linkend="NimfServiceIC"><type>NimfServiceIC</type></link> *ic</parameter>);</programlisting>
<para>Emits the <link linkend="NimfIM-preedit-end"><type>“preedit-end”</type></link> signal.</para>
<refsect3 id="nimf-engine-emit-preedit-end.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>engine</para></entry>
<entry role="parameter_description"><para>a <link linkend="NimfEngine"><type>NimfEngine</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>ic</para></entry>
<entry role="parameter_description"><para>a <link linkend="NimfServiceIC"><type>NimfServiceIC</type></link> associated with <parameter>engine</parameter>
</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="nimf-engine-emit-commit" role="function">
<title>nimf_engine_emit_commit&#160;()</title>
<indexterm zone="nimf-engine-emit-commit"><primary sortas="engine_emit_commit">nimf_engine_emit_commit</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
nimf_engine_emit_commit (<parameter><link linkend="NimfEngine"><type>NimfEngine</type></link> *engine</parameter>,
                         <parameter><link linkend="NimfServiceIC"><type>NimfServiceIC</type></link> *ic</parameter>,
                         <parameter><link linkend="gchar"><type>gchar</type></link> const *text</parameter>);</programlisting>
<para>Emits the <link linkend="NimfIM-commit"><type>“commit”</type></link> signal.</para>
<refsect3 id="nimf-engine-emit-commit.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>engine</para></entry>
<entry role="parameter_description"><para>a <link linkend="NimfEngine"><type>NimfEngine</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>ic</para></entry>
<entry role="parameter_description"><para>a <link linkend="NimfServiceIC"><type>NimfServiceIC</type></link> associated with <parameter>engine</parameter>
</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>text</para></entry>
<entry role="parameter_description"><para>text to commit</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="nimf-engine-emit-retrieve-surrounding" role="function">
<title>nimf_engine_emit_retrieve_surrounding&#160;()</title>
<indexterm zone="nimf-engine-emit-retrieve-surrounding"><primary sortas="engine_emit_retrieve_surrounding">nimf_engine_emit_retrieve_surrounding</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
nimf_engine_emit_retrieve_surrounding (<parameter><link linkend="NimfEngine"><type>NimfEngine</type></link> *engine</parameter>,
                                       <parameter><link linkend="NimfServiceIC"><type>NimfServiceIC</type></link> *ic</parameter>);</programlisting>
<para>Emits the <link linkend="NimfIM-retrieve-surrounding"><type>“retrieve-surrounding”</type></link> signal.</para>
<refsect3 id="nimf-engine-emit-retrieve-surrounding.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>engine</para></entry>
<entry role="parameter_description"><para>a <link linkend="NimfEngine"><type>NimfEngine</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>ic</para></entry>
<entry role="parameter_description"><para>a <link linkend="NimfServiceIC"><type>NimfServiceIC</type></link> associated with <parameter>engine</parameter>
</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="nimf-engine-emit-delete-surrounding" role="function">
<title>nimf_engine_emit_delete_surrounding&#160;()</title>
<indexterm zone="nimf-engine-emit-delete-surrounding"><primary sortas="engine_emit_delete_surrounding">nimf_engine_emit_delete_surrounding</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
nimf_engine_emit_delete_surrounding (<parameter><link linkend="NimfEngine"><type>NimfEngine</type></link> *engine</parameter>,
                                     <parameter><link linkend="NimfServiceIC"><type>NimfServiceIC</type></link> *ic</parameter>,
                                     <parameter><link linkend="gint"><type>gint</type></link> offset</parameter>,
                                     <parameter><link linkend="gint"><type>gint</type></link> n_chars</parameter>);</programlisting>
<para>Emits the <link linkend="NimfIM-delete-surrounding"><type>“delete-surrounding”</type></link> signal.</para>
<refsect3 id="nimf-engine-emit-delete-surrounding.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>engine</para></entry>
<entry role="parameter_description"><para>a <link linkend="NimfEngine"><type>NimfEngine</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>ic</para></entry>
<entry role="parameter_description"><para>a <link linkend="NimfServiceIC"><type>NimfServiceIC</type></link> associated with <parameter>engine</parameter>
</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>offset</para></entry>
<entry role="parameter_description"><para>the character offset from the cursor position of the text to be
deleted. A negative value indicates a position before the cursor.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>n_chars</para></entry>
<entry role="parameter_description"><para>the number of characters to be deleted</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="nimf-engine-emit-beep" role="function">
<title>nimf_engine_emit_beep&#160;()</title>
<indexterm zone="nimf-engine-emit-beep"><primary sortas="engine_emit_beep">nimf_engine_emit_beep</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
nimf_engine_emit_beep (<parameter><link linkend="NimfEngine"><type>NimfEngine</type></link> *engine</parameter>,
                       <parameter><link linkend="NimfServiceIC"><type>NimfServiceIC</type></link> *ic</parameter>);</programlisting>
<para>Emits the <link linkend="NimfIM-beep"><type>“beep”</type></link> signal.</para>
<refsect3 id="nimf-engine-emit-beep.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>engine</para></entry>
<entry role="parameter_description"><para>a <link linkend="NimfEngine"><type>NimfEngine</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>ic</para></entry>
<entry role="parameter_description"><para>a <link linkend="NimfServiceIC"><type>NimfServiceIC</type></link> associated with <parameter>engine</parameter>
</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="nimf-engine-get-id" role="function">
<title>nimf_engine_get_id&#160;()</title>
<indexterm zone="nimf-engine-get-id"><primary sortas="engine_get_id">nimf_engine_get_id</primary></indexterm>
<programlisting language="C">const <link linkend="gchar"><returnvalue>gchar</returnvalue></link>&#160;*
nimf_engine_get_id (<parameter><link linkend="NimfEngine"><type>NimfEngine</type></link> *engine</parameter>);</programlisting>
<refsect3 id="nimf-engine-get-id.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>engine</para></entry>
<entry role="parameter_description"><para><link linkend="NimfEngine"><type>NimfEngine</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="nimf-engine-get-id.returns" role="returns">
<title>Returns</title>
<para>engine id. </para>
<para><emphasis role="annotation">[<acronym>transfer none</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="nimf-engine-get-icon-name" role="function">
<title>nimf_engine_get_icon_name&#160;()</title>
<indexterm zone="nimf-engine-get-icon-name"><primary sortas="engine_get_icon_name">nimf_engine_get_icon_name</primary></indexterm>
<programlisting language="C">const <link linkend="gchar"><returnvalue>gchar</returnvalue></link>&#160;*
nimf_engine_get_icon_name (<parameter><link linkend="NimfEngine"><type>NimfEngine</type></link> *engine</parameter>);</programlisting>
<refsect3 id="nimf-engine-get-icon-name.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>engine</para></entry>
<entry role="parameter_description"><para><link linkend="NimfEngine"><type>NimfEngine</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="nimf-engine-get-icon-name.returns" role="returns">
<title>Returns</title>
<para>icon name. </para>
<para><emphasis role="annotation">[<acronym>transfer none</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="nimf-engine-get-candidatable" role="function">
<title>nimf_engine_get_candidatable&#160;()</title>
<indexterm zone="nimf-engine-get-candidatable"><primary sortas="engine_get_candidatable">nimf_engine_get_candidatable</primary></indexterm>
<programlisting language="C"><link linkend="NimfCandidatable"><returnvalue>NimfCandidatable</returnvalue></link>&#160;*
nimf_engine_get_candidatable (<parameter><link linkend="NimfEngine"><type>NimfEngine</type></link> *engine</parameter>);</programlisting>
<refsect3 id="nimf-engine-get-candidatable.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>engine</para></entry>
<entry role="parameter_description"><para><link linkend="NimfEngine"><type>NimfEngine</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="nimf-engine-get-candidatable.returns" role="returns">
<title>Returns</title>
<para>a <link linkend="NimfCandidatable"><type>NimfCandidatable</type></link>. </para>
<para><emphasis role="annotation">[<acronym>transfer none</acronym>]</emphasis></para>
</refsect3></refsect2>

</refsect1>
<refsect1 id="NimfEngine.other_details" role="details">
<title role="details.title">Types and Values</title>
<refsect2 id="NimfEngineClass" role="struct">
<title>struct NimfEngineClass</title>
<indexterm zone="NimfEngineClass"><primary sortas="EngineClass">NimfEngineClass</primary></indexterm>
<programlisting language="C">struct NimfEngineClass {
  /* Virtual functions */
  gboolean (* filter_event)       (NimfEngine          *engine,
                                   NimfServiceIC       *ic,
                                   NimfEvent           *event);
  void     (* reset)              (NimfEngine          *engine,
                                   NimfServiceIC       *ic);
  void     (* focus_in)           (NimfEngine          *engine,
                                   NimfServiceIC       *ic);
  void     (* focus_out)          (NimfEngine          *engine,
                                   NimfServiceIC       *ic);
  void     (* set_method)         (NimfEngine          *engine,
                                   const gchar         *method_id);
  /* candidate */
  gboolean (* candidate_page_up)   (NimfEngine         *engine,
                                    NimfServiceIC      *ic);
  gboolean (* candidate_page_down) (NimfEngine         *engine,
                                    NimfServiceIC      *ic);
  void     (* candidate_clicked)   (NimfEngine         *engine,
                                    NimfServiceIC      *ic,
                                    gchar              *text,
                                    gint                index);
  void     (* candidate_scrolled)  (NimfEngine         *engine,
                                    NimfServiceIC      *ic,
                                    gdouble             value);
  /* info */
  const gchar * (* get_id)        (NimfEngine          *engine);
  const gchar * (* get_icon_name) (NimfEngine          *engine);
};
</programlisting>
<refsect3 id="NimfEngineClass.members" role="struct_members">
<title>Members</title>
<informaltable role="struct_members_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="struct_members_name" colwidth="300px"/>
<colspec colname="struct_members_description"/>
<colspec colname="struct_members_annotations" colwidth="200px"/>
<tbody>
<row role="member"><entry role="struct_member_name"><para><structfield id="NimfEngineClass.filter-event">filter_event</structfield>&#160;()</para></entry>
<entry role="struct_member_description"><para>If the language engine consumes the event, returns <link linkend="TRUE:CAPS"><literal>TRUE</literal></link>.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para><structfield id="NimfEngineClass.reset">reset</structfield>&#160;()</para></entry>
<entry role="struct_member_description"><para>Resets the language engine.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para><structfield id="NimfEngineClass.focus-in">focus_in</structfield>&#160;()</para></entry>
<entry role="struct_member_description"><para>Called via <link linkend="nimf-im-focus-in"><function>nimf_im_focus_in()</function></link> when the caller has gained focus.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para><structfield id="NimfEngineClass.focus-out">focus_out</structfield>&#160;()</para></entry>
<entry role="struct_member_description"><para>Called via <link linkend="nimf-im-focus-out"><function>nimf_im_focus_out()</function></link> when the caller has lost focus.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para><structfield id="NimfEngineClass.set-method">set_method</structfield>&#160;()</para></entry>
<entry role="struct_member_description"><para>Sets the method in the language engine.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para><structfield id="NimfEngineClass.candidate-page-up">candidate_page_up</structfield>&#160;()</para></entry>
<entry role="struct_member_description"><para>handler when candidate page up</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para><structfield id="NimfEngineClass.candidate-page-down">candidate_page_down</structfield>&#160;()</para></entry>
<entry role="struct_member_description"><para>handler when candidate page down</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para><structfield id="NimfEngineClass.candidate-clicked">candidate_clicked</structfield>&#160;()</para></entry>
<entry role="struct_member_description"><para>handler when candidate clicked</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para><structfield id="NimfEngineClass.candidate-scrolled">candidate_scrolled</structfield>&#160;()</para></entry>
<entry role="struct_member_description"><para>handler when candidate scrolled</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para><structfield id="NimfEngineClass.get-id">get_id</structfield>&#160;()</para></entry>
<entry role="struct_member_description"><para>Gets the language engine id.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para><structfield id="NimfEngineClass.get-icon-name">get_icon_name</structfield>&#160;()</para></entry>
<entry role="struct_member_description"><para>Gets the language engine name.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
</tbody></tgroup></informaltable>
</refsect3>
</refsect2>

</refsect1>

</refentry>
