\hypertarget{group__Evas__Event__Feeding__Group}{}\section{Input Events Feeding Functions}
\label{group__Evas__Event__Feeding__Group}\index{Input Events Feeding Functions@{Input Events Feeding Functions}}


Functions to tell Evas that input events happened and should be processed.  


\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{Evas__Common_8h_a430c2d9c773093d159437e35003df281}{Evas\+\_\+\+Device} $\ast$ \hyperlink{group__Evas__Event__Feeding__Group_gafa4fb5030c83d1b49d87f3016ecf5d8e}{evas\+\_\+device\+\_\+add} (\hyperlink{group__Evas__Canvas_ga5ff87cc4ce6bc43e3b640a6d37f73043}{Evas} $\ast$e)
\begin{DoxyCompactList}\small\item\em Add a new device type. \end{DoxyCompactList}\item 
void \hyperlink{group__Evas__Event__Feeding__Group_ga73e1616a2b3cfd3c165a8dcca162eaaf}{evas\+\_\+device\+\_\+del} (\hyperlink{Evas__Common_8h_a430c2d9c773093d159437e35003df281}{Evas\+\_\+\+Device} $\ast$dev)
\begin{DoxyCompactList}\small\item\em Delete a new device type. \end{DoxyCompactList}\item 
void \hyperlink{group__Evas__Event__Feeding__Group_gae1c145ffcfeb301faa1d52d3b1086c42}{evas\+\_\+device\+\_\+push} (\hyperlink{group__Evas__Canvas_ga5ff87cc4ce6bc43e3b640a6d37f73043}{Evas} $\ast$e, \hyperlink{Evas__Common_8h_a430c2d9c773093d159437e35003df281}{Evas\+\_\+\+Device} $\ast$dev)
\begin{DoxyCompactList}\small\item\em Push the current context device onto the device stack. \end{DoxyCompactList}\item 
void \hyperlink{group__Evas__Event__Feeding__Group_ga18273057afa4a086a0f3e459e90323ad}{evas\+\_\+device\+\_\+pop} (\hyperlink{group__Evas__Canvas_ga5ff87cc4ce6bc43e3b640a6d37f73043}{Evas} $\ast$e)
\begin{DoxyCompactList}\small\item\em This pops the top of the device stack for the canvas. \end{DoxyCompactList}\item 
const \hyperlink{group__Eina__List__Group_ga3295e1210efea1fb0fd6acbf3cbc1f29}{Eina\+\_\+\+List} $\ast$ \hyperlink{group__Evas__Event__Feeding__Group_gae75c9ad6a7df347d7a6c894e9b48dce8}{evas\+\_\+device\+\_\+list} (\hyperlink{group__Evas__Canvas_ga5ff87cc4ce6bc43e3b640a6d37f73043}{Evas} $\ast$e, const \hyperlink{Evas__Common_8h_a430c2d9c773093d159437e35003df281}{Evas\+\_\+\+Device} $\ast$dev)
\begin{DoxyCompactList}\small\item\em List all current devices attached to the given canvas and/or device. \end{DoxyCompactList}\item 
void \hyperlink{group__Evas__Event__Feeding__Group_ga37f4666b0a0dad0b8e1dfb3b5bc016ee}{evas\+\_\+device\+\_\+name\+\_\+set} (\hyperlink{Evas__Common_8h_a430c2d9c773093d159437e35003df281}{Evas\+\_\+\+Device} $\ast$dev, const char $\ast$name)
\begin{DoxyCompactList}\small\item\em Set the name of a device as a string. \end{DoxyCompactList}\item 
const char $\ast$ \hyperlink{group__Evas__Event__Feeding__Group_gaec5dc5b3582c7cd8959635f09eeafb4a}{evas\+\_\+device\+\_\+name\+\_\+get} (const \hyperlink{Evas__Common_8h_a430c2d9c773093d159437e35003df281}{Evas\+\_\+\+Device} $\ast$dev)
\begin{DoxyCompactList}\small\item\em Get the name of a device. \end{DoxyCompactList}\item 
void \hyperlink{group__Evas__Event__Feeding__Group_ga9621012a50076697ce5d1c5c73584638}{evas\+\_\+device\+\_\+description\+\_\+set} (\hyperlink{Evas__Common_8h_a430c2d9c773093d159437e35003df281}{Evas\+\_\+\+Device} $\ast$dev, const char $\ast$desc)
\begin{DoxyCompactList}\small\item\em Set the description of a device as a string. \end{DoxyCompactList}\item 
const char $\ast$ \hyperlink{group__Evas__Event__Feeding__Group_gaba810711417b80d8fb154fe0fb9cb37c}{evas\+\_\+device\+\_\+description\+\_\+get} (const \hyperlink{Evas__Common_8h_a430c2d9c773093d159437e35003df281}{Evas\+\_\+\+Device} $\ast$dev)
\begin{DoxyCompactList}\small\item\em Get the description of a device. \end{DoxyCompactList}\item 
void \hyperlink{group__Evas__Event__Feeding__Group_ga905bf02ef71debc15a296f541a74c7d0}{evas\+\_\+device\+\_\+parent\+\_\+set} (\hyperlink{Evas__Common_8h_a430c2d9c773093d159437e35003df281}{Evas\+\_\+\+Device} $\ast$dev, \hyperlink{Evas__Common_8h_a430c2d9c773093d159437e35003df281}{Evas\+\_\+\+Device} $\ast$parent)
\begin{DoxyCompactList}\small\item\em Set the parent of a device. \end{DoxyCompactList}\item 
const \hyperlink{Evas__Common_8h_a430c2d9c773093d159437e35003df281}{Evas\+\_\+\+Device} $\ast$ \hyperlink{group__Evas__Event__Feeding__Group_ga19002f3e6d472772ea47df94942d8b83}{evas\+\_\+device\+\_\+parent\+\_\+get} (const \hyperlink{Evas__Common_8h_a430c2d9c773093d159437e35003df281}{Evas\+\_\+\+Device} $\ast$dev)
\begin{DoxyCompactList}\small\item\em Get the parent of a device. \end{DoxyCompactList}\item 
void \hyperlink{group__Evas__Event__Feeding__Group_gadd1433c895b5d06cab9e6bbd97cae835}{evas\+\_\+device\+\_\+class\+\_\+set} (\hyperlink{Evas__Common_8h_a430c2d9c773093d159437e35003df281}{Evas\+\_\+\+Device} $\ast$dev, \hyperlink{Evas__Common_8h_a05f56d248091513cccc9cedb6f50e4ae}{Evas\+\_\+\+Device\+\_\+\+Class} clas)
\begin{DoxyCompactList}\small\item\em Set the major class of device. \end{DoxyCompactList}\item 
\hyperlink{Evas__Common_8h_a05f56d248091513cccc9cedb6f50e4ae}{Evas\+\_\+\+Device\+\_\+\+Class} \hyperlink{group__Evas__Event__Feeding__Group_ga48345e08c83930c86dd972c0b4a152bf}{evas\+\_\+device\+\_\+class\+\_\+get} (const \hyperlink{Evas__Common_8h_a430c2d9c773093d159437e35003df281}{Evas\+\_\+\+Device} $\ast$dev)
\begin{DoxyCompactList}\small\item\em Get the major class of a device. \end{DoxyCompactList}\item 
void \hyperlink{group__Evas__Event__Feeding__Group_gac468ac5b5780d020f7ac453ab8717d63}{evas\+\_\+device\+\_\+subclass\+\_\+set} (\hyperlink{Evas__Common_8h_a430c2d9c773093d159437e35003df281}{Evas\+\_\+\+Device} $\ast$dev, \hyperlink{Evas__Common_8h_a630b4f60406d3fa84483c285778798a6}{Evas\+\_\+\+Device\+\_\+\+Subclass} clas)
\begin{DoxyCompactList}\small\item\em Set the sub-\/class of a device. \end{DoxyCompactList}\item 
\hyperlink{Evas__Common_8h_a630b4f60406d3fa84483c285778798a6}{Evas\+\_\+\+Device\+\_\+\+Subclass} \hyperlink{group__Evas__Event__Feeding__Group_gaac0eb10da59f01d8439ec43f9295cc9f}{evas\+\_\+device\+\_\+subclass\+\_\+get} (const \hyperlink{Evas__Common_8h_a430c2d9c773093d159437e35003df281}{Evas\+\_\+\+Device} $\ast$dev)
\begin{DoxyCompactList}\small\item\em Get the device sub-\/class. \end{DoxyCompactList}\item 
void \hyperlink{group__Evas__Event__Feeding__Group_gab8a4f7145896328f8cc6b805954813c9}{evas\+\_\+device\+\_\+emulation\+\_\+source\+\_\+set} (\hyperlink{Evas__Common_8h_a430c2d9c773093d159437e35003df281}{Evas\+\_\+\+Device} $\ast$dev, \hyperlink{Evas__Common_8h_a430c2d9c773093d159437e35003df281}{Evas\+\_\+\+Device} $\ast$src)
\begin{DoxyCompactList}\small\item\em Set the emulation source device. \end{DoxyCompactList}\item 
const \hyperlink{Evas__Common_8h_a430c2d9c773093d159437e35003df281}{Evas\+\_\+\+Device} $\ast$ \hyperlink{group__Evas__Event__Feeding__Group_gaeb021665824f6432b7af2019bffbb4b6}{evas\+\_\+device\+\_\+emulation\+\_\+source\+\_\+get} (const \hyperlink{Evas__Common_8h_a430c2d9c773093d159437e35003df281}{Evas\+\_\+\+Device} $\ast$dev)
\begin{DoxyCompactList}\small\item\em Get the emulation source device. \end{DoxyCompactList}\end{DoxyCompactItemize}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{group__Evas__Event__Feeding__Group_ga4f6046343eab8b062e5509d984100ec8}{evas\+\_\+event\+\_\+freeze} (\hyperlink{group__Evas__Canvas_ga5ff87cc4ce6bc43e3b640a6d37f73043}{Evas} $\ast$e)
\begin{DoxyCompactList}\small\item\em Freeze all input events processing. \end{DoxyCompactList}\item 
void \hyperlink{group__Evas__Event__Feeding__Group_ga376918c56c3dc588a059da7fe8629b70}{evas\+\_\+event\+\_\+thaw} (\hyperlink{group__Evas__Canvas_ga5ff87cc4ce6bc43e3b640a6d37f73043}{Evas} $\ast$e)
\begin{DoxyCompactList}\small\item\em Thaw a canvas out after freezing (for input events). \end{DoxyCompactList}\item 
int \hyperlink{group__Evas__Event__Feeding__Group_gaca66af7f9b72ddbd63104d59c1fdf894}{evas\+\_\+event\+\_\+freeze\+\_\+get} (const \hyperlink{group__Evas__Canvas_ga5ff87cc4ce6bc43e3b640a6d37f73043}{Evas} $\ast$e)
\begin{DoxyCompactList}\small\item\em Return the freeze count on input events of a given canvas. \end{DoxyCompactList}\item 
void \hyperlink{group__Evas__Event__Feeding__Group_ga690446435c07686f2acc7b4a9ae40dbf}{evas\+\_\+event\+\_\+thaw\+\_\+eval} (\hyperlink{group__Evas__Canvas_ga5ff87cc4ce6bc43e3b640a6d37f73043}{Evas} $\ast$e)
\begin{DoxyCompactList}\small\item\em After thaw of a canvas, re-\/evaluate the state of objects and call callbacks. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Functions to tell Evas that input events happened and should be processed. 

