\hypertarget{group__Evas__Canvas__Events}{}\doxysection{Canvas Events}
\label{group__Evas__Canvas__Events}\index{Canvas Events@{Canvas Events}}


Functions relating to canvas events that report on changes of its internal states (an object got focused, the rendering is updated, etc).  


\doxysubsection*{Modules}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{group__Evas__Event__Freezing__Group}{Input Events Freezing Functions}}
\begin{DoxyCompactList}\small\item\em Functions that deal with the freezing of input event processing of an Evas canvas. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Evas__Event__Feeding__Group}{Input Events Feeding Functions}}
\begin{DoxyCompactList}\small\item\em Functions to tell Evas that input events happened and should be processed. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{struct__Evas__Event__Mouse__Down}{\+\_\+\+Evas\+\_\+\+Event\+\_\+\+Mouse\+\_\+\+Down}}
\begin{DoxyCompactList}\small\item\em Mouse button press event. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{struct__Evas__Event__Mouse__Up}{\+\_\+\+Evas\+\_\+\+Event\+\_\+\+Mouse\+\_\+\+Up}}
\begin{DoxyCompactList}\small\item\em Mouse button release event. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{struct__Evas__Event__Mouse__In}{\+\_\+\+Evas\+\_\+\+Event\+\_\+\+Mouse\+\_\+\+In}}
\begin{DoxyCompactList}\small\item\em Mouse enter event. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{struct__Evas__Event__Mouse__Out}{\+\_\+\+Evas\+\_\+\+Event\+\_\+\+Mouse\+\_\+\+Out}}
\begin{DoxyCompactList}\small\item\em Mouse leave event. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{struct__Evas__Event__Mouse__Move}{\+\_\+\+Evas\+\_\+\+Event\+\_\+\+Mouse\+\_\+\+Move}}
\begin{DoxyCompactList}\small\item\em Mouse move event. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{struct__Evas__Event__Mouse__Wheel}{\+\_\+\+Evas\+\_\+\+Event\+\_\+\+Mouse\+\_\+\+Wheel}}
\begin{DoxyCompactList}\small\item\em Wheel event. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{struct__Evas__Event__Multi__Down}{\+\_\+\+Evas\+\_\+\+Event\+\_\+\+Multi\+\_\+\+Down}}
\begin{DoxyCompactList}\small\item\em Multi button press event. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{struct__Evas__Event__Multi__Up}{\+\_\+\+Evas\+\_\+\+Event\+\_\+\+Multi\+\_\+\+Up}}
\begin{DoxyCompactList}\small\item\em Multi button release event. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{struct__Evas__Event__Multi__Move}{\+\_\+\+Evas\+\_\+\+Event\+\_\+\+Multi\+\_\+\+Move}}
\begin{DoxyCompactList}\small\item\em Multi button down event. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{struct__Evas__Event__Key__Down}{\+\_\+\+Evas\+\_\+\+Event\+\_\+\+Key\+\_\+\+Down}}
\begin{DoxyCompactList}\small\item\em Key press event. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{struct__Evas__Event__Key__Up}{\+\_\+\+Evas\+\_\+\+Event\+\_\+\+Key\+\_\+\+Up}}
\begin{DoxyCompactList}\small\item\em Key release event. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{struct__Evas__Event__Hold}{\+\_\+\+Evas\+\_\+\+Event\+\_\+\+Hold}}
\begin{DoxyCompactList}\small\item\em Hold change event. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{struct__Evas__Axis}{\+\_\+\+Evas\+\_\+\+Axis}}
\item 
struct \mbox{\hyperlink{struct__Evas__Event__Axis__Update}{\+\_\+\+Evas\+\_\+\+Event\+\_\+\+Axis\+\_\+\+Update}}
\end{DoxyCompactItemize}
\doxysubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{group__Evas__Canvas__Events_ga907df7a46177e7bac9928ea39fbcca50}\label{group__Evas__Canvas__Events_ga907df7a46177e7bac9928ea39fbcca50}} 
typedef struct \mbox{\hyperlink{struct__Evas__Event__Mouse__Down}{\+\_\+\+Evas\+\_\+\+Event\+\_\+\+Mouse\+\_\+\+Down}} {\bfseries Evas\+\_\+\+Event\+\_\+\+Mouse\+\_\+\+Down}
\begin{DoxyCompactList}\small\item\em Event structure for \mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968a9fa52651ccf7e47cd3b7785fc4cf393f}{EVAS\+\_\+\+CALLBACK\+\_\+\+MOUSE\+\_\+\+DOWN}} event callbacks. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Evas__Canvas__Events_ga337e8227780d38bdeae5c0ccd00d04b3}\label{group__Evas__Canvas__Events_ga337e8227780d38bdeae5c0ccd00d04b3}} 
typedef struct \mbox{\hyperlink{struct__Evas__Event__Mouse__Up}{\+\_\+\+Evas\+\_\+\+Event\+\_\+\+Mouse\+\_\+\+Up}} {\bfseries Evas\+\_\+\+Event\+\_\+\+Mouse\+\_\+\+Up}
\begin{DoxyCompactList}\small\item\em Event structure for \mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968a8c1b22c99dd0231cd9ba1fecbffffac7}{EVAS\+\_\+\+CALLBACK\+\_\+\+MOUSE\+\_\+\+UP}} event callbacks. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Evas__Canvas__Events_ga9b42da2562eb8390dd513d7337b1e018}\label{group__Evas__Canvas__Events_ga9b42da2562eb8390dd513d7337b1e018}} 
typedef struct \mbox{\hyperlink{struct__Evas__Event__Mouse__In}{\+\_\+\+Evas\+\_\+\+Event\+\_\+\+Mouse\+\_\+\+In}} {\bfseries Evas\+\_\+\+Event\+\_\+\+Mouse\+\_\+\+In}
\begin{DoxyCompactList}\small\item\em Event structure for \mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968a598c57bc146639618157159a319f11af}{EVAS\+\_\+\+CALLBACK\+\_\+\+MOUSE\+\_\+\+IN}} event callbacks. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Evas__Canvas__Events_ga7a168fcb1c4b6bc53ac4e69f5424f317}\label{group__Evas__Canvas__Events_ga7a168fcb1c4b6bc53ac4e69f5424f317}} 
typedef struct \mbox{\hyperlink{struct__Evas__Event__Mouse__Out}{\+\_\+\+Evas\+\_\+\+Event\+\_\+\+Mouse\+\_\+\+Out}} {\bfseries Evas\+\_\+\+Event\+\_\+\+Mouse\+\_\+\+Out}
\begin{DoxyCompactList}\small\item\em Event structure for \mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968a91aaa30a57047d0ee8a734e603751c25}{EVAS\+\_\+\+CALLBACK\+\_\+\+MOUSE\+\_\+\+OUT}} event callbacks. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Evas__Canvas__Events_ga224de88869fe5315ca144ef8a2946827}\label{group__Evas__Canvas__Events_ga224de88869fe5315ca144ef8a2946827}} 
typedef struct \mbox{\hyperlink{struct__Evas__Event__Mouse__Move}{\+\_\+\+Evas\+\_\+\+Event\+\_\+\+Mouse\+\_\+\+Move}} {\bfseries Evas\+\_\+\+Event\+\_\+\+Mouse\+\_\+\+Move}
\begin{DoxyCompactList}\small\item\em Event structure for \mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968a23fb97fb7cbccded54ccf3fc4e1dab8a}{EVAS\+\_\+\+CALLBACK\+\_\+\+MOUSE\+\_\+\+MOVE}} event callbacks. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Evas__Canvas__Events_ga54d0e99e450e158924b06746544bb4dc}\label{group__Evas__Canvas__Events_ga54d0e99e450e158924b06746544bb4dc}} 
typedef struct \mbox{\hyperlink{struct__Evas__Event__Mouse__Wheel}{\+\_\+\+Evas\+\_\+\+Event\+\_\+\+Mouse\+\_\+\+Wheel}} {\bfseries Evas\+\_\+\+Event\+\_\+\+Mouse\+\_\+\+Wheel}
\begin{DoxyCompactList}\small\item\em Event structure for \mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968a39d739f473db520ec4dfe0776ed43be4}{EVAS\+\_\+\+CALLBACK\+\_\+\+MOUSE\+\_\+\+WHEEL}} event callbacks. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Evas__Canvas__Events_ga0436550ffcc1e2eab730ef3c493b8c40}\label{group__Evas__Canvas__Events_ga0436550ffcc1e2eab730ef3c493b8c40}} 
typedef struct \mbox{\hyperlink{struct__Evas__Event__Multi__Down}{\+\_\+\+Evas\+\_\+\+Event\+\_\+\+Multi\+\_\+\+Down}} {\bfseries Evas\+\_\+\+Event\+\_\+\+Multi\+\_\+\+Down}
\begin{DoxyCompactList}\small\item\em Event structure for \mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968ab5bb0de31eaeed655255e71ffe518b80}{EVAS\+\_\+\+CALLBACK\+\_\+\+MULTI\+\_\+\+DOWN}} event callbacks. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Evas__Canvas__Events_ga0f4d63b8673ee370e41e2c0bdc374212}\label{group__Evas__Canvas__Events_ga0f4d63b8673ee370e41e2c0bdc374212}} 
typedef struct \mbox{\hyperlink{struct__Evas__Event__Multi__Up}{\+\_\+\+Evas\+\_\+\+Event\+\_\+\+Multi\+\_\+\+Up}} {\bfseries Evas\+\_\+\+Event\+\_\+\+Multi\+\_\+\+Up}
\begin{DoxyCompactList}\small\item\em Event structure for \mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968a4328f52cfb700b5c705edf7173afdd94}{EVAS\+\_\+\+CALLBACK\+\_\+\+MULTI\+\_\+\+UP}} event callbacks. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Evas__Canvas__Events_ga8658f1e1a6801e219547b05e8728ebd2}\label{group__Evas__Canvas__Events_ga8658f1e1a6801e219547b05e8728ebd2}} 
typedef struct \mbox{\hyperlink{struct__Evas__Event__Multi__Move}{\+\_\+\+Evas\+\_\+\+Event\+\_\+\+Multi\+\_\+\+Move}} {\bfseries Evas\+\_\+\+Event\+\_\+\+Multi\+\_\+\+Move}
\begin{DoxyCompactList}\small\item\em Event structure for \mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968a6d0ade7e69dc62f728fa2e29168e923f}{EVAS\+\_\+\+CALLBACK\+\_\+\+MULTI\+\_\+\+MOVE}} event callbacks. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Evas__Canvas__Events_ga9a1bfd297b751119977f3c14c0004612}\label{group__Evas__Canvas__Events_ga9a1bfd297b751119977f3c14c0004612}} 
typedef struct \mbox{\hyperlink{struct__Evas__Event__Key__Down}{\+\_\+\+Evas\+\_\+\+Event\+\_\+\+Key\+\_\+\+Down}} {\bfseries Evas\+\_\+\+Event\+\_\+\+Key\+\_\+\+Down}
\begin{DoxyCompactList}\small\item\em Event structure for \mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968a336b86bad4f145f84c155e4922335584}{EVAS\+\_\+\+CALLBACK\+\_\+\+KEY\+\_\+\+DOWN}} event callbacks. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Evas__Canvas__Events_ga92e77497752a3b100b3bfc4ee92daf09}\label{group__Evas__Canvas__Events_ga92e77497752a3b100b3bfc4ee92daf09}} 
typedef struct \mbox{\hyperlink{struct__Evas__Event__Key__Up}{\+\_\+\+Evas\+\_\+\+Event\+\_\+\+Key\+\_\+\+Up}} {\bfseries Evas\+\_\+\+Event\+\_\+\+Key\+\_\+\+Up}
\begin{DoxyCompactList}\small\item\em Event structure for \mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968ac436b50ad665089f8a24b0fb827cec5f}{EVAS\+\_\+\+CALLBACK\+\_\+\+KEY\+\_\+\+UP}} event callbacks. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Evas__Canvas__Events_ga6fb6e5748f93fc24d62276e5421f9767}\label{group__Evas__Canvas__Events_ga6fb6e5748f93fc24d62276e5421f9767}} 
typedef struct \mbox{\hyperlink{struct__Evas__Event__Hold}{\+\_\+\+Evas\+\_\+\+Event\+\_\+\+Hold}} {\bfseries Evas\+\_\+\+Event\+\_\+\+Hold}
\begin{DoxyCompactList}\small\item\em Event structure for \mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968a585e05307b99c361e54df68a4f341a85}{EVAS\+\_\+\+CALLBACK\+\_\+\+HOLD}} event callbacks. \end{DoxyCompactList}\item 
typedef struct \mbox{\hyperlink{struct__Evas__Event__Axis__Update}{\+\_\+\+Evas\+\_\+\+Event\+\_\+\+Axis\+\_\+\+Update}} \mbox{\hyperlink{group__Evas__Canvas__Events_ga0e0de1817be10871c54e2438a2218676}{Evas\+\_\+\+Event\+\_\+\+Axis\+\_\+\+Update}}
\begin{DoxyCompactList}\small\item\em Event structure for \mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968ac23663dca40b52b534c2688ed266be1e}{EVAS\+\_\+\+CALLBACK\+\_\+\+AXIS\+\_\+\+UPDATE}} event callbacks. \end{DoxyCompactList}\item 
typedef enum \mbox{\hyperlink{group__Evas__Canvas__Events_ga5b9cb5b15cb929522d6cad85a06a0b1b}{\+\_\+\+Evas\+\_\+\+Axis\+\_\+\+Label}} \mbox{\hyperlink{group__Evas__Canvas__Events_gab276ed2e9bdd6d1a6ec274bea9fe1da7}{Evas\+\_\+\+Axis\+\_\+\+Label}}
\begin{DoxyCompactList}\small\item\em Types of recognized device axes. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Evas__Canvas__Events_gaeb8cae9fc5cdbc605c0b70655457e604}\label{group__Evas__Canvas__Events_gaeb8cae9fc5cdbc605c0b70655457e604}} 
typedef struct \mbox{\hyperlink{struct__Evas__Axis}{\+\_\+\+Evas\+\_\+\+Axis}} {\bfseries Evas\+\_\+\+Axis}
\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \mbox{\hyperlink{group__Evas__Canvas__Events_ga5b9cb5b15cb929522d6cad85a06a0b1b}{\+\_\+\+Evas\+\_\+\+Axis\+\_\+\+Label}} \{ \newline
\mbox{\hyperlink{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1ba3b7f9b8c89e808eb0731e66fe1cce4c7}{EVAS\+\_\+\+AXIS\+\_\+\+LABEL\+\_\+\+UNKNOWN}}
, \newline
\mbox{\hyperlink{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1ba6a95bd2f5a87d879476211c8e6c613dd}{EVAS\+\_\+\+AXIS\+\_\+\+LABEL\+\_\+X}}
, \newline
\mbox{\hyperlink{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1ba276f6be8eb55cbcea0e9f581e50acb82}{EVAS\+\_\+\+AXIS\+\_\+\+LABEL\+\_\+Y}}
, \newline
\mbox{\hyperlink{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1baa134872579b861d3158d3956c05feb9d}{EVAS\+\_\+\+AXIS\+\_\+\+LABEL\+\_\+\+PRESSURE}}
, \newline
\mbox{\hyperlink{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1ba633466183e782eca959d9276b724856f}{EVAS\+\_\+\+AXIS\+\_\+\+LABEL\+\_\+\+DISTANCE}}
, \newline
\mbox{\hyperlink{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1ba4299cb35a4b7cd13b240828e5cc00397}{EVAS\+\_\+\+AXIS\+\_\+\+LABEL\+\_\+\+AZIMUTH}}
, \newline
\mbox{\hyperlink{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1ba4f04963da2a8063fa99bb17fa7359f7c}{EVAS\+\_\+\+AXIS\+\_\+\+LABEL\+\_\+\+TILT}}
, \newline
\mbox{\hyperlink{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1bae22893836f262eaeba7a41e1e7b3c836}{EVAS\+\_\+\+AXIS\+\_\+\+LABEL\+\_\+\+TWIST}}
, \newline
\mbox{\hyperlink{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1ba976b4c82dbb5fcaed346817d35947a83}{EVAS\+\_\+\+AXIS\+\_\+\+LABEL\+\_\+\+TOUCH\+\_\+\+WIDTH\+\_\+\+MAJOR}}
, \newline
\mbox{\hyperlink{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1bae6a93050f86e5287dc96f1c9ed13dad8}{EVAS\+\_\+\+AXIS\+\_\+\+LABEL\+\_\+\+TOUCH\+\_\+\+WIDTH\+\_\+\+MINOR}}
, \newline
\mbox{\hyperlink{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1baf72612992e69675ba39e11d7ac3fcde4}{EVAS\+\_\+\+AXIS\+\_\+\+LABEL\+\_\+\+TOOL\+\_\+\+WIDTH\+\_\+\+MAJOR}}
, \newline
\mbox{\hyperlink{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1ba4e61bed0f176d6d879e5171795a5ed8e}{EVAS\+\_\+\+AXIS\+\_\+\+LABEL\+\_\+\+TOOL\+\_\+\+WIDTH\+\_\+\+MINOR}}
, \newline
\mbox{\hyperlink{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1ba090e68d970dc0fe96943196703488364}{EVAS\+\_\+\+AXIS\+\_\+\+LABEL\+\_\+\+WINDOW\+\_\+X}}
, \newline
\mbox{\hyperlink{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1ba0987bf439bcbedb7044d9e83c09966ba}{EVAS\+\_\+\+AXIS\+\_\+\+LABEL\+\_\+\+WINDOW\+\_\+Y}}
, \newline
\mbox{\hyperlink{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1babb11e4d40544608be3f73da326e26f3c}{EVAS\+\_\+\+AXIS\+\_\+\+LABEL\+\_\+\+NORMAL\+\_\+X}}
, \newline
\mbox{\hyperlink{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1bac9368a0d68f090fe0609cc2f369d65ab}{EVAS\+\_\+\+AXIS\+\_\+\+LABEL\+\_\+\+NORMAL\+\_\+Y}}
 \}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
