\hypertarget{group__Ecore__IMF__Context__Module__Group}{}\section{Ecore Input Method Context Module Functions}
\label{group__Ecore__IMF__Context__Module__Group}\index{Ecore Input Method Context Module Functions@{Ecore Input Method Context Module Functions}}


Functions that should be used by Ecore Input Method Context modules.  


\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} \hyperlink{group__Ecore__IMF__Context__Group_gab990e052e8501815371d7289dfd4a017}{Ecore\+\_\+\+I\+M\+F\+\_\+\+Context} $\ast$ \hyperlink{group__Ecore__IMF__Context__Module__Group_ga4b46b1cc69a0bd7cd624f3cd8b3a46c5}{ecore\+\_\+imf\+\_\+context\+\_\+new} (const \hyperlink{group__Ecore__IMF__Context__Group_ga8dc2ea6c07083f46408b0c35155da43e}{Ecore\+\_\+\+I\+M\+F\+\_\+\+Context\+\_\+\+Class} $\ast$ctxc)
\begin{DoxyCompactList}\small\item\em Creates a new Input Method Context with klass specified by {\ttfamily ctxc}. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} void \hyperlink{group__Ecore__IMF__Context__Module__Group_ga95642efd0cdd77e50c91742781b8d425}{ecore\+\_\+imf\+\_\+context\+\_\+data\+\_\+set} (\hyperlink{group__Ecore__IMF__Context__Group_gab990e052e8501815371d7289dfd4a017}{Ecore\+\_\+\+I\+M\+F\+\_\+\+Context} $\ast$ctx, void $\ast$data)
\begin{DoxyCompactList}\small\item\em Set the Input Method Context specific data. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} void $\ast$ \hyperlink{group__Ecore__IMF__Context__Module__Group_ga3a38cfe133cdaf9f21ad86fd18cc28df}{ecore\+\_\+imf\+\_\+context\+\_\+data\+\_\+get} (\hyperlink{group__Ecore__IMF__Context__Group_gab990e052e8501815371d7289dfd4a017}{Ecore\+\_\+\+I\+M\+F\+\_\+\+Context} $\ast$ctx)
\begin{DoxyCompactList}\small\item\em Get the Input Method Context specific data. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Ecore__IMF__Context__Module__Group_gadf4eedd77261c819ef333765f431d9db}{ecore\+\_\+imf\+\_\+context\+\_\+surrounding\+\_\+get} (\hyperlink{group__Ecore__IMF__Context__Group_gab990e052e8501815371d7289dfd4a017}{Ecore\+\_\+\+I\+M\+F\+\_\+\+Context} $\ast$ctx, char $\ast$$\ast$text, int $\ast$cursor\+\_\+pos)
\begin{DoxyCompactList}\small\item\em Retrieve context around insertion point. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Ecore__IMF__Context__Module__Group_ga284e5942d979564e7cc18508d6b214d9}{ecore\+\_\+imf\+\_\+context\+\_\+selection\+\_\+get} (\hyperlink{group__Ecore__IMF__Context__Group_gab990e052e8501815371d7289dfd4a017}{Ecore\+\_\+\+I\+M\+F\+\_\+\+Context} $\ast$ctx, char $\ast$$\ast$text)
\begin{DoxyCompactList}\small\item\em Retrieve the selected text. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} void \hyperlink{group__Ecore__IMF__Context__Module__Group_ga98b68c7499b34ebe646fbade6a86785e}{ecore\+\_\+imf\+\_\+context\+\_\+preedit\+\_\+start\+\_\+event\+\_\+add} (\hyperlink{group__Ecore__IMF__Context__Group_gab990e052e8501815371d7289dfd4a017}{Ecore\+\_\+\+I\+M\+F\+\_\+\+Context} $\ast$ctx)
\begin{DoxyCompactList}\small\item\em Adds E\+C\+O\+R\+E\+\_\+\+I\+M\+F\+\_\+\+E\+V\+E\+N\+T\+\_\+\+P\+R\+E\+E\+D\+I\+T\+\_\+\+S\+T\+A\+R\+T to the event queue. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} void \hyperlink{group__Ecore__IMF__Context__Module__Group_ga5019c52ef13814f335fa6ce0420dc73b}{ecore\+\_\+imf\+\_\+context\+\_\+preedit\+\_\+end\+\_\+event\+\_\+add} (\hyperlink{group__Ecore__IMF__Context__Group_gab990e052e8501815371d7289dfd4a017}{Ecore\+\_\+\+I\+M\+F\+\_\+\+Context} $\ast$ctx)
\begin{DoxyCompactList}\small\item\em Adds E\+C\+O\+R\+E\+\_\+\+I\+M\+F\+\_\+\+E\+V\+E\+N\+T\+\_\+\+P\+R\+E\+E\+D\+I\+T\+\_\+\+E\+N\+D to the event queue. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} void \hyperlink{group__Ecore__IMF__Context__Module__Group_gad803c974e6244fcabd5d0267c63fb1ec}{ecore\+\_\+imf\+\_\+context\+\_\+preedit\+\_\+changed\+\_\+event\+\_\+add} (\hyperlink{group__Ecore__IMF__Context__Group_gab990e052e8501815371d7289dfd4a017}{Ecore\+\_\+\+I\+M\+F\+\_\+\+Context} $\ast$ctx)
\begin{DoxyCompactList}\small\item\em Adds E\+C\+O\+R\+E\+\_\+\+I\+M\+F\+\_\+\+E\+V\+E\+N\+T\+\_\+\+P\+R\+E\+E\+D\+I\+T\+\_\+\+C\+H\+A\+N\+G\+E\+D to the event queue. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} void \hyperlink{group__Ecore__IMF__Context__Module__Group_ga034f987c1874719a0c6f5b3c43bdbb6a}{ecore\+\_\+imf\+\_\+context\+\_\+commit\+\_\+event\+\_\+add} (\hyperlink{group__Ecore__IMF__Context__Group_gab990e052e8501815371d7289dfd4a017}{Ecore\+\_\+\+I\+M\+F\+\_\+\+Context} $\ast$ctx, const char $\ast$str)
\begin{DoxyCompactList}\small\item\em Adds E\+C\+O\+R\+E\+\_\+\+I\+M\+F\+\_\+\+E\+V\+E\+N\+T\+\_\+\+C\+O\+M\+M\+I\+T to the event queue. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} void \hyperlink{group__Ecore__IMF__Context__Module__Group_gafbb709924fdc668fb74ffd986f959715}{ecore\+\_\+imf\+\_\+context\+\_\+delete\+\_\+surrounding\+\_\+event\+\_\+add} (\hyperlink{group__Ecore__IMF__Context__Group_gab990e052e8501815371d7289dfd4a017}{Ecore\+\_\+\+I\+M\+F\+\_\+\+Context} $\ast$ctx, int offset, int n\+\_\+chars)
\begin{DoxyCompactList}\small\item\em Adds E\+C\+O\+R\+E\+\_\+\+I\+M\+F\+\_\+\+E\+V\+E\+N\+T\+\_\+\+D\+E\+L\+E\+T\+E\+\_\+\+S\+U\+R\+R\+O\+U\+N\+D\+I\+N\+G to the event queue. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} void \hyperlink{group__Ecore__IMF__Context__Module__Group_gae6f3975b595997524e87057348c3b19b}{ecore\+\_\+imf\+\_\+context\+\_\+event\+\_\+callback\+\_\+call} (\hyperlink{group__Ecore__IMF__Context__Group_gab990e052e8501815371d7289dfd4a017}{Ecore\+\_\+\+I\+M\+F\+\_\+\+Context} $\ast$ctx, \hyperlink{group__Ecore__IMF__Context__Group_ga06aadd645f11ba5c8d00943aa327be5a}{Ecore\+\_\+\+I\+M\+F\+\_\+\+Callback\+\_\+\+Type} type, void $\ast$event\+\_\+info)
\begin{DoxyCompactList}\small\item\em Call a given callback on the context {\ttfamily ctx}. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Functions that should be used by Ecore Input Method Context modules. 