\begin{DoxyWarning}{Warning}
Most of the time these functions are {\bfseries not} what you\textquotesingle{}re looking for. These functions should only be used if you\textquotesingle{}re not working with ecore evas(or another input handling system). If you\textquotesingle{}re not using ecore evas please consider using it, in most situation it will make life a lot easier.
\end{DoxyWarning}
As explained in intro\+\_\+not\+\_\+evas, Evas does not know how to poll for input events, so the developer should do it and then feed such events to the canvas to be processed. This is only required if operating Evas directly. Modules such as Ecore\+\_\+\+Evas do that for you.

Some of the functions in this group are exemplified \hyperlink{Example_Evas_Events}{here}. 

\subsection{Function Documentation}
\hypertarget{group__Evas__Event__Feeding__Group_gafa4fb5030c83d1b49d87f3016ecf5d8e}{}\index{Input Events Feeding Functions@{Input Events Feeding Functions}!evas\+\_\+device\+\_\+add@{evas\+\_\+device\+\_\+add}}
\index{evas\+\_\+device\+\_\+add@{evas\+\_\+device\+\_\+add}!Input Events Feeding Functions@{Input Events Feeding Functions}}
\subsubsection[{evas\+\_\+device\+\_\+add}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Evas\+\_\+\+Device}$\ast$ evas\+\_\+device\+\_\+add (
\begin{DoxyParamCaption}
\item[{{\bf Evas} $\ast$}]{e}
\end{DoxyParamCaption}
)}\label{group__Evas__Event__Feeding__Group_gafa4fb5030c83d1b49d87f3016ecf5d8e}