EVAS\+\_\+\+API void \mbox{\hyperlink{group__Evas__Canvas__Events_ga1102db15e93fcb4a4fe9e6ed58779b4f}{evas\+\_\+event\+\_\+callback\+\_\+add}} (\mbox{\hyperlink{group__Evas__Canvas_ga5ff87cc4ce6bc43e3b640a6d37f73043}{Evas}} $\ast$e, \mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968}{Evas\+\_\+\+Callback\+\_\+\+Type}} type, \mbox{\hyperlink{Evas__Common_8h_ac401c1106679ef51150672e2f80288f0}{Evas\+\_\+\+Event\+\_\+\+Cb}} func, const void $\ast$data)
\begin{DoxyCompactList}\small\item\em Add (register) a callback function to a given canvas event. \end{DoxyCompactList}\item 
EVAS\+\_\+\+API void \mbox{\hyperlink{group__Evas__Canvas__Events_ga16b0a852f07c3c5a540e404b9cbda6a4}{evas\+\_\+event\+\_\+callback\+\_\+priority\+\_\+add}} (\mbox{\hyperlink{group__Evas__Canvas_ga5ff87cc4ce6bc43e3b640a6d37f73043}{Evas}} $\ast$e, \mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968}{Evas\+\_\+\+Callback\+\_\+\+Type}} type, \mbox{\hyperlink{Evas__Common_8h_a569c486e7bbb47ad28baaec79eb1ff3b}{Evas\+\_\+\+Callback\+\_\+\+Priority}} priority, \mbox{\hyperlink{Evas__Common_8h_ac401c1106679ef51150672e2f80288f0}{Evas\+\_\+\+Event\+\_\+\+Cb}} func, const void $\ast$data)
\begin{DoxyCompactList}\small\item\em Add (register) a callback function to a given canvas event with a non-\/default priority set. \end{DoxyCompactList}\item 
EVAS\+\_\+\+API void $\ast$ \mbox{\hyperlink{group__Evas__Canvas__Events_ga2fe069da8a70750a8fb1670026f1d2a5}{evas\+\_\+event\+\_\+callback\+\_\+del}} (\mbox{\hyperlink{group__Evas__Canvas_ga5ff87cc4ce6bc43e3b640a6d37f73043}{Evas}} $\ast$e, \mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968}{Evas\+\_\+\+Callback\+\_\+\+Type}} type, \mbox{\hyperlink{Evas__Common_8h_ac401c1106679ef51150672e2f80288f0}{Evas\+\_\+\+Event\+\_\+\+Cb}} func)
\begin{DoxyCompactList}\small\item\em Delete a callback function from the canvas. \end{DoxyCompactList}\item 
EVAS\+\_\+\+API void $\ast$ \mbox{\hyperlink{group__Evas__Canvas__Events_gaff7de09d31975387c5218de13fbed50f}{evas\+\_\+event\+\_\+callback\+\_\+del\+\_\+full}} (\mbox{\hyperlink{group__Evas__Canvas_ga5ff87cc4ce6bc43e3b640a6d37f73043}{Evas}} $\ast$e, \mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968}{Evas\+\_\+\+Callback\+\_\+\+Type}} type, \mbox{\hyperlink{Evas__Common_8h_ac401c1106679ef51150672e2f80288f0}{Evas\+\_\+\+Event\+\_\+\+Cb}} func, const void $\ast$data)
\begin{DoxyCompactList}\small\item\em Delete (unregister) a callback function registered to a given canvas event. \end{DoxyCompactList}\item 
EVAS\+\_\+\+API void \mbox{\hyperlink{group__Evas__Canvas__Events_ga5a9c8cebea1fb45ad7e13a319bee92a8}{evas\+\_\+post\+\_\+event\+\_\+callback\+\_\+push}} (\mbox{\hyperlink{group__Evas__Canvas_ga5ff87cc4ce6bc43e3b640a6d37f73043}{Evas}} $\ast$e, \mbox{\hyperlink{Evas__Common_8h_af38bf0506914794cd3b0836185dabe68}{Evas\+\_\+\+Object\+\_\+\+Event\+\_\+\+Post\+\_\+\+Cb}} func, const void $\ast$data)
\begin{DoxyCompactList}\small\item\em Push a callback on the post-\/event callback stack. \end{DoxyCompactList}\item 
EVAS\+\_\+\+API void \mbox{\hyperlink{group__Evas__Canvas__Events_ga17a99598f75217d5e6999a92abf234c7}{evas\+\_\+post\+\_\+event\+\_\+callback\+\_\+remove}} (\mbox{\hyperlink{group__Evas__Canvas_ga5ff87cc4ce6bc43e3b640a6d37f73043}{Evas}} $\ast$e, \mbox{\hyperlink{Evas__Common_8h_af38bf0506914794cd3b0836185dabe68}{Evas\+\_\+\+Object\+\_\+\+Event\+\_\+\+Post\+\_\+\+Cb}} func)
\begin{DoxyCompactList}\small\item\em Remove a callback from the post-\/event callback stack. \end{DoxyCompactList}\item 
EVAS\+\_\+\+API void \mbox{\hyperlink{group__Evas__Canvas__Events_gac62a904557a01d8cda29ff099e48745d}{evas\+\_\+post\+\_\+event\+\_\+callback\+\_\+remove\+\_\+full}} (\mbox{\hyperlink{group__Evas__Canvas_ga5ff87cc4ce6bc43e3b640a6d37f73043}{Evas}} $\ast$e, \mbox{\hyperlink{Evas__Common_8h_af38bf0506914794cd3b0836185dabe68}{Evas\+\_\+\+Object\+\_\+\+Event\+\_\+\+Post\+\_\+\+Cb}} func, const void $\ast$data)
\begin{DoxyCompactList}\small\item\em Remove a callback from the post-\/event callback stack. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Functions relating to canvas events that report on changes of its internal states (an object got focused, the rendering is updated, etc). 

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

