\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'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'll get the right {\ttfamily keyname} by simply using an A\+S\+C\+I\+I value of the key name, but it won'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'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}