Add a new device type. 


\begin{DoxyParams}{Parameters}
{\em e} & The canvas to create the device node for.\\
\hline
\end{DoxyParams}
Adds a new device node to the given canvas {\ttfamily e}. All devices created as part of the canvas {\ttfamily e} will automatically be deleted when the canvas is freed.

\begin{DoxyReturn}{Returns}
the device node created or N\+U\+L\+L if an error occured.
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\hyperlink{group__Evas__Event__Feeding__Group_ga73e1616a2b3cfd3c165a8dcca162eaaf}{evas\+\_\+device\+\_\+del} 
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}


References eina\+\_\+list\+\_\+append(), and E\+V\+A\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+D\+E\+V\+I\+C\+E\+\_\+\+C\+H\+A\+N\+G\+E\+D.

\hypertarget{group__Evas__Event__Feeding__Group_ga73e1616a2b3cfd3c165a8dcca162eaaf}{}\index{Input Events Feeding Functions@{Input Events Feeding Functions}!evas\+\_\+device\+\_\+del@{evas\+\_\+device\+\_\+del}}
\index{evas\+\_\+device\+\_\+del@{evas\+\_\+device\+\_\+del}!Input Events Feeding Functions@{Input Events Feeding Functions}}
\subsubsection[{evas\+\_\+device\+\_\+del}]{\setlength{\rightskip}{0pt plus 5cm}void evas\+\_\+device\+\_\+del (
\begin{DoxyParamCaption}
\item[{{\bf Evas\+\_\+\+Device} $\ast$}]{dev}
\end{DoxyParamCaption}
)}\label{group__Evas__Event__Feeding__Group_ga73e1616a2b3cfd3c165a8dcca162eaaf}


Delete a new device type. 


\begin{DoxyParams}{Parameters}
{\em dev} & The device node you want to delete.\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\hyperlink{group__Evas__Event__Feeding__Group_gafa4fb5030c83d1b49d87f3016ecf5d8e}{evas\+\_\+device\+\_\+add} 

\hyperlink{group__Evas__Event__Feeding__Group_gae1c145ffcfeb301faa1d52d3b1086c42}{evas\+\_\+device\+\_\+push} 

\hyperlink{group__Evas__Event__Feeding__Group_ga18273057afa4a086a0f3e459e90323ad}{evas\+\_\+device\+\_\+pop} 
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}


References E\+I\+N\+A\+\_\+\+L\+I\+S\+T\+\_\+\+F\+R\+E\+E, and evas\+\_\+device\+\_\+del().



Referenced by evas\+\_\+device\+\_\+del().

\hypertarget{group__Evas__Event__Feeding__Group_gae1c145ffcfeb301faa1d52d3b1086c42}{}\index{Input Events Feeding Functions@{Input Events Feeding Functions}!evas\+\_\+device\+\_\+push@{evas\+\_\+device\+\_\+push}}
\index{evas\+\_\+device\+\_\+push@{evas\+\_\+device\+\_\+push}!Input Events Feeding Functions@{Input Events Feeding Functions}}
\subsubsection[{evas\+\_\+device\+\_\+push}]{\setlength{\rightskip}{0pt plus 5cm}void evas\+\_\+device\+\_\+push (
\begin{DoxyParamCaption}
\item[{{\bf Evas} $\ast$}]{e, }
\item[{{\bf Evas\+\_\+\+Device} $\ast$}]{dev}
\end{DoxyParamCaption}
)}\label{group__Evas__Event__Feeding__Group_gae1c145ffcfeb301faa1d52d3b1086c42}


Push the current context device onto the device stack. 


\begin{DoxyParams}{Parameters}
{\em e} & The canvas to push the device on to \\
\hline
{\em dev} & The device to push.\\
\hline
\end{DoxyParams}
This pushes the given device {\ttfamily dev} onto the stack for the canvas {\ttfamily e} resulting in the dev pointer in all events that get fed to the canvas being the device at the top of the device stack for that canvas.

If a device is pushed onto the device stack, it will not be deleted until a canvas free O\+R until it has been popped from the stack even if \hyperlink{group__Evas__Event__Feeding__Group_ga73e1616a2b3cfd3c165a8dcca162eaaf}{evas\+\_\+device\+\_\+del()} is called.

The device {\ttfamily dev} must have been created as a device for the canvas it is pushed onto (and not another canvas).

Example\+: 
\begin{DoxyCode}
1 evas\_device\_push(canvas, dev);
2 evas\_event\_feed\_mouse\_move(canvas, 20, 30, 0, NULL);
3 evas\_device\_pop(canvas);
\end{DoxyCode}


\begin{DoxySeeAlso}{See also}
\hyperlink{group__Evas__Event__Feeding__Group_ga18273057afa4a086a0f3e459e90323ad}{evas\+\_\+device\+\_\+pop} 
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}


References eina\+\_\+array\+\_\+new(), and eina\+\_\+array\+\_\+push().

\hypertarget{group__Evas__Event__Feeding__Group_ga18273057afa4a086a0f3e459e90323ad}{}\index{Input Events Feeding Functions@{Input Events Feeding Functions}!evas\+\_\+device\+\_\+pop@{evas\+\_\+device\+\_\+pop}}
\index{evas\+\_\+device\+\_\+pop@{evas\+\_\+device\+\_\+pop}!Input Events Feeding Functions@{Input Events Feeding Functions}}
\subsubsection[{evas\+\_\+device\+\_\+pop}]{\setlength{\rightskip}{0pt plus 5cm}void evas\+\_\+device\+\_\+pop (
\begin{DoxyParamCaption}
\item[{{\bf Evas} $\ast$}]{e}
\end{DoxyParamCaption}
)}\label{group__Evas__Event__Feeding__Group_ga18273057afa4a086a0f3e459e90323ad}


This pops the top of the device stack for the canvas. 


\begin{DoxyParams}{Parameters}
{\em e} & The canvas to pop the device stack from\\
\hline
\end{DoxyParams}
This pops the top of the device stack making the current device context used for device events being what is now at the top of the stack after popping.

\begin{DoxySeeAlso}{See also}
\hyperlink{group__Evas__Event__Feeding__Group_gae1c145ffcfeb301faa1d52d3b1086c42}{evas\+\_\+device\+\_\+push} 
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}