\doxysubsection{Typedef Documentation}
\mbox{\Hypertarget{group__Evas__Canvas__Events_ga0e0de1817be10871c54e2438a2218676}\label{group__Evas__Canvas__Events_ga0e0de1817be10871c54e2438a2218676}} 
\index{Canvas Events@{Canvas Events}!Evas\_Event\_Axis\_Update@{Evas\_Event\_Axis\_Update}}
\index{Evas\_Event\_Axis\_Update@{Evas\_Event\_Axis\_Update}!Canvas Events@{Canvas Events}}
\doxysubsubsection{\texorpdfstring{Evas\_Event\_Axis\_Update}{Evas\_Event\_Axis\_Update}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{struct__Evas__Event__Axis__Update}{\+\_\+\+Evas\+\_\+\+Event\+\_\+\+Axis\+\_\+\+Update}} \mbox{\hyperlink{group__Evas__Canvas__Events_ga0e0de1817be10871c54e2438a2218676}{Evas\+\_\+\+Event\+\_\+\+Axis\+\_\+\+Update}}}



Event structure for \mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968ac23663dca40b52b534c2688ed266be1e}{EVAS\+\_\+\+CALLBACK\+\_\+\+AXIS\+\_\+\+UPDATE}} event callbacks. 

\begin{DoxySince}{Since}
1.\+13 
\end{DoxySince}
\mbox{\Hypertarget{group__Evas__Canvas__Events_gab276ed2e9bdd6d1a6ec274bea9fe1da7}\label{group__Evas__Canvas__Events_gab276ed2e9bdd6d1a6ec274bea9fe1da7}} 
\index{Canvas Events@{Canvas Events}!Evas\_Axis\_Label@{Evas\_Axis\_Label}}
\index{Evas\_Axis\_Label@{Evas\_Axis\_Label}!Canvas Events@{Canvas Events}}
\doxysubsubsection{\texorpdfstring{Evas\_Axis\_Label}{Evas\_Axis\_Label}}
{\footnotesize\ttfamily typedef enum \mbox{\hyperlink{group__Evas__Canvas__Events_ga5b9cb5b15cb929522d6cad85a06a0b1b}{\+\_\+\+Evas\+\_\+\+Axis\+\_\+\+Label}} \mbox{\hyperlink{group__Evas__Canvas__Events_gab276ed2e9bdd6d1a6ec274bea9fe1da7}{Evas\+\_\+\+Axis\+\_\+\+Label}}}



Types of recognized device axes. 

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


