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


Functions that feed key events to the canvas.  


\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{group__Evas__Keys_ga791323b644ee831ead4c5d25552a0fd8}\label{group__Evas__Keys_ga791323b644ee831ead4c5d25552a0fd8}} 
typedef struct \+\_\+\+Evas\+\_\+\+Lock \mbox{\hyperlink{group__Evas__Keys_ga791323b644ee831ead4c5d25552a0fd8}{Evas\+\_\+\+Lock}}
\begin{DoxyCompactList}\small\item\em An opaque type containing information on which lock keys are registered in an Evas canvas. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Evas__Keys_ga198d0b10861c1da456004688d3443e96}\label{group__Evas__Keys_ga198d0b10861c1da456004688d3443e96}} 
typedef struct \+\_\+\+Evas\+\_\+\+Modifier \mbox{\hyperlink{group__Evas__Keys_ga198d0b10861c1da456004688d3443e96}{Evas\+\_\+\+Modifier}}
\begin{DoxyCompactList}\small\item\em An opaque type containing information on which modifier keys are registered in an Evas canvas. \end{DoxyCompactList}\item 
typedef unsigned long long \mbox{\hyperlink{group__Evas__Keys_ga111c7333a7d49e44698bd19dd5bc9059}{Evas\+\_\+\+Modifier\+\_\+\+Mask}}
\begin{DoxyCompactList}\small\item\em A bitmask of modifier keys. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Evas__Keys_ga6cc24a5ea4b39b84c7a3e617de3db261}{evas\+\_\+key\+\_\+modifier\+\_\+is\+\_\+set}} (const \mbox{\hyperlink{group__Evas__Keys_ga198d0b10861c1da456004688d3443e96}{Evas\+\_\+\+Modifier}} $\ast$m, const char $\ast$keyname)
\begin{DoxyCompactList}\small\item\em Checks the state of a given modifier of the default seat, at the time of the call. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Evas__Keys_gad4cace2c2f6e3029c669510c48e76d18}{evas\+\_\+seat\+\_\+key\+\_\+modifier\+\_\+is\+\_\+set}} (const \mbox{\hyperlink{group__Evas__Keys_ga198d0b10861c1da456004688d3443e96}{Evas\+\_\+\+Modifier}} $\ast$m, const char $\ast$keyname, const \mbox{\hyperlink{Evas__Common_8h_a639a59adaf61d20194c9b6c2bdcddc7b}{Evas\+\_\+\+Device}} $\ast$seat)
\begin{DoxyCompactList}\small\item\em Checks the state of a given modifier key of a given seat, at the time of the call. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Evas__Keys_ga08080dfe3ad50c85f4965b9063bfd7de}{evas\+\_\+key\+\_\+lock\+\_\+is\+\_\+set}} (const \mbox{\hyperlink{group__Evas__Keys_ga791323b644ee831ead4c5d25552a0fd8}{Evas\+\_\+\+Lock}} $\ast$l, const char $\ast$keyname)
\begin{DoxyCompactList}\small\item\em Checks the state of a given lock key of the default seat, at the time of the call. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Evas__Keys_gad489a5bd490e6b8883cfe837fa3484c0}{evas\+\_\+seat\+\_\+key\+\_\+lock\+\_\+is\+\_\+set}} (const \mbox{\hyperlink{group__Evas__Keys_ga791323b644ee831ead4c5d25552a0fd8}{Evas\+\_\+\+Lock}} $\ast$l, const char $\ast$keyname, const \mbox{\hyperlink{Evas__Common_8h_a639a59adaf61d20194c9b6c2bdcddc7b}{Evas\+\_\+\+Device}} $\ast$seat)
\begin{DoxyCompactList}\small\item\em Checks the state of a given lock key of a given seat, at the time of the call. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Functions that 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 (\mbox{\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\+II value of the key name, but it won\textquotesingle{}t be like that always.

Typical platforms are Linux frame buffer (Ecore\+\_\+\+FB) 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 = \mbox{\hyperlink{group__Evas__Canvas_gaad42bb4caa43c1cfef4096f6ac2b99ec}{evas\_key\_modifier\_get}}(evas);
   \textcolor{keywordflow}{if} (\mbox{\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 \mbox{\hyperlink{Example_Evas_Events}{example}}. 

\subsection{Typedef Documentation}
\mbox{\Hypertarget{group__Evas__Keys_ga111c7333a7d49e44698bd19dd5bc9059}\label{group__Evas__Keys_ga111c7333a7d49e44698bd19dd5bc9059}} 
\index{Key Input Functions@{Key Input Functions}!Evas\+\_\+\+Modifier\+\_\+\+Mask@{Evas\+\_\+\+Modifier\+\_\+\+Mask}}
\index{Evas\+\_\+\+Modifier\+\_\+\+Mask@{Evas\+\_\+\+Modifier\+\_\+\+Mask}!Key Input Functions@{Key Input Functions}}
\subsubsection{\texorpdfstring{Evas\+\_\+\+Modifier\+\_\+\+Mask}{Evas\_Modifier\_Mask}}
{\footnotesize\ttfamily typedef unsigned long long \mbox{\hyperlink{group__Evas__Keys_ga111c7333a7d49e44698bd19dd5bc9059}{Evas\+\_\+\+Modifier\+\_\+\+Mask}}}



A bitmask of modifier keys. 

See \mbox{\hyperlink{group__Evas__Canvas_ga668f8e34ce152d130f37b6b903db3ee2}{evas\+\_\+key\+\_\+modifier\+\_\+mask\+\_\+get()}} for the keyname to bit conversion. 

\subsection{Function Documentation}
\mbox{\Hypertarget{group__Evas__Keys_ga6cc24a5ea4b39b84c7a3e617de3db261}\label{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{\texorpdfstring{evas\+\_\+key\+\_\+modifier\+\_\+is\+\_\+set()}{evas\_key\_modifier\_is\_set()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} evas\+\_\+key\+\_\+modifier\+\_\+is\+\_\+set (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Evas__Keys_ga198d0b10861c1da456004688d3443e96}{Evas\+\_\+\+Modifier}} $\ast$}]{m,  }\item[{const char $\ast$}]{keyname }\end{DoxyParamCaption})}



Checks the state of a given modifier of the default seat, 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 \mbox{\hyperlink{group__Evas__Canvas_gaad42bb4caa43c1cfef4096f6ac2b99ec}{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}
\mbox{\hyperlink{group__Evas__Canvas_ga8204eab45ed56d57f34d8020b52a63a7}{evas\+\_\+key\+\_\+modifier\+\_\+add}} 

\mbox{\hyperlink{group__Evas__Canvas_ga2aec6e8faa55052bc5cf67c3052d7e0b}{evas\+\_\+key\+\_\+modifier\+\_\+del}} 

\mbox{\hyperlink{group__Evas__Canvas_gaad42bb4caa43c1cfef4096f6ac2b99ec}{evas\+\_\+key\+\_\+modifier\+\_\+get}} 

\mbox{\hyperlink{group__Evas__Canvas_ga6ccfb047d185e898b81d7a6b01138a32}{evas\+\_\+key\+\_\+modifier\+\_\+on}} 

\mbox{\hyperlink{group__Evas__Canvas_gab3d15ba07954691c14f1bb5e944fffd9}{evas\+\_\+key\+\_\+modifier\+\_\+off}} 

\mbox{\hyperlink{group__Evas__Keys_gad4cace2c2f6e3029c669510c48e76d18}{evas\+\_\+seat\+\_\+key\+\_\+modifier\+\_\+is\+\_\+set}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Evas__Keys_gad4cace2c2f6e3029c669510c48e76d18}\label{group__Evas__Keys_gad4cace2c2f6e3029c669510c48e76d18}} 
\index{Key Input Functions@{Key Input Functions}!evas\+\_\+seat\+\_\+key\+\_\+modifier\+\_\+is\+\_\+set@{evas\+\_\+seat\+\_\+key\+\_\+modifier\+\_\+is\+\_\+set}}
\index{evas\+\_\+seat\+\_\+key\+\_\+modifier\+\_\+is\+\_\+set@{evas\+\_\+seat\+\_\+key\+\_\+modifier\+\_\+is\+\_\+set}!Key Input Functions@{Key Input Functions}}
\subsubsection{\texorpdfstring{evas\+\_\+seat\+\_\+key\+\_\+modifier\+\_\+is\+\_\+set()}{evas\_seat\_key\_modifier\_is\_set()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} evas\+\_\+seat\+\_\+key\+\_\+modifier\+\_\+is\+\_\+set (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Evas__Keys_ga198d0b10861c1da456004688d3443e96}{Evas\+\_\+\+Modifier}} $\ast$}]{m,  }\item[{const char $\ast$}]{keyname,  }\item[{const \mbox{\hyperlink{Evas__Common_8h_a639a59adaf61d20194c9b6c2bdcddc7b}{Evas\+\_\+\+Device}} $\ast$}]{seat }\end{DoxyParamCaption})}