References eina\+\_\+array\+\_\+pop().

\hypertarget{group__Evas__Event__Feeding__Group_gae75c9ad6a7df347d7a6c894e9b48dce8}{}\index{Input Events Feeding Functions@{Input Events Feeding Functions}!evas\+\_\+device\+\_\+list@{evas\+\_\+device\+\_\+list}}
\index{evas\+\_\+device\+\_\+list@{evas\+\_\+device\+\_\+list}!Input Events Feeding Functions@{Input Events Feeding Functions}}
\subsubsection[{evas\+\_\+device\+\_\+list}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf Eina\+\_\+\+List}$\ast$ evas\+\_\+device\+\_\+list (
\begin{DoxyParamCaption}
\item[{{\bf Evas} $\ast$}]{e, }
\item[{const {\bf Evas\+\_\+\+Device} $\ast$}]{dev}
\end{DoxyParamCaption}
)}\label{group__Evas__Event__Feeding__Group_gae75c9ad6a7df347d7a6c894e9b48dce8}


List all current devices attached to the given canvas and/or device. 


\begin{DoxyParams}{Parameters}
{\em e} & The canvas to query for a device list \\
\hline
{\em dev} & A specific device inside the canvas to query for child devices or N\+U\+L\+L if just querying the base canvas devices \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
An internal list of Evas\+\_\+\+Device pointers, or N\+U\+L\+L if no devices are found
\end{DoxyReturn}
This will list all devices belonging to a specific evas canvas {\ttfamily e}, at the top-\/level in the device tree if {\ttfamily dev} passed in is N\+U\+L\+L. If {\ttfamily dev} is a valid device for the given canvas {\ttfamily e}, then a list of child devices of {\ttfamily dev} will be returned, allowing you to walk the device tree.

The list returned is only valid so long as no changes are made to the device tree in the given canvas {\ttfamily e}. If there are no devices or children then N\+U\+L\+L is returned.

\begin{DoxySeeAlso}{See also}
\hyperlink{group__Evas__Event__Feeding__Group_ga19002f3e6d472772ea47df94942d8b83}{evas\+\_\+device\+\_\+parent\+\_\+get} 

\hyperlink{group__Evas__Event__Feeding__Group_gaec5dc5b3582c7cd8959635f09eeafb4a}{evas\+\_\+device\+\_\+name\+\_\+get} 

\hyperlink{group__Evas__Event__Feeding__Group_gaba810711417b80d8fb154fe0fb9cb37c}{evas\+\_\+device\+\_\+description\+\_\+get} 

\hyperlink{group__Evas__Event__Feeding__Group_ga48345e08c83930c86dd972c0b4a152bf}{evas\+\_\+device\+\_\+class\+\_\+get} 

\hyperlink{group__Evas__Event__Feeding__Group_gaac0eb10da59f01d8439ec43f9295cc9f}{evas\+\_\+device\+\_\+subclass\+\_\+get} 

\hyperlink{group__Evas__Event__Feeding__Group_gaeb021665824f6432b7af2019bffbb4b6}{evas\+\_\+device\+\_\+emulation\+\_\+source\+\_\+get} 
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}
\hypertarget{group__Evas__Event__Feeding__Group_ga37f4666b0a0dad0b8e1dfb3b5bc016ee}{}\index{Input Events Feeding Functions@{Input Events Feeding Functions}!evas\+\_\+device\+\_\+name\+\_\+set@{evas\+\_\+device\+\_\+name\+\_\+set}}
\index{evas\+\_\+device\+\_\+name\+\_\+set@{evas\+\_\+device\+\_\+name\+\_\+set}!Input Events Feeding Functions@{Input Events Feeding Functions}}
\subsubsection[{evas\+\_\+device\+\_\+name\+\_\+set}]{\setlength{\rightskip}{0pt plus 5cm}void evas\+\_\+device\+\_\+name\+\_\+set (
\begin{DoxyParamCaption}
\item[{{\bf Evas\+\_\+\+Device} $\ast$}]{dev, }
\item[{const char $\ast$}]{name}
\end{DoxyParamCaption}
)}\label{group__Evas__Event__Feeding__Group_ga37f4666b0a0dad0b8e1dfb3b5bc016ee}


Set the name of a device as a string. 

{\ttfamily dev} The device to set the name of {\ttfamily name} The name string as a readable C U\+T\+F8 string

\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}


References E\+V\+A\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+D\+E\+V\+I\+C\+E\+\_\+\+C\+H\+A\+N\+G\+E\+D.

\hypertarget{group__Evas__Event__Feeding__Group_gaec5dc5b3582c7cd8959635f09eeafb4a}{}\index{Input Events Feeding Functions@{Input Events Feeding Functions}!evas\+\_\+device\+\_\+name\+\_\+get@{evas\+\_\+device\+\_\+name\+\_\+get}}
\index{evas\+\_\+device\+\_\+name\+\_\+get@{evas\+\_\+device\+\_\+name\+\_\+get}!Input Events Feeding Functions@{Input Events Feeding Functions}}
\subsubsection[{evas\+\_\+device\+\_\+name\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ evas\+\_\+device\+\_\+name\+\_\+get (
\begin{DoxyParamCaption}
\item[{const {\bf Evas\+\_\+\+Device} $\ast$}]{dev}
\end{DoxyParamCaption}
)}\label{group__Evas__Event__Feeding__Group_gaec5dc5b3582c7cd8959635f09eeafb4a}


Get the name of a device. 

{\ttfamily dev} The device to query \begin{DoxyReturn}{Returns}
The device name string or N\+U\+L\+L if none is set
\end{DoxyReturn}
This gets the name set by \hyperlink{group__Evas__Event__Feeding__Group_ga37f4666b0a0dad0b8e1dfb3b5bc016ee}{evas\+\_\+device\+\_\+name\+\_\+set()}. This is a readable U\+T\+F8 C string, or N\+U\+L\+L if no name is set.

The name should be a short name like \char`\"{}\+Wireless Mouse\char`\"{}, \char`\"{}\+Joystick\char`\"{}, \char`\"{}\+Finger\char`\"{}, \char`\"{}\+Keyboard\char`\"{} or \char`\"{}\+Numberpad\char`\"{} etc.

\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}


Referenced by ecore\+\_\+imf\+\_\+evas\+\_\+event\+\_\+key\+\_\+down\+\_\+wrap(), and ecore\+\_\+imf\+\_\+evas\+\_\+event\+\_\+key\+\_\+up\+\_\+wrap().