\doxysubsection{Enumeration Type Documentation}
\mbox{\Hypertarget{group__Evas__Canvas__Events_ga5b9cb5b15cb929522d6cad85a06a0b1b}\label{group__Evas__Canvas__Events_ga5b9cb5b15cb929522d6cad85a06a0b1b}} 
\index{Canvas Events@{Canvas Events}!\_Evas\_Axis\_Label@{\_Evas\_Axis\_Label}}
\index{\_Evas\_Axis\_Label@{\_Evas\_Axis\_Label}!Canvas Events@{Canvas Events}}
\doxysubsubsection{\texorpdfstring{\_Evas\_Axis\_Label}{\_Evas\_Axis\_Label}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{group__Evas__Canvas__Events_ga5b9cb5b15cb929522d6cad85a06a0b1b}{\+\_\+\+Evas\+\_\+\+Axis\+\_\+\+Label}}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{EVAS\_AXIS\_LABEL\_UNKNOWN@{EVAS\_AXIS\_LABEL\_UNKNOWN}!Canvas Events@{Canvas Events}}\index{Canvas Events@{Canvas Events}!EVAS\_AXIS\_LABEL\_UNKNOWN@{EVAS\_AXIS\_LABEL\_UNKNOWN}}}\mbox{\Hypertarget{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1ba3b7f9b8c89e808eb0731e66fe1cce4c7}\label{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1ba3b7f9b8c89e808eb0731e66fe1cce4c7}} 
EVAS\+\_\+\+AXIS\+\_\+\+LABEL\+\_\+\+UNKNOWN&Axis containing unknown (or not yet representable) data. Range\+: Unbounded. Unit\+: Undefined. \begin{DoxySince}{Since}
1.\+13 
\end{DoxySince}
\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EVAS\_AXIS\_LABEL\_X@{EVAS\_AXIS\_LABEL\_X}!Canvas Events@{Canvas Events}}\index{Canvas Events@{Canvas Events}!EVAS\_AXIS\_LABEL\_X@{EVAS\_AXIS\_LABEL\_X}}}\mbox{\Hypertarget{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1ba6a95bd2f5a87d879476211c8e6c613dd}\label{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1ba6a95bd2f5a87d879476211c8e6c613dd}} 
EVAS\+\_\+\+AXIS\+\_\+\+LABEL\+\_\+X&Position along physical X axis; not window relative. Range\+: Unbounded. Unit\+: Undefined. \begin{DoxySince}{Since}
1.\+13 
\end{DoxySince}
\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EVAS\_AXIS\_LABEL\_Y@{EVAS\_AXIS\_LABEL\_Y}!Canvas Events@{Canvas Events}}\index{Canvas Events@{Canvas Events}!EVAS\_AXIS\_LABEL\_Y@{EVAS\_AXIS\_LABEL\_Y}}}\mbox{\Hypertarget{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1ba276f6be8eb55cbcea0e9f581e50acb82}\label{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1ba276f6be8eb55cbcea0e9f581e50acb82}} 
EVAS\+\_\+\+AXIS\+\_\+\+LABEL\+\_\+Y&Position along physical Y axis; not window relative. Range\+: Unbounded. Unit\+: Undefined. \begin{DoxySince}{Since}
1.\+13 
\end{DoxySince}
\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EVAS\_AXIS\_LABEL\_PRESSURE@{EVAS\_AXIS\_LABEL\_PRESSURE}!Canvas Events@{Canvas Events}}\index{Canvas Events@{Canvas Events}!EVAS\_AXIS\_LABEL\_PRESSURE@{EVAS\_AXIS\_LABEL\_PRESSURE}}}\mbox{\Hypertarget{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1baa134872579b861d3158d3956c05feb9d}\label{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1baa134872579b861d3158d3956c05feb9d}} 
EVAS\+\_\+\+AXIS\+\_\+\+LABEL\+\_\+\+PRESSURE&Force applied to tool tip. Range\+: \mbox{[}0.\+0, 1.\+0\mbox{]}. Unit\+: Unitless. \begin{DoxySince}{Since}
1.\+13 
\end{DoxySince}
\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EVAS\_AXIS\_LABEL\_DISTANCE@{EVAS\_AXIS\_LABEL\_DISTANCE}!Canvas Events@{Canvas Events}}\index{Canvas Events@{Canvas Events}!EVAS\_AXIS\_LABEL\_DISTANCE@{EVAS\_AXIS\_LABEL\_DISTANCE}}}\mbox{\Hypertarget{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1ba633466183e782eca959d9276b724856f}\label{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1ba633466183e782eca959d9276b724856f}} 
EVAS\+\_\+\+AXIS\+\_\+\+LABEL\+\_\+\+DISTANCE&Relative distance along physical Z axis. Range\+: \mbox{[}0.\+0, 1.\+0\mbox{]}. Unit\+: Unitless \begin{DoxySince}{Since}
1.\+13 
\end{DoxySince}
\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EVAS\_AXIS\_LABEL\_AZIMUTH@{EVAS\_AXIS\_LABEL\_AZIMUTH}!Canvas Events@{Canvas Events}}\index{Canvas Events@{Canvas Events}!EVAS\_AXIS\_LABEL\_AZIMUTH@{EVAS\_AXIS\_LABEL\_AZIMUTH}}}\mbox{\Hypertarget{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1ba4299cb35a4b7cd13b240828e5cc00397}\label{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1ba4299cb35a4b7cd13b240828e5cc00397}} 
EVAS\+\_\+\+AXIS\+\_\+\+LABEL\+\_\+\+AZIMUTH&Angle of tool about the Z axis from positive X axis. Range\+: \mbox{[}-\/PI, PI\mbox{]}. Unit\+: Radians. \begin{DoxySince}{Since}
1.\+13 
\end{DoxySince}
\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EVAS\_AXIS\_LABEL\_TILT@{EVAS\_AXIS\_LABEL\_TILT}!Canvas Events@{Canvas Events}}\index{Canvas Events@{Canvas Events}!EVAS\_AXIS\_LABEL\_TILT@{EVAS\_AXIS\_LABEL\_TILT}}}\mbox{\Hypertarget{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1ba4f04963da2a8063fa99bb17fa7359f7c}\label{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1ba4f04963da2a8063fa99bb17fa7359f7c}} 
EVAS\+\_\+\+AXIS\+\_\+\+LABEL\+\_\+\+TILT&Angle of tool about plane of sensor from positive Z axis. Range\+: \mbox{[}0.\+0, PI\mbox{]}. Unit\+: Radians. \begin{DoxySince}{Since}
1.\+13 
\end{DoxySince}
\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EVAS\_AXIS\_LABEL\_TWIST@{EVAS\_AXIS\_LABEL\_TWIST}!Canvas Events@{Canvas Events}}\index{Canvas Events@{Canvas Events}!EVAS\_AXIS\_LABEL\_TWIST@{EVAS\_AXIS\_LABEL\_TWIST}}}\mbox{\Hypertarget{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1bae22893836f262eaeba7a41e1e7b3c836}\label{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1bae22893836f262eaeba7a41e1e7b3c836}} 
EVAS\+\_\+\+AXIS\+\_\+\+LABEL\+\_\+\+TWIST&Rotation of tool about its major axis from its \char`\"{}natural\char`\"{} position. Range\+: \mbox{[}-\/PI, PI\mbox{]} Unit\+: Radians. \begin{DoxySince}{Since}
1.\+13 
\end{DoxySince}
\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EVAS\_AXIS\_LABEL\_TOUCH\_WIDTH\_MAJOR@{EVAS\_AXIS\_LABEL\_TOUCH\_WIDTH\_MAJOR}!Canvas Events@{Canvas Events}}\index{Canvas Events@{Canvas Events}!EVAS\_AXIS\_LABEL\_TOUCH\_WIDTH\_MAJOR@{EVAS\_AXIS\_LABEL\_TOUCH\_WIDTH\_MAJOR}}}\mbox{\Hypertarget{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1ba976b4c82dbb5fcaed346817d35947a83}\label{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1ba976b4c82dbb5fcaed346817d35947a83}} 
EVAS\+\_\+\+AXIS\+\_\+\+LABEL\+\_\+\+TOUCH\+\_\+\+WIDTH\+\_\+\+MAJOR&Length of contact ellipse along AZIMUTH. Range\+: Unbounded\+: Unit\+: Same as EVAS\+\_\+\+AXIS\+\_\+\+LABEL\+\_\+\{X,Y\}. \begin{DoxySince}{Since}
1.\+13 
\end{DoxySince}
\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EVAS\_AXIS\_LABEL\_TOUCH\_WIDTH\_MINOR@{EVAS\_AXIS\_LABEL\_TOUCH\_WIDTH\_MINOR}!Canvas Events@{Canvas Events}}\index{Canvas Events@{Canvas Events}!EVAS\_AXIS\_LABEL\_TOUCH\_WIDTH\_MINOR@{EVAS\_AXIS\_LABEL\_TOUCH\_WIDTH\_MINOR}}}\mbox{\Hypertarget{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1bae6a93050f86e5287dc96f1c9ed13dad8}\label{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1bae6a93050f86e5287dc96f1c9ed13dad8}} 
EVAS\+\_\+\+AXIS\+\_\+\+LABEL\+\_\+\+TOUCH\+\_\+\+WIDTH\+\_\+\+MINOR&Length of contact ellipse perpendicular to AZIMUTH. Range\+: Unbounded. Unit\+: Same as EVAS\+\_\+\+AXIS\+\_\+\+LABEL\+\_\+\{X,Y\}. \begin{DoxySince}{Since}
1.\+13 
\end{DoxySince}
\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EVAS\_AXIS\_LABEL\_TOOL\_WIDTH\_MAJOR@{EVAS\_AXIS\_LABEL\_TOOL\_WIDTH\_MAJOR}!Canvas Events@{Canvas Events}}\index{Canvas Events@{Canvas Events}!EVAS\_AXIS\_LABEL\_TOOL\_WIDTH\_MAJOR@{EVAS\_AXIS\_LABEL\_TOOL\_WIDTH\_MAJOR}}}\mbox{\Hypertarget{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1baf72612992e69675ba39e11d7ac3fcde4}\label{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1baf72612992e69675ba39e11d7ac3fcde4}} 
EVAS\+\_\+\+AXIS\+\_\+\+LABEL\+\_\+\+TOOL\+\_\+\+WIDTH\+\_\+\+MAJOR&Length of tool ellipse along AZIMUTH. Range\+: Unbounded. Unit\+: Same as EVAS\+\_\+\+AXIS\+\_\+\+LABEL\+\_\+\{X,Y\}. \begin{DoxySince}{Since}
1.\+13 
\end{DoxySince}
\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EVAS\_AXIS\_LABEL\_TOOL\_WIDTH\_MINOR@{EVAS\_AXIS\_LABEL\_TOOL\_WIDTH\_MINOR}!Canvas Events@{Canvas Events}}\index{Canvas Events@{Canvas Events}!EVAS\_AXIS\_LABEL\_TOOL\_WIDTH\_MINOR@{EVAS\_AXIS\_LABEL\_TOOL\_WIDTH\_MINOR}}}\mbox{\Hypertarget{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1ba4e61bed0f176d6d879e5171795a5ed8e}\label{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1ba4e61bed0f176d6d879e5171795a5ed8e}} 
EVAS\+\_\+\+AXIS\+\_\+\+LABEL\+\_\+\+TOOL\+\_\+\+WIDTH\+\_\+\+MINOR&Length of tool ellipse perpendicular to AZIMUTH. Range\+: Unbounded. Unit\+: Same as EVAS\+\_\+\+AXIS\+\_\+\+LABEL\+\_\+\{X,Y\}. \begin{DoxySince}{Since}
1.\+13 
\end{DoxySince}
\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EVAS\_AXIS\_LABEL\_WINDOW\_X@{EVAS\_AXIS\_LABEL\_WINDOW\_X}!Canvas Events@{Canvas Events}}\index{Canvas Events@{Canvas Events}!EVAS\_AXIS\_LABEL\_WINDOW\_X@{EVAS\_AXIS\_LABEL\_WINDOW\_X}}}\mbox{\Hypertarget{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1ba090e68d970dc0fe96943196703488364}\label{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1ba090e68d970dc0fe96943196703488364}} 
EVAS\+\_\+\+AXIS\+\_\+\+LABEL\+\_\+\+WINDOW\+\_\+X&X coordinate mapped to the window. \begin{DoxySince}{Since}
1.\+19 
\end{DoxySince}
\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EVAS\_AXIS\_LABEL\_WINDOW\_Y@{EVAS\_AXIS\_LABEL\_WINDOW\_Y}!Canvas Events@{Canvas Events}}\index{Canvas Events@{Canvas Events}!EVAS\_AXIS\_LABEL\_WINDOW\_Y@{EVAS\_AXIS\_LABEL\_WINDOW\_Y}}}\mbox{\Hypertarget{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1ba0987bf439bcbedb7044d9e83c09966ba}\label{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1ba0987bf439bcbedb7044d9e83c09966ba}} 
EVAS\+\_\+\+AXIS\+\_\+\+LABEL\+\_\+\+WINDOW\+\_\+Y&Y coordinate mapped to the window. \begin{DoxySince}{Since}
1.\+19 
\end{DoxySince}
\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EVAS\_AXIS\_LABEL\_NORMAL\_X@{EVAS\_AXIS\_LABEL\_NORMAL\_X}!Canvas Events@{Canvas Events}}\index{Canvas Events@{Canvas Events}!EVAS\_AXIS\_LABEL\_NORMAL\_X@{EVAS\_AXIS\_LABEL\_NORMAL\_X}}}\mbox{\Hypertarget{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1babb11e4d40544608be3f73da326e26f3c}\label{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1babb11e4d40544608be3f73da326e26f3c}} 
EVAS\+\_\+\+AXIS\+\_\+\+LABEL\+\_\+\+NORMAL\+\_\+X&X normalized to the \mbox{[}0, 1\mbox{]} range. \begin{DoxySince}{Since}
1.\+19 
\end{DoxySince}
\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EVAS\_AXIS\_LABEL\_NORMAL\_Y@{EVAS\_AXIS\_LABEL\_NORMAL\_Y}!Canvas Events@{Canvas Events}}\index{Canvas Events@{Canvas Events}!EVAS\_AXIS\_LABEL\_NORMAL\_Y@{EVAS\_AXIS\_LABEL\_NORMAL\_Y}}}\mbox{\Hypertarget{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1bac9368a0d68f090fe0609cc2f369d65ab}\label{group__Evas__Canvas__Events_gga5b9cb5b15cb929522d6cad85a06a0b1bac9368a0d68f090fe0609cc2f369d65ab}} 
EVAS\+\_\+\+AXIS\+\_\+\+LABEL\+\_\+\+NORMAL\+\_\+Y&Y normalized to the \mbox{[}0, 1\mbox{]} range. \begin{DoxySince}{Since}
1.\+19 
\end{DoxySince}
\\
\hline