Checks the state of a given modifier key of a given seat, 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 \mbox{\hyperlink{group__Evas__Canvas_gaad42bb4caa43c1cfef4096f6ac2b99ec}{evas\+\_\+key\+\_\+modifier\+\_\+get()}}. \\
\hline
{\em keyname} & The name of the modifier key to check status for. \\
\hline
{\em seat} & The seat to check if the lock is set. Use {\ttfamily N\+U\+LL} for the default seat.\\
\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}
\mbox{\hyperlink{group__Evas__Canvas_ga8204eab45ed56d57f34d8020b52a63a7}{evas\+\_\+key\+\_\+modifier\+\_\+add}} 

\mbox{\hyperlink{group__Evas__Canvas_ga2aec6e8faa55052bc5cf67c3052d7e0b}{evas\+\_\+key\+\_\+modifier\+\_\+del}} 

\mbox{\hyperlink{group__Evas__Canvas_gaad42bb4caa43c1cfef4096f6ac2b99ec}{evas\+\_\+key\+\_\+modifier\+\_\+get}} 

\mbox{\hyperlink{group__Evas__Canvas_ga6ccfb047d185e898b81d7a6b01138a32}{evas\+\_\+key\+\_\+modifier\+\_\+on}} 

\mbox{\hyperlink{group__Evas__Canvas_gab3d15ba07954691c14f1bb5e944fffd9}{evas\+\_\+key\+\_\+modifier\+\_\+off}} 