\subsection{Function Documentation}
\hypertarget{group__Ecore__IMF__Context__Module__Group_ga4b46b1cc69a0bd7cd624f3cd8b3a46c5}{}\index{Ecore Input Method Context Module Functions@{Ecore Input Method Context Module Functions}!ecore\+\_\+imf\+\_\+context\+\_\+new@{ecore\+\_\+imf\+\_\+context\+\_\+new}}
\index{ecore\+\_\+imf\+\_\+context\+\_\+new@{ecore\+\_\+imf\+\_\+context\+\_\+new}!Ecore Input Method Context Module Functions@{Ecore Input Method Context Module Functions}}
\subsubsection[{ecore\+\_\+imf\+\_\+context\+\_\+new(const Ecore\+\_\+\+I\+M\+F\+\_\+\+Context\+\_\+\+Class $\ast$ctxc)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} {\bf Ecore\+\_\+\+I\+M\+F\+\_\+\+Context}$\ast$ ecore\+\_\+imf\+\_\+context\+\_\+new (
\begin{DoxyParamCaption}
\item[{const {\bf Ecore\+\_\+\+I\+M\+F\+\_\+\+Context\+\_\+\+Class} $\ast$}]{ctxc}
\end{DoxyParamCaption}
)}\label{group__Ecore__IMF__Context__Module__Group_ga4b46b1cc69a0bd7cd624f3cd8b3a46c5}