\hypertarget{group__Evas__Event__Feeding__Group_ga9621012a50076697ce5d1c5c73584638}{}\index{Input Events Feeding Functions@{Input Events Feeding Functions}!evas\+\_\+device\+\_\+description\+\_\+set@{evas\+\_\+device\+\_\+description\+\_\+set}}
\index{evas\+\_\+device\+\_\+description\+\_\+set@{evas\+\_\+device\+\_\+description\+\_\+set}!Input Events Feeding Functions@{Input Events Feeding Functions}}
\subsubsection[{evas\+\_\+device\+\_\+description\+\_\+set}]{\setlength{\rightskip}{0pt plus 5cm}void evas\+\_\+device\+\_\+description\+\_\+set (
\begin{DoxyParamCaption}
\item[{{\bf Evas\+\_\+\+Device} $\ast$}]{dev, }
\item[{const char $\ast$}]{desc}
\end{DoxyParamCaption}
)}\label{group__Evas__Event__Feeding__Group_ga9621012a50076697ce5d1c5c73584638}


Set the description of a device as a string. 

{\ttfamily dev} The device to set the description of {\ttfamily name} The description string as a readable C U\+T\+F8 string

\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}


References E\+V\+A\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+D\+E\+V\+I\+C\+E\+\_\+\+C\+H\+A\+N\+G\+E\+D.

\hypertarget{group__Evas__Event__Feeding__Group_gaba810711417b80d8fb154fe0fb9cb37c}{}\index{Input Events Feeding Functions@{Input Events Feeding Functions}!evas\+\_\+device\+\_\+description\+\_\+get@{evas\+\_\+device\+\_\+description\+\_\+get}}
\index{evas\+\_\+device\+\_\+description\+\_\+get@{evas\+\_\+device\+\_\+description\+\_\+get}!Input Events Feeding Functions@{Input Events Feeding Functions}}
\subsubsection[{evas\+\_\+device\+\_\+description\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ evas\+\_\+device\+\_\+description\+\_\+get (
\begin{DoxyParamCaption}
\item[{const {\bf Evas\+\_\+\+Device} $\ast$}]{dev}
\end{DoxyParamCaption}
)}\label{group__Evas__Event__Feeding__Group_gaba810711417b80d8fb154fe0fb9cb37c}


Get the description of a device. 

{\ttfamily dev} The device to query \begin{DoxyReturn}{Returns}
The device description string or N\+U\+L\+L if none is set
\end{DoxyReturn}
This gets the description set by \hyperlink{group__Evas__Event__Feeding__Group_ga9621012a50076697ce5d1c5c73584638}{evas\+\_\+device\+\_\+description\+\_\+set()}. This is a readable U\+T\+F8 C string, or N\+U\+L\+L if no description is set.

A description is meant to be a longer string describing the device so a human may make sense of it. For example \char`\"{}\+Wireless 6 button mouse in Black
with red buttons\char`\"{} would be a good description, so a user may identify precisely which device is being talked about.

\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}
\hypertarget{group__Evas__Event__Feeding__Group_ga905bf02ef71debc15a296f541a74c7d0}{}\index{Input Events Feeding Functions@{Input Events Feeding Functions}!evas\+\_\+device\+\_\+parent\+\_\+set@{evas\+\_\+device\+\_\+parent\+\_\+set}}
\index{evas\+\_\+device\+\_\+parent\+\_\+set@{evas\+\_\+device\+\_\+parent\+\_\+set}!Input Events Feeding Functions@{Input Events Feeding Functions}}
\subsubsection[{evas\+\_\+device\+\_\+parent\+\_\+set}]{\setlength{\rightskip}{0pt plus 5cm}void evas\+\_\+device\+\_\+parent\+\_\+set (
\begin{DoxyParamCaption}
\item[{{\bf Evas\+\_\+\+Device} $\ast$}]{dev, }
\item[{{\bf Evas\+\_\+\+Device} $\ast$}]{parent}
\end{DoxyParamCaption}
)}\label{group__Evas__Event__Feeding__Group_ga905bf02ef71debc15a296f541a74c7d0}


Set the parent of a device. 

{\ttfamily dev} The device to set the parent of {\ttfamily parent} The new parent device

This sets the parent of a device {\ttfamily dev} to the parent given by {\ttfamily parent}. If the device already has a parent, it is removed from that parent\textquotesingle{}s list. If {\ttfamily parent} is N\+U\+L\+L then the device is unparented and placed back as a root device in the canvas.

When a device is deleted with \hyperlink{group__Evas__Event__Feeding__Group_ga73e1616a2b3cfd3c165a8dcca162eaaf}{evas\+\_\+device\+\_\+del()}, all children are also deleted along with it.

\begin{DoxySeeAlso}{See also}
\hyperlink{group__Evas__Event__Feeding__Group_ga73e1616a2b3cfd3c165a8dcca162eaaf}{evas\+\_\+device\+\_\+del} 

\hyperlink{group__Evas__Event__Feeding__Group_ga19002f3e6d472772ea47df94942d8b83}{evas\+\_\+device\+\_\+parent\+\_\+get} 

\hyperlink{group__Evas__Event__Feeding__Group_gae75c9ad6a7df347d7a6c894e9b48dce8}{evas\+\_\+device\+\_\+list}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}


References eina\+\_\+list\+\_\+append(), eina\+\_\+list\+\_\+remove(), E\+V\+A\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+D\+E\+V\+I\+C\+E\+\_\+\+C\+H\+A\+N\+G\+E\+D, and efl\+::eo\+::parent.

\hypertarget{group__Evas__Event__Feeding__Group_ga19002f3e6d472772ea47df94942d8b83}{}\index{Input Events Feeding Functions@{Input Events Feeding Functions}!evas\+\_\+device\+\_\+parent\+\_\+get@{evas\+\_\+device\+\_\+parent\+\_\+get}}
\index{evas\+\_\+device\+\_\+parent\+\_\+get@{evas\+\_\+device\+\_\+parent\+\_\+get}!Input Events Feeding Functions@{Input Events Feeding Functions}}
\subsubsection[{evas\+\_\+device\+\_\+parent\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf Evas\+\_\+\+Device}$\ast$ evas\+\_\+device\+\_\+parent\+\_\+get (
\begin{DoxyParamCaption}
\item[{const {\bf Evas\+\_\+\+Device} $\ast$}]{dev}
\end{DoxyParamCaption}
)}\label{group__Evas__Event__Feeding__Group_ga19002f3e6d472772ea47df94942d8b83}