\end{DoxyEnumFields}


\doxysubsection{Function Documentation}
\mbox{\Hypertarget{group__Evas__Canvas__Events_ga1102db15e93fcb4a4fe9e6ed58779b4f}\label{group__Evas__Canvas__Events_ga1102db15e93fcb4a4fe9e6ed58779b4f}} 
\index{Canvas Events@{Canvas Events}!evas\_event\_callback\_add@{evas\_event\_callback\_add}}
\index{evas\_event\_callback\_add@{evas\_event\_callback\_add}!Canvas Events@{Canvas Events}}
\doxysubsubsection{\texorpdfstring{evas\_event\_callback\_add()}{evas\_event\_callback\_add()}}
{\footnotesize\ttfamily EVAS\+\_\+\+API void evas\+\_\+event\+\_\+callback\+\_\+add (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Evas__Canvas_ga5ff87cc4ce6bc43e3b640a6d37f73043}{Evas}} $\ast$}]{e,  }\item[{\mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968}{Evas\+\_\+\+Callback\+\_\+\+Type}}}]{type,  }\item[{\mbox{\hyperlink{Evas__Common_8h_ac401c1106679ef51150672e2f80288f0}{Evas\+\_\+\+Event\+\_\+\+Cb}}}]{func,  }\item[{const void $\ast$}]{data }\end{DoxyParamCaption})}



Add (register) a callback function to a given canvas event. 


\begin{DoxyParams}{Parameters}
{\em e} & Canvas to attach a callback to \\
\hline
{\em type} & The type of event that will trigger the callback \\
\hline
{\em func} & The (callback) function to be called when the event is triggered \\
\hline
{\em data} & The data pointer to be passed to {\ttfamily func} \\
\hline
\end{DoxyParams}
This function adds a function callback to the canvas {\ttfamily e} when the event of type {\ttfamily type} occurs on it. The function pointer is {\ttfamily func}.

In the event of a memory allocation error during the addition of the callback to the canvas, \mbox{\hyperlink{group__Evas__Main__Group_gafd2d87a395c4e9a32d74d3a5b45b786f}{evas\+\_\+alloc\+\_\+error()}} should be used to determine the nature of the error, if any, and the program should sensibly try and recover.

A callback function must have the \mbox{\hyperlink{Evas__Common_8h_ac401c1106679ef51150672e2f80288f0}{Evas\+\_\+\+Event\+\_\+\+Cb}} prototype definition. The first parameter ({\ttfamily data}) in this definition will have the same value passed to \mbox{\hyperlink{group__Evas__Canvas__Events_ga1102db15e93fcb4a4fe9e6ed58779b4f}{evas\+\_\+event\+\_\+callback\+\_\+add()}} as the {\ttfamily data} parameter, at runtime. The second parameter {\ttfamily e} is the canvas pointer on which the event occurred. The third parameter {\ttfamily event\+\_\+info} is a pointer to a data structure that may or may not be passed to the callback, depending on the event type that triggered the callback. This is so because some events don\textquotesingle{}t carry extra context with them, but others do.

The event type {\ttfamily type} to trigger the function may be one of \mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968a5a68e4f5dccdc18a393ef4a4773236c3}{EVAS\+\_\+\+CALLBACK\+\_\+\+RENDER\+\_\+\+FLUSH\+\_\+\+PRE}}, \mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968a4fb1f9e790a22f8e22b63faadf0133c1}{EVAS\+\_\+\+CALLBACK\+\_\+\+RENDER\+\_\+\+FLUSH\+\_\+\+POST}}, \mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968ac3a1defaffac4dcb6fe9e568919c45d1}{EVAS\+\_\+\+CALLBACK\+\_\+\+CANVAS\+\_\+\+FOCUS\+\_\+\+IN}}, \mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968a444e79ca91d910d500dc26f71cf0518f}{EVAS\+\_\+\+CALLBACK\+\_\+\+CANVAS\+\_\+\+FOCUS\+\_\+\+OUT}}, \mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968a7380ca16bf87762e96309473d3d306c5}{EVAS\+\_\+\+CALLBACK\+\_\+\+CANVAS\+\_\+\+OBJECT\+\_\+\+FOCUS\+\_\+\+IN}} and \mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968a974f3364f1cee80e98bc5ff3e01d3070}{EVAS\+\_\+\+CALLBACK\+\_\+\+CANVAS\+\_\+\+OBJECT\+\_\+\+FOCUS\+\_\+\+OUT}}. This determines the kind of event that will trigger the callback to be called. Only the last two of the event types listed here provide useful event information data -- a pointer to the recently focused Evas object. For the others the {\ttfamily event\+\_\+info} pointer is going to be {\ttfamily NULL}.

Example\+:  
\begin{DoxyCodeInclude}{0}
\DoxyCodeLine{\ \ \ \mbox{\hyperlink{group__Evas__Canvas__Events_ga1102db15e93fcb4a4fe9e6ed58779b4f}{evas\_event\_callback\_add}}(d.canvas,\ \mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968a5a68e4f5dccdc18a393ef4a4773236c3}{EVAS\_CALLBACK\_RENDER\_FLUSH\_PRE}},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_render\_flush\_cb,\ NULL);}
\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{if}\ (\mbox{\hyperlink{group__Evas__Main__Group_gafd2d87a395c4e9a32d74d3a5b45b786f}{evas\_alloc\_error}}()\ !=\ \mbox{\hyperlink{Evas__Common_8h_a1adf9f604f763f2a8db12a484ca199cba22bbdd0a96a670bbddd6789f91921af8}{EVAS\_ALLOC\_ERROR\_NONE}})}
\DoxyCodeLine{\ \ \ \ \ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ fprintf(stderr,\ \textcolor{stringliteral}{"{}ERROR:\ Callback\ registering\ failed!\ Aborting.\(\backslash\)n"{}});}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ panic;}
\DoxyCodeLine{\ \ \ \ \ \}}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \mbox{\hyperlink{group__Evas__Canvas__Events_ga1102db15e93fcb4a4fe9e6ed58779b4f}{evas\_event\_callback\_add}}(d.canvas,\ \mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968a7380ca16bf87762e96309473d3d306c5}{EVAS\_CALLBACK\_CANVAS\_OBJECT\_FOCUS\_IN}},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_object\_focus\_in\_cb,\ NULL);}
\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{if}\ (\mbox{\hyperlink{group__Evas__Main__Group_gafd2d87a395c4e9a32d74d3a5b45b786f}{evas\_alloc\_error}}()\ !=\ \mbox{\hyperlink{Evas__Common_8h_a1adf9f604f763f2a8db12a484ca199cba22bbdd0a96a670bbddd6789f91921af8}{EVAS\_ALLOC\_ERROR\_NONE}})}
\DoxyCodeLine{\ \ \ \ \ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ fprintf(stderr,\ \textcolor{stringliteral}{"{}ERROR:\ Callback\ registering\ failed!\ Aborting.\(\backslash\)n"{}});}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ panic;}
\DoxyCodeLine{\ \ \ \ \ \}\ \textcolor{comment}{/*\ two\ canvas\ event\ callbacks\ */}}