\mbox{\hyperlink{group__Evas__Canvas_ga3b2aed5dbb1f6c9bfa533a69e996d684}{evas\+\_\+seat\+\_\+key\+\_\+modifier\+\_\+on}} 

\mbox{\hyperlink{group__Evas__Canvas_ga56b902746184ea5b5b82532db3228806}{evas\+\_\+seat\+\_\+key\+\_\+modifier\+\_\+off}} 

\mbox{\hyperlink{group__Evas__Keys_ga6cc24a5ea4b39b84c7a3e617de3db261}{evas\+\_\+key\+\_\+modifier\+\_\+is\+\_\+set}} 
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+19 
\end{DoxySince}
\mbox{\Hypertarget{group__Evas__Keys_ga08080dfe3ad50c85f4965b9063bfd7de}\label{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{\texorpdfstring{evas\+\_\+key\+\_\+lock\+\_\+is\+\_\+set()}{evas\_key\_lock\_is\_set()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} evas\+\_\+key\+\_\+lock\+\_\+is\+\_\+set (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Evas__Keys_ga791323b644ee831ead4c5d25552a0fd8}{Evas\+\_\+\+Lock}} $\ast$}]{l,  }\item[{const char $\ast$}]{keyname }\end{DoxyParamCaption})}



Checks the state of a given lock key of the default seat, 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 \mbox{\hyperlink{group__Evas__Canvas_gab896e54f904562f291dc6f3acb5c45bc}{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}
\mbox{\hyperlink{group__Evas__Canvas_gab896e54f904562f291dc6f3acb5c45bc}{evas\+\_\+key\+\_\+lock\+\_\+get}} 

\mbox{\hyperlink{group__Evas__Canvas_gaf7f5cf543d1fe34e20388afcd87d4bb5}{evas\+\_\+key\+\_\+lock\+\_\+add}} 

\mbox{\hyperlink{group__Evas__Canvas_ga1e109d368419210118d93c4e183d3362}{evas\+\_\+key\+\_\+lock\+\_\+del}} 

\mbox{\hyperlink{group__Evas__Canvas_gaa3be09f53833c49b354963d7c0130b31}{evas\+\_\+key\+\_\+lock\+\_\+on}} 

\mbox{\hyperlink{group__Evas__Canvas_ga60aa3223bbe2853a43cb842758707373}{evas\+\_\+key\+\_\+lock\+\_\+off}} 

\mbox{\hyperlink{group__Evas__Canvas_gace04756a97a9a464e0a7b1edc67514bc}{evas\+\_\+seat\+\_\+key\+\_\+lock\+\_\+on}} 

\mbox{\hyperlink{group__Evas__Canvas_ga02342f19b973936cc3f924211662fd47}{evas\+\_\+seat\+\_\+key\+\_\+lock\+\_\+off}} 

\mbox{\hyperlink{group__Evas__Keys_gad489a5bd490e6b8883cfe837fa3484c0}{evas\+\_\+seat\+\_\+key\+\_\+lock\+\_\+is\+\_\+set}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Evas__Keys_gad489a5bd490e6b8883cfe837fa3484c0}\label{group__Evas__Keys_gad489a5bd490e6b8883cfe837fa3484c0}} 
\index{Key Input Functions@{Key Input Functions}!evas\+\_\+seat\+\_\+key\+\_\+lock\+\_\+is\+\_\+set@{evas\+\_\+seat\+\_\+key\+\_\+lock\+\_\+is\+\_\+set}}
\index{evas\+\_\+seat\+\_\+key\+\_\+lock\+\_\+is\+\_\+set@{evas\+\_\+seat\+\_\+key\+\_\+lock\+\_\+is\+\_\+set}!Key Input Functions@{Key Input Functions}}
\subsubsection{\texorpdfstring{evas\+\_\+seat\+\_\+key\+\_\+lock\+\_\+is\+\_\+set()}{evas\_seat\_key\_lock\_is\_set()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} evas\+\_\+seat\+\_\+key\+\_\+lock\+\_\+is\+\_\+set (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Evas__Keys_ga791323b644ee831ead4c5d25552a0fd8}{Evas\+\_\+\+Lock}} $\ast$}]{l,  }\item[{const char $\ast$}]{keyname,  }\item[{const \mbox{\hyperlink{Evas__Common_8h_a639a59adaf61d20194c9b6c2bdcddc7b}{Evas\+\_\+\+Device}} $\ast$}]{seat }\end{DoxyParamCaption})}