Creates a new Input Method Context with klass specified by {\ttfamily ctxc}. 

This method should be used by modules implementing the Input Method Context interface.


\begin{DoxyParams}{Parameters}
{\em ctxc} & An \hyperlink{group__Ecore__IMF__Context__Group_ga8dc2ea6c07083f46408b0c35155da43e}{Ecore\+\_\+\+I\+M\+F\+\_\+\+Context\+\_\+\+Class}. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A new \hyperlink{group__Ecore__IMF__Context__Group_gab990e052e8501815371d7289dfd4a017}{Ecore\+\_\+\+I\+M\+F\+\_\+\+Context}; on failure it returns N\+U\+L\+L. 
\end{DoxyReturn}
\hypertarget{group__Ecore__IMF__Context__Module__Group_ga95642efd0cdd77e50c91742781b8d425}{}\index{Ecore Input Method Context Module Functions@{Ecore Input Method Context Module Functions}!ecore\+\_\+imf\+\_\+context\+\_\+data\+\_\+set@{ecore\+\_\+imf\+\_\+context\+\_\+data\+\_\+set}}
\index{ecore\+\_\+imf\+\_\+context\+\_\+data\+\_\+set@{ecore\+\_\+imf\+\_\+context\+\_\+data\+\_\+set}!Ecore Input Method Context Module Functions@{Ecore Input Method Context Module Functions}}
\subsubsection[{ecore\+\_\+imf\+\_\+context\+\_\+data\+\_\+set(\+Ecore\+\_\+\+I\+M\+F\+\_\+\+Context $\ast$ctx, void $\ast$data)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} void ecore\+\_\+imf\+\_\+context\+\_\+data\+\_\+set (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\+\_\+\+I\+M\+F\+\_\+\+Context} $\ast$}]{ctx, }
\item[{void $\ast$}]{data}
\end{DoxyParamCaption}
)}\label{group__Ecore__IMF__Context__Module__Group_ga95642efd0cdd77e50c91742781b8d425}


Set the Input Method Context specific data. 

Note that this method should be used by modules to set the Input Method Context specific data and it\textquotesingle{}s not meant to be used by applications to store application specific data.


\begin{DoxyParams}{Parameters}
{\em ctx} & An \hyperlink{group__Ecore__IMF__Context__Group_gab990e052e8501815371d7289dfd4a017}{Ecore\+\_\+\+I\+M\+F\+\_\+\+Context}. \\
\hline
{\em data} & The Input Method Context specific data. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A new \hyperlink{group__Ecore__IMF__Context__Group_gab990e052e8501815371d7289dfd4a017}{Ecore\+\_\+\+I\+M\+F\+\_\+\+Context}; on failure it returns N\+U\+L\+L. 
\end{DoxyReturn}
\hypertarget{group__Ecore__IMF__Context__Module__Group_ga3a38cfe133cdaf9f21ad86fd18cc28df}{}\index{Ecore Input Method Context Module Functions@{Ecore Input Method Context Module Functions}!ecore\+\_\+imf\+\_\+context\+\_\+data\+\_\+get@{ecore\+\_\+imf\+\_\+context\+\_\+data\+\_\+get}}
\index{ecore\+\_\+imf\+\_\+context\+\_\+data\+\_\+get@{ecore\+\_\+imf\+\_\+context\+\_\+data\+\_\+get}!Ecore Input Method Context Module Functions@{Ecore Input Method Context Module Functions}}
\subsubsection[{ecore\+\_\+imf\+\_\+context\+\_\+data\+\_\+get(\+Ecore\+\_\+\+I\+M\+F\+\_\+\+Context $\ast$ctx)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} void$\ast$ ecore\+\_\+imf\+\_\+context\+\_\+data\+\_\+get (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\+\_\+\+I\+M\+F\+\_\+\+Context} $\ast$}]{ctx}
\end{DoxyParamCaption}
)}\label{group__Ecore__IMF__Context__Module__Group_ga3a38cfe133cdaf9f21ad86fd18cc28df}


Get the Input Method Context specific data. 

See \hyperlink{group__Ecore__IMF__Context__Module__Group_ga95642efd0cdd77e50c91742781b8d425}{ecore\+\_\+imf\+\_\+context\+\_\+data\+\_\+set} for more details.