\end{DoxyCodeInclude}
 Looking to the callbacks registered above,  
\begin{DoxyCodeInclude}{0}
\DoxyCodeLine{\textcolor{comment}{/*\ called\ when\ our\ rectangle\ gets\ focus\ */}}
\DoxyCodeLine{\textcolor{keyword}{static}\ \textcolor{keywordtype}{void}}
\DoxyCodeLine{\_object\_focus\_in\_cb(\textcolor{keywordtype}{void}\ *data\ \mbox{\hyperlink{group__Eina__Types__Group_ga82d751be730f849719ca292f9558be87}{EINA\_UNUSED}},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__Evas__Canvas_ga5ff87cc4ce6bc43e3b640a6d37f73043}{Evas}}\ *e,}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ *event\_info)}
\DoxyCodeLine{\{}
\DoxyCodeLine{\ \ \ printf(\textcolor{stringliteral}{"{}An\ object\ got\ focused:\ \%s\(\backslash\)n"{}},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__Evas__Object__Group__Basic_ga30207eec263c05c17d453f8b8cc7a259}{evas\_object\_name\_get}}(event\_info));}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ printf(\textcolor{stringliteral}{"{}Let's\ recheck\ it:\ \%s\(\backslash\)n"{}},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__Evas__Object__Group__Basic_ga30207eec263c05c17d453f8b8cc7a259}{evas\_object\_name\_get}}(\mbox{\hyperlink{group__Evas__Canvas_ga8e5a5459c8e3e7cf1f0df4b3162b2e0d}{evas\_focus\_get}}(e)));}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ printf(\textcolor{stringliteral}{"{}And\ again:\ \%s\(\backslash\)n"{}},\ \mbox{\hyperlink{group__Evas__Object__Group_ga783769a4390af622ee0d0f18f04b0df1}{evas\_object\_focus\_get}}(event\_info)\ ?}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \textcolor{stringliteral}{"{}OK!"{}}\ :\ \textcolor{stringliteral}{"{}Oops,\ something\ is\ bad."{}});}
\DoxyCodeLine{\}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{comment}{/*\ render\ flush\ callback\ */}}
\DoxyCodeLine{\textcolor{keyword}{static}\ \textcolor{keywordtype}{void}}
\DoxyCodeLine{\_render\_flush\_cb(\textcolor{keywordtype}{void}\ *data\ \mbox{\hyperlink{group__Eina__Types__Group_ga82d751be730f849719ca292f9558be87}{EINA\_UNUSED}},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__Evas__Canvas_ga5ff87cc4ce6bc43e3b640a6d37f73043}{Evas}}\ *e\ \mbox{\hyperlink{group__Eina__Types__Group_ga82d751be730f849719ca292f9558be87}{EINA\_UNUSED}},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ *event\_info\ \mbox{\hyperlink{group__Eina__Types__Group_ga82d751be730f849719ca292f9558be87}{EINA\_UNUSED}})}
\DoxyCodeLine{\{}
\DoxyCodeLine{\ \ \ printf(\textcolor{stringliteral}{"{}Canvas\ is\ about\ to\ flush\ its\ rendering\ pipeline!\(\backslash\)n"{}});}
\DoxyCodeLine{\}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{comment}{/*\ put\ some\ action\ in\ the\ canvas\ */}}
\DoxyCodeLine{\textcolor{keyword}{static}\ \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\_Bool}}}
\DoxyCodeLine{\_resize\_cb(\textcolor{keywordtype}{void}\ *data\ \mbox{\hyperlink{group__Eina__Types__Group_ga82d751be730f849719ca292f9558be87}{EINA\_UNUSED}})}
\DoxyCodeLine{\{}
\DoxyCodeLine{\ \ \ \textcolor{keywordtype}{int}\ w,\ h,\ cw,\ ch;}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \mbox{\hyperlink{group__Evas__Object__Group__Basic_ga6e8e78e110392480dd612df86a16b630}{evas\_object\_geometry\_get}}(d.img,\ NULL,\ NULL,\ \&w,\ \&h);}
\DoxyCodeLine{\ \ \ \mbox{\hyperlink{group__Ecore__Evas__Group_ga931aadf4603731e73e8a84e4b14f1493}{ecore\_evas\_geometry\_get}}(d.ee,\ NULL,\ NULL,\ \&cw,\ \&ch);}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{if}\ (w\ <\ cw)}
\DoxyCodeLine{\ \ \ \ \ \mbox{\hyperlink{group__Evas__Object__Group_gacad94595f83580c18908cb3b69b08d1a}{evas\_object\_resize}}(d.img,\ cw,\ ch);}
\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{else}}
\DoxyCodeLine{\ \ \ \ \ \mbox{\hyperlink{group__Evas__Object__Group_gacad94595f83580c18908cb3b69b08d1a}{evas\_object\_resize}}(d.img,\ cw\ /\ 2,\ ch\ /\ 2);}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\_TRUE}};\ \textcolor{comment}{/*\ re-\/issue\ the\ timer\ */}}
\DoxyCodeLine{\}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{comment}{/*\ let's\ have\ our\ events\ back\ */}}

\end{DoxyCodeInclude}
 we see that the canvas flushes its rendering pipeline (\mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968a5a68e4f5dccdc18a393ef4a4773236c3}{EVAS\+\_\+\+CALLBACK\+\_\+\+RENDER\+\_\+\+FLUSH\+\_\+\+PRE}}) whenever the {\ttfamily \+\_\+resize\+\_\+cb} routine takes place\+: it has to redraw that image at a different size. Also, the callback on an object being focused comes just after we focus it explicitly, on code.

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

\begin{DoxyNote}{Note}
Be careful not to add the same callback multiple times, if that\textquotesingle{}s not what you want, because Evas won\textquotesingle{}t check if a callback existed before exactly as the one being registered (and thus, call it more than once on the event, in this case). This would make sense if you passed different functions and/or callback data, only. 
\end{DoxyNote}


References \mbox{\hyperlink{Evas__Common_8h_ad3707d7842e65932f5758ea131603337}{EVAS\+\_\+\+CALLBACK\+\_\+\+PRIORITY\+\_\+\+DEFAULT}}, and \mbox{\hyperlink{group__Evas__Canvas__Events_ga16b0a852f07c3c5a540e404b9cbda6a4}{evas\+\_\+event\+\_\+callback\+\_\+priority\+\_\+add()}}.



Referenced by \mbox{\hyperlink{group__Ecore__Evas__Group_gaca412094dad41a3bb020656b0eee97e2}{ecore\+\_\+evas\+\_\+object\+\_\+image\+\_\+new()}}.

\mbox{\Hypertarget{group__Evas__Canvas__Events_ga16b0a852f07c3c5a540e404b9cbda6a4}\label{group__Evas__Canvas__Events_ga16b0a852f07c3c5a540e404b9cbda6a4}} 
\index{Canvas Events@{Canvas Events}!evas\_event\_callback\_priority\_add@{evas\_event\_callback\_priority\_add}}
\index{evas\_event\_callback\_priority\_add@{evas\_event\_callback\_priority\_add}!Canvas Events@{Canvas Events}}
\doxysubsubsection{\texorpdfstring{evas\_event\_callback\_priority\_add()}{evas\_event\_callback\_priority\_add()}}
{\footnotesize\ttfamily EVAS\+\_\+\+API void evas\+\_\+event\+\_\+callback\+\_\+priority\+\_\+add (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Evas__Canvas_ga5ff87cc4ce6bc43e3b640a6d37f73043}{Evas}} $\ast$}]{e,  }\item[{\mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968}{Evas\+\_\+\+Callback\+\_\+\+Type}}}]{type,  }\item[{\mbox{\hyperlink{Evas__Common_8h_a569c486e7bbb47ad28baaec79eb1ff3b}{Evas\+\_\+\+Callback\+\_\+\+Priority}}}]{priority,  }\item[{\mbox{\hyperlink{Evas__Common_8h_ac401c1106679ef51150672e2f80288f0}{Evas\+\_\+\+Event\+\_\+\+Cb}}}]{func,  }\item[{const void $\ast$}]{data }\end{DoxyParamCaption})}



Add (register) a callback function to a given canvas event with a non-\/default priority set. 

Except for the priority field, it\textquotesingle{}s exactly the same as \mbox{\hyperlink{group__Evas__Canvas__Events_ga1102db15e93fcb4a4fe9e6ed58779b4f}{evas\+\_\+event\+\_\+callback\+\_\+add}}


\begin{DoxyParams}{Parameters}
{\em e} & Canvas to attach a callback to \\
\hline
{\em type} & The type of event that will trigger the callback \\
\hline
{\em priority} & The priority of the callback, lower values called first. \\
\hline
{\em func} & The (callback) function to be called when the event is triggered \\
\hline
{\em data} & The data pointer to be passed to {\ttfamily func} \\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Evas__Canvas__Events_ga1102db15e93fcb4a4fe9e6ed58779b4f}{evas\+\_\+event\+\_\+callback\+\_\+add}} 
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+1 
\end{DoxySince}