Checks the state of a given lock key of a given seat, 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 \mbox{\hyperlink{group__Evas__Canvas_gab896e54f904562f291dc6f3acb5c45bc}{evas\+\_\+key\+\_\+lock\+\_\+get()}}. \\
\hline
{\em keyname} & The name of the lock key to check status for. \\
\hline
{\em seat} & The seat to check if the lock is set. Use {\ttfamily N\+U\+LL} for the default seat.\\
\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}
\mbox{\hyperlink{group__Evas__Canvas_gab896e54f904562f291dc6f3acb5c45bc}{evas\+\_\+key\+\_\+lock\+\_\+get}} 

\mbox{\hyperlink{group__Evas__Canvas_gaf7f5cf543d1fe34e20388afcd87d4bb5}{evas\+\_\+key\+\_\+lock\+\_\+add}} 

\mbox{\hyperlink{group__Evas__Canvas_ga1e109d368419210118d93c4e183d3362}{evas\+\_\+key\+\_\+lock\+\_\+del}} 

\mbox{\hyperlink{group__Evas__Canvas_gaa3be09f53833c49b354963d7c0130b31}{evas\+\_\+key\+\_\+lock\+\_\+on}} 

\mbox{\hyperlink{group__Evas__Canvas_ga60aa3223bbe2853a43cb842758707373}{evas\+\_\+key\+\_\+lock\+\_\+off}} 

\mbox{\hyperlink{group__Evas__Keys_ga08080dfe3ad50c85f4965b9063bfd7de}{evas\+\_\+key\+\_\+lock\+\_\+is\+\_\+set}} 
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+19 
\end{DoxySince}