Get the parent of a device. 


\begin{DoxyParams}{Parameters}
{\em dev} & The device to query \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The parent device or N\+U\+L\+L if it is a toplevel
\end{DoxyReturn}
This returns the parent device of any given device entry, or N\+U\+L\+L if no parent device exists (is a toplevel device).

\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}
\hypertarget{group__Evas__Event__Feeding__Group_gadd1433c895b5d06cab9e6bbd97cae835}{}\index{Input Events Feeding Functions@{Input Events Feeding Functions}!evas\+\_\+device\+\_\+class\+\_\+set@{evas\+\_\+device\+\_\+class\+\_\+set}}
\index{evas\+\_\+device\+\_\+class\+\_\+set@{evas\+\_\+device\+\_\+class\+\_\+set}!Input Events Feeding Functions@{Input Events Feeding Functions}}
\subsubsection[{evas\+\_\+device\+\_\+class\+\_\+set}]{\setlength{\rightskip}{0pt plus 5cm}void evas\+\_\+device\+\_\+class\+\_\+set (
\begin{DoxyParamCaption}
\item[{{\bf Evas\+\_\+\+Device} $\ast$}]{dev, }
\item[{{\bf Evas\+\_\+\+Device\+\_\+\+Class}}]{clas}
\end{DoxyParamCaption}
)}\label{group__Evas__Event__Feeding__Group_gadd1433c895b5d06cab9e6bbd97cae835}


Set the major class of device. 


\begin{DoxyParams}{Parameters}
{\em dev} & The device whose class to set \\
\hline
{\em clas} & The class to set it to\\
\hline
\end{DoxyParams}
This sets the \char`\"{}primary\char`\"{} class of device (a broad thing like mouse, keyboard, touch, pen etc.).

\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}


References E\+V\+A\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+D\+E\+V\+I\+C\+E\+\_\+\+C\+H\+A\+N\+G\+E\+D.

\hypertarget{group__Evas__Event__Feeding__Group_ga48345e08c83930c86dd972c0b4a152bf}{}\index{Input Events Feeding Functions@{Input Events Feeding Functions}!evas\+\_\+device\+\_\+class\+\_\+get@{evas\+\_\+device\+\_\+class\+\_\+get}}
\index{evas\+\_\+device\+\_\+class\+\_\+get@{evas\+\_\+device\+\_\+class\+\_\+get}!Input Events Feeding Functions@{Input Events Feeding Functions}}
\subsubsection[{evas\+\_\+device\+\_\+class\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Evas\+\_\+\+Device\+\_\+\+Class} evas\+\_\+device\+\_\+class\+\_\+get (
\begin{DoxyParamCaption}
\item[{const {\bf Evas\+\_\+\+Device} $\ast$}]{dev}
\end{DoxyParamCaption}
)}\label{group__Evas__Event__Feeding__Group_ga48345e08c83930c86dd972c0b4a152bf}


Get the major class of a device. 


\begin{DoxyParams}{Parameters}
{\em dev} & The devise to query \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The device class to set
\end{DoxyReturn}
This sets the device class set by \hyperlink{group__Evas__Event__Feeding__Group_gadd1433c895b5d06cab9e6bbd97cae835}{evas\+\_\+device\+\_\+class\+\_\+set()}.

\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}


References E\+V\+A\+S\+\_\+\+D\+E\+V\+I\+C\+E\+\_\+\+C\+L\+A\+S\+S\+\_\+\+N\+O\+N\+E.



Referenced by ecore\+\_\+imf\+\_\+evas\+\_\+event\+\_\+key\+\_\+down\+\_\+wrap(), and ecore\+\_\+imf\+\_\+evas\+\_\+event\+\_\+key\+\_\+up\+\_\+wrap().

\hypertarget{group__Evas__Event__Feeding__Group_gac468ac5b5780d020f7ac453ab8717d63}{}\index{Input Events Feeding Functions@{Input Events Feeding Functions}!evas\+\_\+device\+\_\+subclass\+\_\+set@{evas\+\_\+device\+\_\+subclass\+\_\+set}}
\index{evas\+\_\+device\+\_\+subclass\+\_\+set@{evas\+\_\+device\+\_\+subclass\+\_\+set}!Input Events Feeding Functions@{Input Events Feeding Functions}}
\subsubsection[{evas\+\_\+device\+\_\+subclass\+\_\+set}]{\setlength{\rightskip}{0pt plus 5cm}void evas\+\_\+device\+\_\+subclass\+\_\+set (
\begin{DoxyParamCaption}
\item[{{\bf Evas\+\_\+\+Device} $\ast$}]{dev, }
\item[{{\bf Evas\+\_\+\+Device\+\_\+\+Subclass}}]{clas}
\end{DoxyParamCaption}
)}\label{group__Evas__Event__Feeding__Group_gac468ac5b5780d020f7ac453ab8717d63}


Set the sub-\/class of a device. 


\begin{DoxyParams}{Parameters}
{\em dev} & The device to modify \\
\hline
{\em clas} & The sub-\/class to set\\
\hline
\end{DoxyParams}
This sets the sub-\/class of a device whihc gives much more detailed usage within a broader category.

\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}


References E\+V\+A\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+D\+E\+V\+I\+C\+E\+\_\+\+C\+H\+A\+N\+G\+E\+D.

\hypertarget{group__Evas__Event__Feeding__Group_gaac0eb10da59f01d8439ec43f9295cc9f}{}\index{Input Events Feeding Functions@{Input Events Feeding Functions}!evas\+\_\+device\+\_\+subclass\+\_\+get@{evas\+\_\+device\+\_\+subclass\+\_\+get}}
\index{evas\+\_\+device\+\_\+subclass\+\_\+get@{evas\+\_\+device\+\_\+subclass\+\_\+get}!Input Events Feeding Functions@{Input Events Feeding Functions}}
\subsubsection[{evas\+\_\+device\+\_\+subclass\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Evas\+\_\+\+Device\+\_\+\+Subclass} evas\+\_\+device\+\_\+subclass\+\_\+get (
\begin{DoxyParamCaption}
\item[{const {\bf Evas\+\_\+\+Device} $\ast$}]{dev}
\end{DoxyParamCaption}
)}\label{group__Evas__Event__Feeding__Group_gaac0eb10da59f01d8439ec43f9295cc9f}


Get the device sub-\/class. 