References \mbox{\hyperlink{group__Eina__Inline__List__Group_gaef650e653f43178ecfee2c661bea7a85}{eina\+\_\+inlist\+\_\+append()}}, \mbox{\hyperlink{group__Eina__Inline__List__Group_ga5bc991428e75557c6195f6b9e38321fb}{EINA\+\_\+\+INLIST\+\_\+\+GET}}, \mbox{\hyperlink{group__Eina__Safety__Checks__Group_ga1ccf8538d0015b3801ff642e6156843a}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+NULL\+\_\+\+RETURN}}, \mbox{\hyperlink{group__Eina__Safety__Checks__Group_ga8b89fd35e22beece51443e29fe585935}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+TRUE\+\_\+\+RETURN}}, \mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968a75f7395457a635b2f8074cfc0a570a17}{EVAS\+\_\+\+CALLBACK\+\_\+\+RENDER\+\_\+\+POST}}, and \mbox{\hyperlink{group__Evas__Canvas_ga7987306d8b2c49352b9d2c41585d0ce9}{EVAS\+\_\+\+CANVAS\+\_\+\+CLASS}}.



Referenced by \mbox{\hyperlink{group__Evas__Canvas__Events_ga1102db15e93fcb4a4fe9e6ed58779b4f}{evas\+\_\+event\+\_\+callback\+\_\+add()}}.

\mbox{\Hypertarget{group__Evas__Canvas__Events_ga2fe069da8a70750a8fb1670026f1d2a5}\label{group__Evas__Canvas__Events_ga2fe069da8a70750a8fb1670026f1d2a5}} 
\index{Canvas Events@{Canvas Events}!evas\_event\_callback\_del@{evas\_event\_callback\_del}}
\index{evas\_event\_callback\_del@{evas\_event\_callback\_del}!Canvas Events@{Canvas Events}}
\doxysubsubsection{\texorpdfstring{evas\_event\_callback\_del()}{evas\_event\_callback\_del()}}
{\footnotesize\ttfamily EVAS\+\_\+\+API void $\ast$ evas\+\_\+event\+\_\+callback\+\_\+del (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Evas__Canvas_ga5ff87cc4ce6bc43e3b640a6d37f73043}{Evas}} $\ast$}]{e,  }\item[{\mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968}{Evas\+\_\+\+Callback\+\_\+\+Type}}}]{type,  }\item[{\mbox{\hyperlink{Evas__Common_8h_ac401c1106679ef51150672e2f80288f0}{Evas\+\_\+\+Event\+\_\+\+Cb}}}]{func }\end{DoxyParamCaption})}



Delete a callback function from the canvas. 


\begin{DoxyParams}{Parameters}
{\em e} & Canvas to remove a callback from \\
\hline
{\em type} & The type of event that was triggering the callback \\
\hline
{\em func} & The function that was to be called when the event was triggered \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The data pointer that was to be passed to the callback
\end{DoxyReturn}
This function removes the most recently added callback from the canvas {\ttfamily e} which was triggered by the event type {\ttfamily type} and was calling the function {\ttfamily func} when triggered. If the removal is successful it will also return the data pointer that was passed to \mbox{\hyperlink{group__Evas__Canvas__Events_ga1102db15e93fcb4a4fe9e6ed58779b4f}{evas\+\_\+event\+\_\+callback\+\_\+add()}} when the callback was added to the canvas. If not successful {\ttfamily NULL} will be returned.

Example\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keyword}{extern}\ \mbox{\hyperlink{group__Evas__Canvas_ga5ff87cc4ce6bc43e3b640a6d37f73043}{Evas}}\ *e;}
\DoxyCodeLine{\textcolor{keywordtype}{void}\ *my\_data;}
\DoxyCodeLine{\textcolor{keywordtype}{void}\ focus\_in\_callback(\textcolor{keywordtype}{void}\ *data,\ \mbox{\hyperlink{group__Evas__Canvas_ga5ff87cc4ce6bc43e3b640a6d37f73043}{Evas}}\ *e,\ \textcolor{keywordtype}{void}\ *event\_info);}
\DoxyCodeLine{}
\DoxyCodeLine{my\_data\ =\ \mbox{\hyperlink{group__Evas__Canvas__Events_ga2fe069da8a70750a8fb1670026f1d2a5}{evas\_event\_callback\_del}}(ebject,\ \mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968ac3a1defaffac4dcb6fe9e568919c45d1}{EVAS\_CALLBACK\_CANVAS\_FOCUS\_IN}},\ focus\_in\_callback);}

\end{DoxyCode}
 

References \mbox{\hyperlink{group__Eina__Inline__List__Group_ga5bc991428e75557c6195f6b9e38321fb}{EINA\+\_\+\+INLIST\+\_\+\+GET}}, \mbox{\hyperlink{group__Eina__Inline__List__Group_gaf885b08d5b5a750a901f3780d3c65338}{eina\+\_\+inlist\+\_\+remove()}}, \mbox{\hyperlink{group__Eina__Inline__List__Group_gafa10a318f6f3c5e734e08bb4d48ca3f6}{EINA\+\_\+\+INLIST\+\_\+\+REVERSE\+\_\+\+FOREACH}}, \mbox{\hyperlink{group__Eina__Safety__Checks__Group_gab2b07061fc6500dedd9cd41c8d16f95d}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+NULL\+\_\+\+RETURN\+\_\+\+VAL}}, \mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968a75f7395457a635b2f8074cfc0a570a17}{EVAS\+\_\+\+CALLBACK\+\_\+\+RENDER\+\_\+\+POST}}, and \mbox{\hyperlink{group__Evas__Canvas_ga7987306d8b2c49352b9d2c41585d0ce9}{EVAS\+\_\+\+CANVAS\+\_\+\+CLASS}}.

\mbox{\Hypertarget{group__Evas__Canvas__Events_gaff7de09d31975387c5218de13fbed50f}\label{group__Evas__Canvas__Events_gaff7de09d31975387c5218de13fbed50f}} 
\index{Canvas Events@{Canvas Events}!evas\_event\_callback\_del\_full@{evas\_event\_callback\_del\_full}}
\index{evas\_event\_callback\_del\_full@{evas\_event\_callback\_del\_full}!Canvas Events@{Canvas Events}}
\doxysubsubsection{\texorpdfstring{evas\_event\_callback\_del\_full()}{evas\_event\_callback\_del\_full()}}
{\footnotesize\ttfamily EVAS\+\_\+\+API void $\ast$ evas\+\_\+event\+\_\+callback\+\_\+del\+\_\+full (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Evas__Canvas_ga5ff87cc4ce6bc43e3b640a6d37f73043}{Evas}} $\ast$}]{e,  }\item[{\mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968}{Evas\+\_\+\+Callback\+\_\+\+Type}}}]{type,  }\item[{\mbox{\hyperlink{Evas__Common_8h_ac401c1106679ef51150672e2f80288f0}{Evas\+\_\+\+Event\+\_\+\+Cb}}}]{func,  }\item[{const void $\ast$}]{data }\end{DoxyParamCaption})}



Delete (unregister) a callback function registered to a given canvas event. 


\begin{DoxyParams}{Parameters}
{\em e} & Canvas to remove an event callback from \\
\hline
{\em type} & The type of event that was triggering the callback \\
\hline
{\em func} & The function that was to be called when the event was triggered \\
\hline
{\em data} & The data pointer that was to be passed to the callback \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The data pointer that was to be passed to the callback
\end{DoxyReturn}
This function removes {\bfseries{the first}} added callback from the canvas {\ttfamily e} matching the event type {\ttfamily type}, the registered function pointer {\ttfamily func} and the callback data pointer {\ttfamily data}. If the removal is successful it will also return the data pointer that was passed to \mbox{\hyperlink{group__Evas__Canvas__Events_ga1102db15e93fcb4a4fe9e6ed58779b4f}{evas\+\_\+event\+\_\+callback\+\_\+add()}} (that will be the same as the parameter) when the callback(s) was(were) added to the canvas. If not successful {\ttfamily NULL} will be returned. A common use would be to remove an exact match of a callback.

Example\+:  
\begin{DoxyCodeInclude}{0}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \mbox{\hyperlink{group__Evas__Canvas__Events_gaff7de09d31975387c5218de13fbed50f}{evas\_event\_callback\_del\_full}}(evas,\ \mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968a5a68e4f5dccdc18a393ef4a4773236c3}{EVAS\_CALLBACK\_RENDER\_FLUSH\_PRE}},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_render\_flush\_cb,\ NULL);}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \mbox{\hyperlink{group__Evas__Canvas__Events_gaff7de09d31975387c5218de13fbed50f}{evas\_event\_callback\_del\_full}}(}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ evas,\ \mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968a7380ca16bf87762e96309473d3d306c5}{EVAS\_CALLBACK\_CANVAS\_OBJECT\_FOCUS\_IN}},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \_object\_focus\_in\_cb,\ NULL);}

\end{DoxyCodeInclude}
 See the full \mbox{\hyperlink{Example_Evas_Events}{example}}.

\begin{DoxyNote}{Note}
For deletion of canvas events callbacks filtering by just type and function pointer, user \mbox{\hyperlink{group__Evas__Canvas__Events_ga2fe069da8a70750a8fb1670026f1d2a5}{evas\+\_\+event\+\_\+callback\+\_\+del()}}. 
\end{DoxyNote}