\begin{DoxyParams}{Parameters}
{\em ctx} & An \hyperlink{group__Ecore__IMF__Context__Group_gab990e052e8501815371d7289dfd4a017}{Ecore\+\_\+\+I\+M\+F\+\_\+\+Context}. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The Input Method Context specific data. 
\end{DoxyReturn}
\hypertarget{group__Ecore__IMF__Context__Module__Group_gadf4eedd77261c819ef333765f431d9db}{}\index{Ecore Input Method Context Module Functions@{Ecore Input Method Context Module Functions}!ecore\+\_\+imf\+\_\+context\+\_\+surrounding\+\_\+get@{ecore\+\_\+imf\+\_\+context\+\_\+surrounding\+\_\+get}}
\index{ecore\+\_\+imf\+\_\+context\+\_\+surrounding\+\_\+get@{ecore\+\_\+imf\+\_\+context\+\_\+surrounding\+\_\+get}!Ecore Input Method Context Module Functions@{Ecore Input Method Context Module Functions}}
\subsubsection[{ecore\+\_\+imf\+\_\+context\+\_\+surrounding\+\_\+get(\+Ecore\+\_\+\+I\+M\+F\+\_\+\+Context $\ast$ctx, char $\ast$$\ast$text, int $\ast$cursor\+\_\+pos)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} {\bf Eina\+\_\+\+Bool} ecore\+\_\+imf\+\_\+context\+\_\+surrounding\+\_\+get (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\+\_\+\+I\+M\+F\+\_\+\+Context} $\ast$}]{ctx, }
\item[{char $\ast$$\ast$}]{text, }
\item[{int $\ast$}]{cursor\+\_\+pos}
\end{DoxyParamCaption}
)}\label{group__Ecore__IMF__Context__Module__Group_gadf4eedd77261c819ef333765f431d9db}


Retrieve context around insertion point. 

Input methods typically want context in order to constrain input text based on existing text; this is important for languages such as Thai where only some sequences of characters are allowed. In addition, the text around the insertion point can be used for supporting autocapital feature.

This function is implemented by calling the Ecore\+\_\+\+I\+M\+F\+\_\+\+Context\+::retrieve\+\_\+surrounding\+\_\+func ( set using \hyperlink{group__Ecore__IMF__Context__Group_gaf4da8dacae69d82559f808645b118df5}{ecore\+\_\+imf\+\_\+context\+\_\+retrieve\+\_\+surrounding\+\_\+callback\+\_\+set}).

There is no obligation for a widget to respond to the retrieve\+\_\+surrounding\+\_\+func, so input methods must be prepared to function without context.


\begin{DoxyParams}{Parameters}
{\em ctx} & An \hyperlink{group__Ecore__IMF__Context__Group_gab990e052e8501815371d7289dfd4a017}{Ecore\+\_\+\+I\+M\+F\+\_\+\+Context}. \\
\hline
{\em text} & Location to store a U\+T\+F-\/8 encoded string of text holding context around the insertion point. If the function returns {\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E}, then you must free the result stored in this location with free(). \\
\hline
{\em cursor\+\_\+pos} & Location to store the position in characters of the insertion cursor within {\ttfamily text}. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if surrounding text was provided; otherwise {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E}. 
\end{DoxyReturn}


References E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E.

\hypertarget{group__Ecore__IMF__Context__Module__Group_ga284e5942d979564e7cc18508d6b214d9}{}\index{Ecore Input Method Context Module Functions@{Ecore Input Method Context Module Functions}!ecore\+\_\+imf\+\_\+context\+\_\+selection\+\_\+get@{ecore\+\_\+imf\+\_\+context\+\_\+selection\+\_\+get}}
\index{ecore\+\_\+imf\+\_\+context\+\_\+selection\+\_\+get@{ecore\+\_\+imf\+\_\+context\+\_\+selection\+\_\+get}!Ecore Input Method Context Module Functions@{Ecore Input Method Context Module Functions}}
\subsubsection[{ecore\+\_\+imf\+\_\+context\+\_\+selection\+\_\+get(\+Ecore\+\_\+\+I\+M\+F\+\_\+\+Context $\ast$ctx, char $\ast$$\ast$text)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} {\bf Eina\+\_\+\+Bool} ecore\+\_\+imf\+\_\+context\+\_\+selection\+\_\+get (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\+\_\+\+I\+M\+F\+\_\+\+Context} $\ast$}]{ctx, }
\item[{char $\ast$$\ast$}]{text}
\end{DoxyParamCaption}
)}\label{group__Ecore__IMF__Context__Module__Group_ga284e5942d979564e7cc18508d6b214d9}