\begin{DoxyParams}{Parameters}
{\em dev} & The device to query \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The device sub-\/class set by \hyperlink{group__Evas__Event__Feeding__Group_gac468ac5b5780d020f7ac453ab8717d63}{evas\+\_\+device\+\_\+subclass\+\_\+set()}.
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}


References E\+V\+A\+S\+\_\+\+D\+E\+V\+I\+C\+E\+\_\+\+S\+U\+B\+C\+L\+A\+S\+S\+\_\+\+N\+O\+N\+E.



Referenced by ecore\+\_\+imf\+\_\+evas\+\_\+event\+\_\+key\+\_\+down\+\_\+wrap(), and ecore\+\_\+imf\+\_\+evas\+\_\+event\+\_\+key\+\_\+up\+\_\+wrap().

\hypertarget{group__Evas__Event__Feeding__Group_gab8a4f7145896328f8cc6b805954813c9}{}\index{Input Events Feeding Functions@{Input Events Feeding Functions}!evas\+\_\+device\+\_\+emulation\+\_\+source\+\_\+set@{evas\+\_\+device\+\_\+emulation\+\_\+source\+\_\+set}}
\index{evas\+\_\+device\+\_\+emulation\+\_\+source\+\_\+set@{evas\+\_\+device\+\_\+emulation\+\_\+source\+\_\+set}!Input Events Feeding Functions@{Input Events Feeding Functions}}
\subsubsection[{evas\+\_\+device\+\_\+emulation\+\_\+source\+\_\+set}]{\setlength{\rightskip}{0pt plus 5cm}void evas\+\_\+device\+\_\+emulation\+\_\+source\+\_\+set (
\begin{DoxyParamCaption}
\item[{{\bf Evas\+\_\+\+Device} $\ast$}]{dev, }
\item[{{\bf Evas\+\_\+\+Device} $\ast$}]{src}
\end{DoxyParamCaption}
)}\label{group__Evas__Event__Feeding__Group_gab8a4f7145896328f8cc6b805954813c9}


Set the emulation source device. 


\begin{DoxyParams}{Parameters}
{\em dev} & The device being emulated \\
\hline
{\em src} & The primary source device producing events in the emulated device\\
\hline
\end{DoxyParams}
Devices may not be real, but may be emulated by listening to input on other devices and modifying or interpeting it to generate output on an emulated device (example a fingeron a touchscreen will often emulate a mouse when it presses). This allows you to set which device primarily emulates {\ttfamily dev} so the user can choose to ignore events from emulated devices if they also pay attention to source device events for example.

\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}


References E\+V\+A\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+D\+E\+V\+I\+C\+E\+\_\+\+C\+H\+A\+N\+G\+E\+D.

\hypertarget{group__Evas__Event__Feeding__Group_gaeb021665824f6432b7af2019bffbb4b6}{}\index{Input Events Feeding Functions@{Input Events Feeding Functions}!evas\+\_\+device\+\_\+emulation\+\_\+source\+\_\+get@{evas\+\_\+device\+\_\+emulation\+\_\+source\+\_\+get}}
\index{evas\+\_\+device\+\_\+emulation\+\_\+source\+\_\+get@{evas\+\_\+device\+\_\+emulation\+\_\+source\+\_\+get}!Input Events Feeding Functions@{Input Events Feeding Functions}}
\subsubsection[{evas\+\_\+device\+\_\+emulation\+\_\+source\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf Evas\+\_\+\+Device}$\ast$ evas\+\_\+device\+\_\+emulation\+\_\+source\+\_\+get (
\begin{DoxyParamCaption}
\item[{const {\bf Evas\+\_\+\+Device} $\ast$}]{dev}
\end{DoxyParamCaption}
)}\label{group__Evas__Event__Feeding__Group_gaeb021665824f6432b7af2019bffbb4b6}


Get the emulation source device. 


\begin{DoxyParams}{Parameters}
{\em dev} & The device to query \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The source emulation device set by \hyperlink{group__Evas__Event__Feeding__Group_gab8a4f7145896328f8cc6b805954813c9}{evas\+\_\+device\+\_\+emulation\+\_\+source\+\_\+set()}.
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}
\hypertarget{group__Evas__Event__Feeding__Group_ga4f6046343eab8b062e5509d984100ec8}{}\index{Input Events Feeding Functions@{Input Events Feeding Functions}!evas\+\_\+event\+\_\+freeze@{evas\+\_\+event\+\_\+freeze}}
\index{evas\+\_\+event\+\_\+freeze@{evas\+\_\+event\+\_\+freeze}!Input Events Feeding Functions@{Input Events Feeding Functions}}
\subsubsection[{evas\+\_\+event\+\_\+freeze}]{\setlength{\rightskip}{0pt plus 5cm}void evas\+\_\+event\+\_\+freeze (
\begin{DoxyParamCaption}
\item[{{\bf Evas} $\ast$}]{e}
\end{DoxyParamCaption}
)}\label{group__Evas__Event__Feeding__Group_ga4f6046343eab8b062e5509d984100ec8}


Freeze all input events processing. 


\begin{DoxyParams}{Parameters}
{\em e} & The canvas to freeze input events processing on.\\
\hline
\end{DoxyParams}
This function will indicate to Evas that the canvas {\ttfamily e} is to have all input event processing frozen until a matching \hyperlink{group__Evas__Event__Feeding__Group_ga376918c56c3dc588a059da7fe8629b70}{evas\+\_\+event\+\_\+thaw()} function is called on the same canvas. All events of this kind during the freeze will get {\bfseries discarded}. Every freeze call must be matched by a thaw call in order to completely thaw out a canvas (i.\+e. these calls may be nested). The most common use is when you don\textquotesingle{}t want the user to interact with your user interface when you\textquotesingle{}re populating a view or changing the layout.

Example\+:  
\begin{DoxyCodeInclude}
1   "\(\backslash\)tf - freeze input for 3 seconds\(\backslash\)n"
2   "\(\backslash\)tp - toggle precise point collision detection on image\(\backslash\)n"
3   "\(\backslash\)tControl + o - add an obscured rectangle\(\backslash\)n"
4   "\(\backslash\)th - print help\(\backslash\)n";
5 
6 struct test\_data
7 \{
8    Ecore\_Evas  *ee;
9    Evas        *canvas;
10    Evas\_Object *img, *bg;
11    Ecore\_Timer *resize\_timer, *freeze\_timer;
12    Eina\_Bool    obscured, focus;
13 \};

\end{DoxyCodeInclude}
  
