\hypertarget{group__Evas__Keys}{}\section{Key Input Functions}
\label{group__Evas__Keys}\index{Key Input Functions@{Key Input Functions}}


Functions which feed key events to the canvas.  


\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Evas__Keys_ga6cc24a5ea4b39b84c7a3e617de3db261}{evas\+\_\+key\+\_\+modifier\+\_\+is\+\_\+set} (const \hyperlink{Evas__Common_8h_a198d0b10861c1da456004688d3443e96}{Evas\+\_\+\+Modifier} $\ast$m, const char $\ast$keyname)
\begin{DoxyCompactList}\small\item\em Checks the state of a given modifier key, at the time of the call. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Evas__Keys_ga08080dfe3ad50c85f4965b9063bfd7de}{evas\+\_\+key\+\_\+lock\+\_\+is\+\_\+set} (const \hyperlink{Evas__Common_8h_a791323b644ee831ead4c5d25552a0fd8}{Evas\+\_\+\+Lock} $\ast$l, const char $\ast$keyname)
\begin{DoxyCompactList}\small\item\em Checks the state of a given lock key, at the time of the call. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Functions which feed key events to the canvas. 

As explained in intro\+\_\+not\+\_\+evas, Evas is {\bfseries not} aware of input systems at all. Then, the user, if using it crudely (\hyperlink{group__Evas__Canvas_ga67e8eb17d2a676bfdfb8794fc5f72bc0}{evas\+\_\+new()}), will have to feed it with input events, so that it can react somehow. If, however, the user creates a canvas by means of the Ecore\+\_\+\+Evas wrapper, it will automatically bind the chosen display engine\textquotesingle{}s input events to the canvas, for you.

This group presents the functions dealing with the feeding of key events to the canvas. On most of them, one has to reference a given key by a name ({\ttfamily keyname} argument). Those are {\bfseries platform dependent} symbolic names for the keys. Sometimes you\textquotesingle{}ll get the right {\ttfamily keyname} by simply using an A\+S\+C\+I\+I value of the key name, but it won\textquotesingle{}t be like that always.

Typical platforms are Linux frame buffer (Ecore\+\_\+\+F\+B) and X server (Ecore\+\_\+\+X) when using Evas with Ecore and Ecore\+\_\+\+Evas. Please refer to your display engine\textquotesingle{}s documentation when using evas through an Ecore helper wrapper when you need the {\ttfamily keyname}s.

Example\+:  
\begin{DoxyCodeInclude}
   mods = evas\_key\_modifier\_get(\hyperlink{namespaceevas}{evas});
   \textcolor{keywordflow}{if} (\hyperlink{group__Evas__Keys_ga6cc24a5ea4b39b84c7a3e617de3db261}{evas\_key\_modifier\_is\_set}(mods, \textcolor{stringliteral}{"Control"}) &&
       (strcmp(ev->key, \textcolor{stringliteral}{"o"}) == 0)) \textcolor{comment}{/* add an obscured}
\textcolor{comment}{                                        * rectangle to the middle}
\textcolor{comment}{                                        * of the canvas */}
     \{

\end{DoxyCodeInclude}


All the other {\ttfamily evas\+\_\+key} functions behave on the same manner. See the full \hyperlink{Example_Evas_Events}{example}. 

\subsection{Function Documentation}
\hypertarget{group__Evas__Keys_ga6cc24a5ea4b39b84c7a3e617de3db261}{}\index{Key Input Functions@{Key Input Functions}!evas\+\_\+key\+\_\+modifier\+\_\+is\+\_\+set@{evas\+\_\+key\+\_\+modifier\+\_\+is\+\_\+set}}
\index{evas\+\_\+key\+\_\+modifier\+\_\+is\+\_\+set@{evas\+\_\+key\+\_\+modifier\+\_\+is\+\_\+set}!Key Input Functions@{Key Input Functions}}
\subsubsection[{evas\+\_\+key\+\_\+modifier\+\_\+is\+\_\+set}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} evas\+\_\+key\+\_\+modifier\+\_\+is\+\_\+set (
\begin{DoxyParamCaption}
\item[{const {\bf Evas\+\_\+\+Modifier} $\ast$}]{m, }
\item[{const char $\ast$}]{keyname}
\end{DoxyParamCaption}
)}\label{group__Evas__Keys_ga6cc24a5ea4b39b84c7a3e617de3db261}


Checks the state of a given modifier key, at the time of the call. 

If the modifier is set, such as shift being pressed, this function returns {\ttfamily Eina\+\_\+\+True}.


\begin{DoxyParams}{Parameters}
{\em m} & The current modifiers set, as returned by evas\+\_\+key\+\_\+modifier\+\_\+get(). \\
\hline
{\em keyname} & The name of the modifier key to check status for.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily Eina\+\_\+\+True} if the modifier key named {\ttfamily keyname} is on, {\ttfamily Eina\+\_\+\+False} otherwise.
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
evas\+\_\+key\+\_\+modifier\+\_\+add 

evas\+\_\+key\+\_\+modifier\+\_\+del 

evas\+\_\+key\+\_\+modifier\+\_\+get 

evas\+\_\+key\+\_\+modifier\+\_\+on 

evas\+\_\+key\+\_\+modifier\+\_\+off 
\end{DoxySeeAlso}
\hypertarget{group__Evas__Keys_ga08080dfe3ad50c85f4965b9063bfd7de}{}\index{Key Input Functions@{Key Input Functions}!evas\+\_\+key\+\_\+lock\+\_\+is\+\_\+set@{evas\+\_\+key\+\_\+lock\+\_\+is\+\_\+set}}
\index{evas\+\_\+key\+\_\+lock\+\_\+is\+\_\+set@{evas\+\_\+key\+\_\+lock\+\_\+is\+\_\+set}!Key Input Functions@{Key Input Functions}}
\subsubsection[{evas\+\_\+key\+\_\+lock\+\_\+is\+\_\+set}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} evas\+\_\+key\+\_\+lock\+\_\+is\+\_\+set (
\begin{DoxyParamCaption}
\item[{const {\bf Evas\+\_\+\+Lock} $\ast$}]{l, }
\item[{const char $\ast$}]{keyname}
\end{DoxyParamCaption}
)}\label{group__Evas__Keys_ga08080dfe3ad50c85f4965b9063bfd7de}


Checks the state of a given lock key, at the time of the call. 

If the lock is set, such as caps lock, this function returns {\ttfamily Eina\+\_\+\+True}.


\begin{DoxyParams}{Parameters}
{\em l} & The current locks set, as returned by evas\+\_\+key\+\_\+lock\+\_\+get(). \\
\hline
{\em keyname} & The name of the lock key to check status for.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily Eina\+\_\+\+True} if the {\ttfamily keyname} lock key is set, {\ttfamily Eina\+\_\+\+False} otherwise.
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
evas\+\_\+key\+\_\+lock\+\_\+get 

evas\+\_\+key\+\_\+lock\+\_\+add 

evas\+\_\+key\+\_\+lock\+\_\+del 

evas\+\_\+key\+\_\+lock\+\_\+on 

evas\+\_\+key\+\_\+lock\+\_\+off 
\end{DoxySeeAlso}