Retrieve the selected text. 

This function is implemented by calling the Ecore\+\_\+\+I\+M\+F\+\_\+\+Context\+::retrieve\+\_\+selection\+\_\+func ( set using \hyperlink{group__Ecore__IMF__Context__Group_ga42c64574726d0713a27aa4d99c25bd38}{ecore\+\_\+imf\+\_\+context\+\_\+retrieve\+\_\+selection\+\_\+callback\+\_\+set}).

There is no obligation for a widget to respond to the retrieve\+\_\+surrounding\+\_\+func, so input methods must be prepared to function without context.


\begin{DoxyParams}{Parameters}
{\em ctx} & An \hyperlink{group__Ecore__IMF__Context__Group_gab990e052e8501815371d7289dfd4a017}{Ecore\+\_\+\+I\+M\+F\+\_\+\+Context}. \\
\hline
{\em text} & Location to store a U\+T\+F-\/8 encoded string of the selected text. If the function returns {\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E}, then you must free the result stored in this location with free(). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if selected text was provided; otherwise {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E}.
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+9.\+0 
\end{DoxySince}


References E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E.

\hypertarget{group__Ecore__IMF__Context__Module__Group_ga98b68c7499b34ebe646fbade6a86785e}{}\index{Ecore Input Method Context Module Functions@{Ecore Input Method Context Module Functions}!ecore\+\_\+imf\+\_\+context\+\_\+preedit\+\_\+start\+\_\+event\+\_\+add@{ecore\+\_\+imf\+\_\+context\+\_\+preedit\+\_\+start\+\_\+event\+\_\+add}}
\index{ecore\+\_\+imf\+\_\+context\+\_\+preedit\+\_\+start\+\_\+event\+\_\+add@{ecore\+\_\+imf\+\_\+context\+\_\+preedit\+\_\+start\+\_\+event\+\_\+add}!Ecore Input Method Context Module Functions@{Ecore Input Method Context Module Functions}}
\subsubsection[{ecore\+\_\+imf\+\_\+context\+\_\+preedit\+\_\+start\+\_\+event\+\_\+add(\+Ecore\+\_\+\+I\+M\+F\+\_\+\+Context $\ast$ctx)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} void ecore\+\_\+imf\+\_\+context\+\_\+preedit\+\_\+start\+\_\+event\+\_\+add (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\+\_\+\+I\+M\+F\+\_\+\+Context} $\ast$}]{ctx}
\end{DoxyParamCaption}
)}\label{group__Ecore__IMF__Context__Module__Group_ga98b68c7499b34ebe646fbade6a86785e}


Adds E\+C\+O\+R\+E\+\_\+\+I\+M\+F\+\_\+\+E\+V\+E\+N\+T\+\_\+\+P\+R\+E\+E\+D\+I\+T\+\_\+\+S\+T\+A\+R\+T to the event queue. 

E\+C\+O\+R\+E\+\_\+\+I\+M\+F\+\_\+\+E\+V\+E\+N\+T\+\_\+\+P\+R\+E\+E\+D\+I\+T\+\_\+\+S\+T\+A\+R\+T should be added when a new preedit sequence starts. It\textquotesingle{}s asynchronous method to put event to the event queue. \hyperlink{group__Ecore__IMF__Context__Module__Group_gae6f3975b595997524e87057348c3b19b}{ecore\+\_\+imf\+\_\+context\+\_\+event\+\_\+callback\+\_\+call()} can be used as synchronous method.


\begin{DoxyParams}{Parameters}
{\em ctx} & An \hyperlink{group__Ecore__IMF__Context__Group_gab990e052e8501815371d7289dfd4a017}{Ecore\+\_\+\+I\+M\+F\+\_\+\+Context}. \\
\hline
\end{DoxyParams}


References ecore\+\_\+event\+\_\+add().

\hypertarget{group__Ecore__IMF__Context__Module__Group_ga5019c52ef13814f335fa6ce0420dc73b}{}\index{Ecore Input Method Context Module Functions@{Ecore Input Method Context Module Functions}!ecore\+\_\+imf\+\_\+context\+\_\+preedit\+\_\+end\+\_\+event\+\_\+add@{ecore\+\_\+imf\+\_\+context\+\_\+preedit\+\_\+end\+\_\+event\+\_\+add}}
\index{ecore\+\_\+imf\+\_\+context\+\_\+preedit\+\_\+end\+\_\+event\+\_\+add@{ecore\+\_\+imf\+\_\+context\+\_\+preedit\+\_\+end\+\_\+event\+\_\+add}!Ecore Input Method Context Module Functions@{Ecore Input Method Context Module Functions}}
\subsubsection[{ecore\+\_\+imf\+\_\+context\+\_\+preedit\+\_\+end\+\_\+event\+\_\+add(\+Ecore\+\_\+\+I\+M\+F\+\_\+\+Context $\ast$ctx)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} void ecore\+\_\+imf\+\_\+context\+\_\+preedit\+\_\+end\+\_\+event\+\_\+add (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\+\_\+\+I\+M\+F\+\_\+\+Context} $\ast$}]{ctx}
\end{DoxyParamCaption}
)}\label{group__Ecore__IMF__Context__Module__Group_ga5019c52ef13814f335fa6ce0420dc73b}