\begin{DoxyCodeInclude}
1 /* let's have our events back */
2 static Eina\_Bool
3 \_thaw\_cb(void *data EINA\_UNUSED)
4 \{
5    fprintf(stdout, "Canvas was frozen %d times, now thawing.\(\backslash\)n",
6            evas\_event\_freeze\_get(d.canvas));
7    evas\_event\_thaw(d.canvas);
8    return EINA\_FALSE; /* do not re-issue the timer */
9 \}

\end{DoxyCodeInclude}


See the full \hyperlink{Example_Evas_Events}{example}.

If you run that example, you\textquotesingle{}ll see the canvas ignoring all input events for 3 seconds, when the \char`\"{}f\char`\"{} key is pressed. In a more realistic code we would be freezing while a toolkit or Edje was doing some U\+I changes, thawing it back afterwards. \hypertarget{group__Evas__Event__Feeding__Group_ga376918c56c3dc588a059da7fe8629b70}{}\index{Input Events Feeding Functions@{Input Events Feeding Functions}!evas\+\_\+event\+\_\+thaw@{evas\+\_\+event\+\_\+thaw}}
\index{evas\+\_\+event\+\_\+thaw@{evas\+\_\+event\+\_\+thaw}!Input Events Feeding Functions@{Input Events Feeding Functions}}
\subsubsection[{evas\+\_\+event\+\_\+thaw}]{\setlength{\rightskip}{0pt plus 5cm}void evas\+\_\+event\+\_\+thaw (
\begin{DoxyParamCaption}
\item[{{\bf Evas} $\ast$}]{e}
\end{DoxyParamCaption}
)}\label{group__Evas__Event__Feeding__Group_ga376918c56c3dc588a059da7fe8629b70}


Thaw a canvas out after freezing (for input events). 


\begin{DoxyParams}{Parameters}
{\em e} & The canvas to thaw out.\\
\hline
\end{DoxyParams}
This will thaw out a canvas after a matching \hyperlink{group__Evas__Event__Feeding__Group_ga4f6046343eab8b062e5509d984100ec8}{evas\+\_\+event\+\_\+freeze()} call. If this call completely thaws out a canvas, i.\+e., there\textquotesingle{}s no other unbalanced call to \hyperlink{group__Evas__Event__Feeding__Group_ga4f6046343eab8b062e5509d984100ec8}{evas\+\_\+event\+\_\+freeze()}, events will start to be processed again, but any \char`\"{}missed\char`\"{} events will {\bfseries not} be evaluated.

See \hyperlink{group__Evas__Event__Feeding__Group_ga4f6046343eab8b062e5509d984100ec8}{evas\+\_\+event\+\_\+freeze()} for an example. \begin{Desc}
\item[Examples\+: ]\par
\hyperlink{evas-events_8c-example}{evas-\/events.\+c}.\end{Desc}
\hypertarget{group__Evas__Event__Feeding__Group_gaca66af7f9b72ddbd63104d59c1fdf894}{}\index{Input Events Feeding Functions@{Input Events Feeding Functions}!evas\+\_\+event\+\_\+freeze\+\_\+get@{evas\+\_\+event\+\_\+freeze\+\_\+get}}
\index{evas\+\_\+event\+\_\+freeze\+\_\+get@{evas\+\_\+event\+\_\+freeze\+\_\+get}!Input Events Feeding Functions@{Input Events Feeding Functions}}
\subsubsection[{evas\+\_\+event\+\_\+freeze\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}int evas\+\_\+event\+\_\+freeze\+\_\+get (
\begin{DoxyParamCaption}
\item[{const {\bf Evas} $\ast$}]{e}
\end{DoxyParamCaption}
)}\label{group__Evas__Event__Feeding__Group_gaca66af7f9b72ddbd63104d59c1fdf894}


Return the freeze count on input events of a given canvas. 


\begin{DoxyParams}{Parameters}
{\em e} & The canvas to fetch the freeze count from.\\
\hline
\end{DoxyParams}
This returns the number of times the canvas has been told to freeze input events. It is possible to call \hyperlink{group__Evas__Event__Feeding__Group_ga4f6046343eab8b062e5509d984100ec8}{evas\+\_\+event\+\_\+freeze()} multiple times, and these must be matched by \hyperlink{group__Evas__Event__Feeding__Group_ga376918c56c3dc588a059da7fe8629b70}{evas\+\_\+event\+\_\+thaw()} calls. This call allows the program to discover just how many times things have been frozen in case it may want to break out of a deep freeze state where the count is high.

Example\+: 
\begin{DoxyCode}
1 extern Evas *evas;
2 
3 while (evas\_event\_freeze\_get(evas) > 0) evas\_event\_thaw(evas);
\end{DoxyCode}
 \begin{Desc}
\item[Examples\+: ]\par
\hyperlink{evas-events_8c-example}{evas-\/events.\+c}.\end{Desc}


Referenced by evas\+\_\+event\+\_\+thaw\+\_\+eval().

\hypertarget{group__Evas__Event__Feeding__Group_ga690446435c07686f2acc7b4a9ae40dbf}{}\index{Input Events Feeding Functions@{Input Events Feeding Functions}!evas\+\_\+event\+\_\+thaw\+\_\+eval@{evas\+\_\+event\+\_\+thaw\+\_\+eval}}
\index{evas\+\_\+event\+\_\+thaw\+\_\+eval@{evas\+\_\+event\+\_\+thaw\+\_\+eval}!Input Events Feeding Functions@{Input Events Feeding Functions}}
\subsubsection[{evas\+\_\+event\+\_\+thaw\+\_\+eval}]{\setlength{\rightskip}{0pt plus 5cm}void evas\+\_\+event\+\_\+thaw\+\_\+eval (
\begin{DoxyParamCaption}
\item[{{\bf Evas} $\ast$}]{e}
\end{DoxyParamCaption}
)}\label{group__Evas__Event__Feeding__Group_ga690446435c07686f2acc7b4a9ae40dbf}


After thaw of a canvas, re-\/evaluate the state of objects and call callbacks. 


\begin{DoxyParams}{Parameters}
{\em e} & The canvas to evaluate after a thaw\\
\hline
\end{DoxyParams}
This is normally called after \hyperlink{group__Evas__Event__Feeding__Group_ga376918c56c3dc588a059da7fe8629b70}{evas\+\_\+event\+\_\+thaw()} to re-\/evaluate mouse containment and other states and thus also call callbacks for mouse in and out on new objects if the state change demands it. 

References evas\+\_\+event\+\_\+freeze\+\_\+get().