References \mbox{\hyperlink{group__Eina__Inline__List__Group_ga65e496b9b16d527d23c1d735652b4e62}{EINA\+\_\+\+INLIST\+\_\+\+FOREACH}}, \mbox{\hyperlink{group__Eina__Inline__List__Group_ga5bc991428e75557c6195f6b9e38321fb}{EINA\+\_\+\+INLIST\+\_\+\+GET}}, \mbox{\hyperlink{group__Eina__Inline__List__Group_gaf885b08d5b5a750a901f3780d3c65338}{eina\+\_\+inlist\+\_\+remove()}}, \mbox{\hyperlink{group__Eina__Inline__List__Group_gafa10a318f6f3c5e734e08bb4d48ca3f6}{EINA\+\_\+\+INLIST\+\_\+\+REVERSE\+\_\+\+FOREACH}}, \mbox{\hyperlink{group__Eina__Safety__Checks__Group_gab2b07061fc6500dedd9cd41c8d16f95d}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+NULL\+\_\+\+RETURN\+\_\+\+VAL}}, \mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968a75f7395457a635b2f8074cfc0a570a17}{EVAS\+\_\+\+CALLBACK\+\_\+\+RENDER\+\_\+\+POST}}, and \mbox{\hyperlink{group__Evas__Canvas_ga7987306d8b2c49352b9d2c41585d0ce9}{EVAS\+\_\+\+CANVAS\+\_\+\+CLASS}}.

\mbox{\Hypertarget{group__Evas__Canvas__Events_ga5a9c8cebea1fb45ad7e13a319bee92a8}\label{group__Evas__Canvas__Events_ga5a9c8cebea1fb45ad7e13a319bee92a8}} 
\index{Canvas Events@{Canvas Events}!evas\_post\_event\_callback\_push@{evas\_post\_event\_callback\_push}}
\index{evas\_post\_event\_callback\_push@{evas\_post\_event\_callback\_push}!Canvas Events@{Canvas Events}}
\doxysubsubsection{\texorpdfstring{evas\_post\_event\_callback\_push()}{evas\_post\_event\_callback\_push()}}
{\footnotesize\ttfamily EVAS\+\_\+\+API void evas\+\_\+post\+\_\+event\+\_\+callback\+\_\+push (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Evas__Canvas_ga5ff87cc4ce6bc43e3b640a6d37f73043}{Evas}} $\ast$}]{e,  }\item[{\mbox{\hyperlink{Evas__Common_8h_af38bf0506914794cd3b0836185dabe68}{Evas\+\_\+\+Object\+\_\+\+Event\+\_\+\+Post\+\_\+\+Cb}}}]{func,  }\item[{const void $\ast$}]{data }\end{DoxyParamCaption})}



Push a callback on the post-\/event callback stack. 


\begin{DoxyParams}{Parameters}
{\em e} & Canvas to push the callback on \\
\hline
{\em func} & The function that to be called when the stack is unwound \\
\hline
{\em data} & The data pointer to be passed to the callback\\
\hline
\end{DoxyParams}
Evas has a stack of callbacks that get called after all the callbacks for an event have triggered (all the objects it triggers on and all the callbacks in each object triggered). When all these have been called, the stack is unwound from most recently to least recently pushed item and removed from the stack calling the callback set for it.

This is intended for doing reverse logic-\/like processing, example -\/ when a child object that happens to get the event later is meant to be able to \char`\"{}steal\char`\"{} functions from a parent and thus on unwind of this stack have its function called first, thus being able to set flags, or return 0 from the post-\/callback that stops all other post-\/callbacks in the current stack from being called (thus basically allowing a child to take control, if the event callback prepares information ready for taking action, but the post callback actually does the action).

This function should only be called from inside an evas input event callback. The event\+\_\+info data may be kept up until {\ttfamily func} is called, in order to check the state of the \char`\"{}on-\/hold\char`\"{} flag for instance. Do not modify the canvas or otherwise trigger or feed a events to the canvas from inside {\ttfamily func}. Use jobs to safely modify the canvas.

\begin{DoxyWarning}{Warning}
Only use this function if you know exactly what you are doing! 
\end{DoxyWarning}


References \mbox{\hyperlink{group__Eina__List__Group_ga4a2716e8fba1c3f60e3b112caef26fb9}{eina\+\_\+list\+\_\+prepend()}}, \mbox{\hyperlink{group__Eina__Safety__Checks__Group_ga1ccf8538d0015b3801ff642e6156843a}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+NULL\+\_\+\+RETURN}}, \mbox{\hyperlink{group__Eina__Safety__Checks__Group_ga8b89fd35e22beece51443e29fe585935}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+TRUE\+\_\+\+RETURN}}, \mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968ab36d452d3fcb36aa19becaf700bde529}{EVAS\+\_\+\+CALLBACK\+\_\+\+LAST}}, and \mbox{\hyperlink{group__Evas__Canvas_ga7987306d8b2c49352b9d2c41585d0ce9}{EVAS\+\_\+\+CANVAS\+\_\+\+CLASS}}.

\mbox{\Hypertarget{group__Evas__Canvas__Events_ga17a99598f75217d5e6999a92abf234c7}\label{group__Evas__Canvas__Events_ga17a99598f75217d5e6999a92abf234c7}} 
\index{Canvas Events@{Canvas Events}!evas\_post\_event\_callback\_remove@{evas\_post\_event\_callback\_remove}}
\index{evas\_post\_event\_callback\_remove@{evas\_post\_event\_callback\_remove}!Canvas Events@{Canvas Events}}
\doxysubsubsection{\texorpdfstring{evas\_post\_event\_callback\_remove()}{evas\_post\_event\_callback\_remove()}}
{\footnotesize\ttfamily EVAS\+\_\+\+API void evas\+\_\+post\+\_\+event\+\_\+callback\+\_\+remove (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Evas__Canvas_ga5ff87cc4ce6bc43e3b640a6d37f73043}{Evas}} $\ast$}]{e,  }\item[{\mbox{\hyperlink{Evas__Common_8h_af38bf0506914794cd3b0836185dabe68}{Evas\+\_\+\+Object\+\_\+\+Event\+\_\+\+Post\+\_\+\+Cb}}}]{func }\end{DoxyParamCaption})}



Remove a callback from the post-\/event callback stack. 


\begin{DoxyParams}{Parameters}
{\em e} & Canvas to push the callback on \\
\hline
{\em func} & The function that to be called when the stack is unwound\\
\hline
\end{DoxyParams}
This removes a callback from the stack added with \mbox{\hyperlink{group__Evas__Canvas__Events_ga5a9c8cebea1fb45ad7e13a319bee92a8}{evas\+\_\+post\+\_\+event\+\_\+callback\+\_\+push()}}. The first instance of the function in the callback stack is removed from being executed when the stack is unwound. Further instances may still be run on unwind. 

References \mbox{\hyperlink{group__Eina__List__Group_gac6efafc19f526d916cdb9757240a8773}{EINA\+\_\+\+LIST\+\_\+\+FOREACH}}, \mbox{\hyperlink{group__Eina__Safety__Checks__Group_ga1ccf8538d0015b3801ff642e6156843a}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+NULL\+\_\+\+RETURN}}, and \mbox{\hyperlink{group__Evas__Canvas_ga7987306d8b2c49352b9d2c41585d0ce9}{EVAS\+\_\+\+CANVAS\+\_\+\+CLASS}}.

\mbox{\Hypertarget{group__Evas__Canvas__Events_gac62a904557a01d8cda29ff099e48745d}\label{group__Evas__Canvas__Events_gac62a904557a01d8cda29ff099e48745d}} 
\index{Canvas Events@{Canvas Events}!evas\_post\_event\_callback\_remove\_full@{evas\_post\_event\_callback\_remove\_full}}
\index{evas\_post\_event\_callback\_remove\_full@{evas\_post\_event\_callback\_remove\_full}!Canvas Events@{Canvas Events}}
\doxysubsubsection{\texorpdfstring{evas\_post\_event\_callback\_remove\_full()}{evas\_post\_event\_callback\_remove\_full()}}
{\footnotesize\ttfamily EVAS\+\_\+\+API void evas\+\_\+post\+\_\+event\+\_\+callback\+\_\+remove\+\_\+full (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Evas__Canvas_ga5ff87cc4ce6bc43e3b640a6d37f73043}{Evas}} $\ast$}]{e,  }\item[{\mbox{\hyperlink{Evas__Common_8h_af38bf0506914794cd3b0836185dabe68}{Evas\+\_\+\+Object\+\_\+\+Event\+\_\+\+Post\+\_\+\+Cb}}}]{func,  }\item[{const void $\ast$}]{data }\end{DoxyParamCaption})}



Remove a callback from the post-\/event callback stack. 


\begin{DoxyParams}{Parameters}
{\em e} & Canvas to push the callback on \\
\hline
{\em func} & The function that to be called when the stack is unwound \\
\hline
{\em data} & The data pointer to be passed to the callback\\
\hline
\end{DoxyParams}
This removes a callback from the stack added with \mbox{\hyperlink{group__Evas__Canvas__Events_ga5a9c8cebea1fb45ad7e13a319bee92a8}{evas\+\_\+post\+\_\+event\+\_\+callback\+\_\+push()}}. The first instance of the function and data in the callback stack is removed from being executed when the stack is unwound. Further instances may still be run on unwind. 

References \mbox{\hyperlink{group__Eina__List__Group_gac6efafc19f526d916cdb9757240a8773}{EINA\+\_\+\+LIST\+\_\+\+FOREACH}}, \mbox{\hyperlink{group__Eina__Safety__Checks__Group_ga1ccf8538d0015b3801ff642e6156843a}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+NULL\+\_\+\+RETURN}}, and \mbox{\hyperlink{group__Evas__Canvas_ga7987306d8b2c49352b9d2c41585d0ce9}{EVAS\+\_\+\+CANVAS\+\_\+\+CLASS}}.