Adds E\+C\+O\+R\+E\+\_\+\+I\+M\+F\+\_\+\+E\+V\+E\+N\+T\+\_\+\+P\+R\+E\+E\+D\+I\+T\+\_\+\+E\+N\+D to the event queue. 

E\+C\+O\+R\+E\+\_\+\+I\+M\+F\+\_\+\+E\+V\+E\+N\+T\+\_\+\+P\+R\+E\+E\+D\+I\+T\+\_\+\+E\+N\+D should be added when a new preedit sequence has been completed or canceled. It\textquotesingle{}s asynchronous method to put event to the event queue. \hyperlink{group__Ecore__IMF__Context__Module__Group_gae6f3975b595997524e87057348c3b19b}{ecore\+\_\+imf\+\_\+context\+\_\+event\+\_\+callback\+\_\+call()} can be used as synchronous method.


\begin{DoxyParams}{Parameters}
{\em ctx} & An \hyperlink{group__Ecore__IMF__Context__Group_gab990e052e8501815371d7289dfd4a017}{Ecore\+\_\+\+I\+M\+F\+\_\+\+Context}. \\
\hline
\end{DoxyParams}


References ecore\+\_\+event\+\_\+add().

\hypertarget{group__Ecore__IMF__Context__Module__Group_gad803c974e6244fcabd5d0267c63fb1ec}{}\index{Ecore Input Method Context Module Functions@{Ecore Input Method Context Module Functions}!ecore\+\_\+imf\+\_\+context\+\_\+preedit\+\_\+changed\+\_\+event\+\_\+add@{ecore\+\_\+imf\+\_\+context\+\_\+preedit\+\_\+changed\+\_\+event\+\_\+add}}
\index{ecore\+\_\+imf\+\_\+context\+\_\+preedit\+\_\+changed\+\_\+event\+\_\+add@{ecore\+\_\+imf\+\_\+context\+\_\+preedit\+\_\+changed\+\_\+event\+\_\+add}!Ecore Input Method Context Module Functions@{Ecore Input Method Context Module Functions}}
\subsubsection[{ecore\+\_\+imf\+\_\+context\+\_\+preedit\+\_\+changed\+\_\+event\+\_\+add(\+Ecore\+\_\+\+I\+M\+F\+\_\+\+Context $\ast$ctx)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} void ecore\+\_\+imf\+\_\+context\+\_\+preedit\+\_\+changed\+\_\+event\+\_\+add (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\+\_\+\+I\+M\+F\+\_\+\+Context} $\ast$}]{ctx}
\end{DoxyParamCaption}
)}\label{group__Ecore__IMF__Context__Module__Group_gad803c974e6244fcabd5d0267c63fb1ec}


Adds E\+C\+O\+R\+E\+\_\+\+I\+M\+F\+\_\+\+E\+V\+E\+N\+T\+\_\+\+P\+R\+E\+E\+D\+I\+T\+\_\+\+C\+H\+A\+N\+G\+E\+D to the event queue. 

It\textquotesingle{}s asynchronous method to put event to the event queue. \hyperlink{group__Ecore__IMF__Context__Module__Group_gae6f3975b595997524e87057348c3b19b}{ecore\+\_\+imf\+\_\+context\+\_\+event\+\_\+callback\+\_\+call()} can be used as synchronous method.


\begin{DoxyParams}{Parameters}
{\em ctx} & An \hyperlink{group__Ecore__IMF__Context__Group_gab990e052e8501815371d7289dfd4a017}{Ecore\+\_\+\+I\+M\+F\+\_\+\+Context}. \\
\hline
\end{DoxyParams}


References ecore\+\_\+event\+\_\+add().

\hypertarget{group__Ecore__IMF__Context__Module__Group_ga034f987c1874719a0c6f5b3c43bdbb6a}{}\index{Ecore Input Method Context Module Functions@{Ecore Input Method Context Module Functions}!ecore\+\_\+imf\+\_\+context\+\_\+commit\+\_\+event\+\_\+add@{ecore\+\_\+imf\+\_\+context\+\_\+commit\+\_\+event\+\_\+add}}
\index{ecore\+\_\+imf\+\_\+context\+\_\+commit\+\_\+event\+\_\+add@{ecore\+\_\+imf\+\_\+context\+\_\+commit\+\_\+event\+\_\+add}!Ecore Input Method Context Module Functions@{Ecore Input Method Context Module Functions}}
\subsubsection[{ecore\+\_\+imf\+\_\+context\+\_\+commit\+\_\+event\+\_\+add(\+Ecore\+\_\+\+I\+M\+F\+\_\+\+Context $\ast$ctx, const char $\ast$str)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} void ecore\+\_\+imf\+\_\+context\+\_\+commit\+\_\+event\+\_\+add (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\+\_\+\+I\+M\+F\+\_\+\+Context} $\ast$}]{ctx, }
\item[{const char $\ast$}]{str}
\end{DoxyParamCaption}
)}\label{group__Ecore__IMF__Context__Module__Group_ga034f987c1874719a0c6f5b3c43bdbb6a}


Adds E\+C\+O\+R\+E\+\_\+\+I\+M\+F\+\_\+\+E\+V\+E\+N\+T\+\_\+\+C\+O\+M\+M\+I\+T to the event queue. 

It\textquotesingle{}s asynchronous method to put event to the event queue. \hyperlink{group__Ecore__IMF__Context__Module__Group_gae6f3975b595997524e87057348c3b19b}{ecore\+\_\+imf\+\_\+context\+\_\+event\+\_\+callback\+\_\+call()} can be used as synchronous method.


\begin{DoxyParams}{Parameters}
{\em ctx} & An \hyperlink{group__Ecore__IMF__Context__Group_gab990e052e8501815371d7289dfd4a017}{Ecore\+\_\+\+I\+M\+F\+\_\+\+Context}. \\
\hline
{\em str} & The committed string. \\
\hline
\end{DoxyParams}


References ecore\+\_\+event\+\_\+add().

\hypertarget{group__Ecore__IMF__Context__Module__Group_gafbb709924fdc668fb74ffd986f959715}{}\index{Ecore Input Method Context Module Functions@{Ecore Input Method Context Module Functions}!ecore\+\_\+imf\+\_\+context\+\_\+delete\+\_\+surrounding\+\_\+event\+\_\+add@{ecore\+\_\+imf\+\_\+context\+\_\+delete\+\_\+surrounding\+\_\+event\+\_\+add}}
\index{ecore\+\_\+imf\+\_\+context\+\_\+delete\+\_\+surrounding\+\_\+event\+\_\+add@{ecore\+\_\+imf\+\_\+context\+\_\+delete\+\_\+surrounding\+\_\+event\+\_\+add}!Ecore Input Method Context Module Functions@{Ecore Input Method Context Module Functions}}
\subsubsection[{ecore\+\_\+imf\+\_\+context\+\_\+delete\+\_\+surrounding\+\_\+event\+\_\+add(\+Ecore\+\_\+\+I\+M\+F\+\_\+\+Context $\ast$ctx, int offset, int n\+\_\+chars)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} void ecore\+\_\+imf\+\_\+context\+\_\+delete\+\_\+surrounding\+\_\+event\+\_\+add (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\+\_\+\+I\+M\+F\+\_\+\+Context} $\ast$}]{ctx, }
\item[{int}]{offset, }
\item[{int}]{n\+\_\+chars}
\end{DoxyParamCaption}
)}\label{group__Ecore__IMF__Context__Module__Group_gafbb709924fdc668fb74ffd986f959715}


Adds E\+C\+O\+R\+E\+\_\+\+I\+M\+F\+\_\+\+E\+V\+E\+N\+T\+\_\+\+D\+E\+L\+E\+T\+E\+\_\+\+S\+U\+R\+R\+O\+U\+N\+D\+I\+N\+G to the event queue. 

Asks the widget that the input context is attached to to delete characters around the cursor position by adding the E\+C\+O\+R\+E\+\_\+\+I\+M\+F\+\_\+\+E\+V\+E\+N\+T\+\_\+\+D\+E\+L\+E\+T\+E\+\_\+\+S\+U\+R\+R\+O\+U\+N\+D\+I\+N\+G to the event queue. Note that offset and n\+\_\+chars are in characters not in bytes.

It\textquotesingle{}s asynchronous method to put E\+C\+O\+R\+E\+\_\+\+I\+M\+F\+\_\+\+E\+V\+E\+N\+T\+\_\+\+D\+E\+L\+E\+T\+E\+\_\+\+S\+U\+R\+R\+O\+U\+N\+D\+I\+N\+G event to the event queue. \hyperlink{group__Ecore__IMF__Context__Module__Group_gae6f3975b595997524e87057348c3b19b}{ecore\+\_\+imf\+\_\+context\+\_\+event\+\_\+callback\+\_\+call()} can be used as synchronous method.


\begin{DoxyParams}{Parameters}
{\em ctx} & An \hyperlink{group__Ecore__IMF__Context__Group_gab990e052e8501815371d7289dfd4a017}{Ecore\+\_\+\+I\+M\+F\+\_\+\+Context}. \\
\hline
{\em offset} & The start offset of surrounding to be deleted. \\
\hline
{\em n\+\_\+chars} & The number of characters to be deleted. \\
\hline
\end{DoxyParams}


References ecore\+\_\+event\+\_\+add().

\hypertarget{group__Ecore__IMF__Context__Module__Group_gae6f3975b595997524e87057348c3b19b}{}\index{Ecore Input Method Context Module Functions@{Ecore Input Method Context Module Functions}!ecore\+\_\+imf\+\_\+context\+\_\+event\+\_\+callback\+\_\+call@{ecore\+\_\+imf\+\_\+context\+\_\+event\+\_\+callback\+\_\+call}}
\index{ecore\+\_\+imf\+\_\+context\+\_\+event\+\_\+callback\+\_\+call@{ecore\+\_\+imf\+\_\+context\+\_\+event\+\_\+callback\+\_\+call}!Ecore Input Method Context Module Functions@{Ecore Input Method Context Module Functions}}
\subsubsection[{ecore\+\_\+imf\+\_\+context\+\_\+event\+\_\+callback\+\_\+call(\+Ecore\+\_\+\+I\+M\+F\+\_\+\+Context $\ast$ctx, Ecore\+\_\+\+I\+M\+F\+\_\+\+Callback\+\_\+\+Type type, void $\ast$event\+\_\+info)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} void ecore\+\_\+imf\+\_\+context\+\_\+event\+\_\+callback\+\_\+call (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\+\_\+\+I\+M\+F\+\_\+\+Context} $\ast$}]{ctx, }
\item[{{\bf Ecore\+\_\+\+I\+M\+F\+\_\+\+Callback\+\_\+\+Type}}]{type, }
\item[{void $\ast$}]{event\+\_\+info}
\end{DoxyParamCaption}
)}\label{group__Ecore__IMF__Context__Module__Group_gae6f3975b595997524e87057348c3b19b}


Call a given callback on the context {\ttfamily ctx}. 

\hyperlink{group__Ecore__IMF__Context__Module__Group_ga98b68c7499b34ebe646fbade6a86785e}{ecore\+\_\+imf\+\_\+context\+\_\+preedit\+\_\+start\+\_\+event\+\_\+add()}, \hyperlink{group__Ecore__IMF__Context__Module__Group_ga5019c52ef13814f335fa6ce0420dc73b}{ecore\+\_\+imf\+\_\+context\+\_\+preedit\+\_\+end\+\_\+event\+\_\+add()}, \hyperlink{group__Ecore__IMF__Context__Module__Group_gad803c974e6244fcabd5d0267c63fb1ec}{ecore\+\_\+imf\+\_\+context\+\_\+preedit\+\_\+changed\+\_\+event\+\_\+add()}, \hyperlink{group__Ecore__IMF__Context__Module__Group_ga034f987c1874719a0c6f5b3c43bdbb6a}{ecore\+\_\+imf\+\_\+context\+\_\+commit\+\_\+event\+\_\+add()} and \hyperlink{group__Ecore__IMF__Context__Module__Group_gafbb709924fdc668fb74ffd986f959715}{ecore\+\_\+imf\+\_\+context\+\_\+delete\+\_\+surrounding\+\_\+event\+\_\+add()} A\+P\+Is are asynchronous because those A\+P\+I adds each event to the event queue.

This A\+P\+I provides the way to call each callback function immediately.


\begin{DoxyParams}{Parameters}
{\em ctx} & Ecore\+\_\+\+I\+M\+F\+\_\+\+Context. \\
\hline
{\em type} & The type of event that will trigger the callback \\
\hline
{\em event\+\_\+info} & The pointer to event specific struct or information to pass to the callback functions registered on this event\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+2.\+0 
\end{DoxySince}


References E\+I\+N\+A\+\_\+\+L\+I\+S\+T\+\_\+\+F\+O\+R\+E\+A\+C\+H.

