\hypertarget{struct__Evas__Smart__Class}{}\doxysection{\+\_\+\+Evas\+\_\+\+Smart\+\_\+\+Class Struct Reference}
\label{struct__Evas__Smart__Class}\index{\_Evas\_Smart\_Class@{\_Evas\_Smart\_Class}}


A smart object\textquotesingle{}s {\bfseries{base}} class definition.  




{\ttfamily \#include $<$Evas\+\_\+\+Common.\+h$>$}

\doxysubsection*{Data Fields}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{struct__Evas__Smart__Class_a34b0476dfa714dff39812ed72636005f}\label{struct__Evas__Smart__Class_a34b0476dfa714dff39812ed72636005f}} 
const char $\ast$ {\bfseries name}
\begin{DoxyCompactList}\small\item\em the name string of the class \end{DoxyCompactList}\item 
\mbox{\Hypertarget{struct__Evas__Smart__Class_a425cb7b99efa8e081114eff99813cd6b}\label{struct__Evas__Smart__Class_a425cb7b99efa8e081114eff99813cd6b}} 
int {\bfseries version}
\item 
\mbox{\Hypertarget{struct__Evas__Smart__Class_a044206688a3b0ea9785688d2efcea4d6}\label{struct__Evas__Smart__Class_a044206688a3b0ea9785688d2efcea4d6}} 
void($\ast$ {\bfseries add} )(\mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$o)
\begin{DoxyCompactList}\small\item\em code to be run when adding object to a canvas \end{DoxyCompactList}\item 
\mbox{\Hypertarget{struct__Evas__Smart__Class_a1dd96f1c822fefaa68025e35de0bbde7}\label{struct__Evas__Smart__Class_a1dd96f1c822fefaa68025e35de0bbde7}} 
void($\ast$ {\bfseries del} )(\mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$o)
\begin{DoxyCompactList}\small\item\em code to be run when removing object from a canvas \end{DoxyCompactList}\item 
void($\ast$ \mbox{\hyperlink{struct__Evas__Smart__Class_ab554d9c900d3aff4303a440a06cda80a}{move}} )(\mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$o, \mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} x, \mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} y)
\begin{DoxyCompactList}\small\item\em code to be run when moving object on a canvas. \end{DoxyCompactList}\item 
void($\ast$ \mbox{\hyperlink{struct__Evas__Smart__Class_afb95f2f5616403d43c464a4d939bdcfa}{resize}} )(\mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$o, \mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} w, \mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} h)
\begin{DoxyCompactList}\small\item\em code to be run when resizing object on a canvas. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{struct__Evas__Smart__Class_a1aa57fda1f2e428b91e771a1d3a3a9de}\label{struct__Evas__Smart__Class_a1aa57fda1f2e428b91e771a1d3a3a9de}} 
void($\ast$ {\bfseries show} )(\mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$o)
\begin{DoxyCompactList}\small\item\em code to be run when showing object on a canvas \end{DoxyCompactList}\item 
\mbox{\Hypertarget{struct__Evas__Smart__Class_ad48724181a7379c046e754b20ece69b8}\label{struct__Evas__Smart__Class_ad48724181a7379c046e754b20ece69b8}} 
void($\ast$ {\bfseries hide} )(\mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$o)
\begin{DoxyCompactList}\small\item\em code to be run when hiding object on a canvas \end{DoxyCompactList}\item 
void($\ast$ \mbox{\hyperlink{struct__Evas__Smart__Class_aab2d6d2a9e6bf2420a19fecf59800091}{color\+\_\+set}} )(\mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$o, int r, int g, int b, int a)
\begin{DoxyCompactList}\small\item\em code to be run when setting color of object on a canvas. \end{DoxyCompactList}\item 
void($\ast$ \mbox{\hyperlink{struct__Evas__Smart__Class_aae2107fb1b9b20b483ea41160cf1da23}{clip\+\_\+set}} )(\mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$o, \mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$clip)
\begin{DoxyCompactList}\small\item\em code to be run when setting clipper of object on a canvas. \end{DoxyCompactList}\item 
void($\ast$ \mbox{\hyperlink{struct__Evas__Smart__Class_a7abc5300bbe98678d704c1fb27475002}{clip\+\_\+unset}} )(\mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$o)
\begin{DoxyCompactList}\small\item\em code to be run when unsetting clipper of object on a canvas. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{struct__Evas__Smart__Class_a495fe27fb074354ccaf9ebc68165ed69}\label{struct__Evas__Smart__Class_a495fe27fb074354ccaf9ebc68165ed69}} 
void($\ast$ {\bfseries calculate} )(\mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$o)
\begin{DoxyCompactList}\small\item\em code to be run when object has rendering updates on a canvas \end{DoxyCompactList}\item 
\mbox{\Hypertarget{struct__Evas__Smart__Class_aa0675efc0ae988dd8fcaaadaea2a17d1}\label{struct__Evas__Smart__Class_aa0675efc0ae988dd8fcaaadaea2a17d1}} 
void($\ast$ {\bfseries member\+\_\+add} )(\mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$o, \mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$child)
\begin{DoxyCompactList}\small\item\em code to be run when a child member is added to object \end{DoxyCompactList}\item 
\mbox{\Hypertarget{struct__Evas__Smart__Class_a2ad229ea682c812f8145f8e5d17ced5e}\label{struct__Evas__Smart__Class_a2ad229ea682c812f8145f8e5d17ced5e}} 
void($\ast$ {\bfseries member\+\_\+del} )(\mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$o, \mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$child)
\begin{DoxyCompactList}\small\item\em code to be run when a child member is removed from object \end{DoxyCompactList}\item 
\mbox{\Hypertarget{struct__Evas__Smart__Class_a4b009bf8125551b4bec8bc114756fc3e}\label{struct__Evas__Smart__Class_a4b009bf8125551b4bec8bc114756fc3e}} 
const \mbox{\hyperlink{group__Evas__Smart__Group_gaea15f67e901bf5380cdb67dc1bb43391}{Evas\+\_\+\+Smart\+\_\+\+Class}} $\ast$ {\bfseries parent}
\begin{DoxyCompactList}\small\item\em this class inherits from this parent \end{DoxyCompactList}\item 
\mbox{\Hypertarget{struct__Evas__Smart__Class_af7074494030024c3d0e502bca7b19067}\label{struct__Evas__Smart__Class_af7074494030024c3d0e502bca7b19067}} 
const \mbox{\hyperlink{group__Evas__Smart__Group_ga0ad0e7d482d7660e756e275d355e3634}{Evas\+\_\+\+Smart\+\_\+\+Cb\+\_\+\+Description}} $\ast$ {\bfseries callbacks}
\begin{DoxyCompactList}\small\item\em callbacks at this level, {\ttfamily NULL} terminated \end{DoxyCompactList}\item 
const \mbox{\hyperlink{group__Evas__Smart__Group_gaef9b6443e1fdb6ffd3acd39981e91fee}{Evas\+\_\+\+Smart\+\_\+\+Interface}} $\ast$$\ast$ \mbox{\hyperlink{struct__Evas__Smart__Class_a26493bcab3adc8486eca1ff00a5e246f}{interfaces}}
\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{group__Evas__Smart__Group_gaef9b6443e1fdb6ffd3acd39981e91fee}{Evas\+\_\+\+Smart\+\_\+\+Interface}} pointers array, {\ttfamily NULL} terminated. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{struct__Evas__Smart__Class_aec2abcb595315b0a264d05bbb2328624}\label{struct__Evas__Smart__Class_aec2abcb595315b0a264d05bbb2328624}} 
const void $\ast$ {\bfseries data}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
A smart object\textquotesingle{}s {\bfseries{base}} class definition. 

\begin{Desc}
\item[Examples]\par
\mbox{\hyperlink{evas-smart-interface_8c-example}{evas-\/smart-\/interface.\+c}}, and \mbox{\hyperlink{evas-smart-object_8c-example}{evas-\/smart-\/object.\+c}}.\end{Desc}


\doxysubsection{Field Documentation}
\mbox{\Hypertarget{struct__Evas__Smart__Class_ab554d9c900d3aff4303a440a06cda80a}\label{struct__Evas__Smart__Class_ab554d9c900d3aff4303a440a06cda80a}} 
\index{\_Evas\_Smart\_Class@{\_Evas\_Smart\_Class}!move@{move}}
\index{move@{move}!\_Evas\_Smart\_Class@{\_Evas\_Smart\_Class}}
\doxysubsubsection{\texorpdfstring{move}{move}}
{\footnotesize\ttfamily void($\ast$ \+\_\+\+Evas\+\_\+\+Smart\+\_\+\+Class\+::move) (\mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$o, \mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} x, \mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} y)}



code to be run when moving object on a canvas. 

{\itshape x} and {\itshape y} will be new coordinates one applied to the object. use \mbox{\hyperlink{group__Evas__Object__Group__Basic_ga6e8e78e110392480dd612df86a16b630}{evas\+\_\+object\+\_\+geometry\+\_\+get()}} if you need the old values, during this call. after that, the old values will be lost. 

Referenced by \mbox{\hyperlink{group__Evas__Smart__Object__Clipped_ga4707c923b5e1dc47d0d1996a738755a6}{evas\+\_\+object\+\_\+smart\+\_\+clipped\+\_\+smart\+\_\+set()}}.

\mbox{\Hypertarget{struct__Evas__Smart__Class_afb95f2f5616403d43c464a4d939bdcfa}\label{struct__Evas__Smart__Class_afb95f2f5616403d43c464a4d939bdcfa}} 
\index{\_Evas\_Smart\_Class@{\_Evas\_Smart\_Class}!resize@{resize}}
\index{resize@{resize}!\_Evas\_Smart\_Class@{\_Evas\_Smart\_Class}}
\doxysubsubsection{\texorpdfstring{resize}{resize}}
{\footnotesize\ttfamily void($\ast$ \+\_\+\+Evas\+\_\+\+Smart\+\_\+\+Class\+::resize) (\mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$o, \mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} w, \mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} h)}



code to be run when resizing object on a canvas. 

{\itshape w} and {\itshape h} will be new dimensions one applied to the object. use \mbox{\hyperlink{group__Evas__Object__Group__Basic_ga6e8e78e110392480dd612df86a16b630}{evas\+\_\+object\+\_\+geometry\+\_\+get()}} if you need the old values, during this call. after that, the old values will be lost. \begin{Desc}
\item[Examples]\par
\mbox{\hyperlink{evas-smart-interface_8c-example}{evas-\/smart-\/interface.\+c}}, and \mbox{\hyperlink{evas-smart-object_8c-example}{evas-\/smart-\/object.\+c}}.\end{Desc}
\mbox{\Hypertarget{struct__Evas__Smart__Class_aab2d6d2a9e6bf2420a19fecf59800091}\label{struct__Evas__Smart__Class_aab2d6d2a9e6bf2420a19fecf59800091}} 
\index{\_Evas\_Smart\_Class@{\_Evas\_Smart\_Class}!color\_set@{color\_set}}
\index{color\_set@{color\_set}!\_Evas\_Smart\_Class@{\_Evas\_Smart\_Class}}
\doxysubsubsection{\texorpdfstring{color\_set}{color\_set}}
{\footnotesize\ttfamily void($\ast$ \+\_\+\+Evas\+\_\+\+Smart\+\_\+\+Class\+::color\+\_\+set) (\mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$o, int r, int g, int b, int a)}



code to be run when setting color of object on a canvas. 

{\itshape r}, {\itshape g}, {\itshape b} and {\itshape a} will be new color components one applied to the object. use \mbox{\hyperlink{group__Evas__Object__Group__Basic_gad204691b53639244ee1062d3f349f1d9}{evas\+\_\+object\+\_\+color\+\_\+get()}} if you need the old values, during this call. after that, the old values will be lost. 

Referenced by \mbox{\hyperlink{group__Evas__Smart__Object__Clipped_ga4707c923b5e1dc47d0d1996a738755a6}{evas\+\_\+object\+\_\+smart\+\_\+clipped\+\_\+smart\+\_\+set()}}.

\mbox{\Hypertarget{struct__Evas__Smart__Class_aae2107fb1b9b20b483ea41160cf1da23}\label{struct__Evas__Smart__Class_aae2107fb1b9b20b483ea41160cf1da23}} 
\index{\_Evas\_Smart\_Class@{\_Evas\_Smart\_Class}!clip\_set@{clip\_set}}
\index{clip\_set@{clip\_set}!\_Evas\_Smart\_Class@{\_Evas\_Smart\_Class}}
\doxysubsubsection{\texorpdfstring{clip\_set}{clip\_set}}
{\footnotesize\ttfamily void($\ast$ \+\_\+\+Evas\+\_\+\+Smart\+\_\+\+Class\+::clip\+\_\+set) (\mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$o, \mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$clip)}



code to be run when setting clipper of object on a canvas. 

{\itshape clip} will be new clipper one applied to the object. use \mbox{\hyperlink{group__Evas__Object__Group_gad3db894cf59cb26e114cf0a5fd0c44dc}{evas\+\_\+object\+\_\+clip\+\_\+get()}} if you need the old one, during this call. after that, the old (object pointer) value will be lost. 

Referenced by \mbox{\hyperlink{group__Evas__Smart__Object__Clipped_ga4707c923b5e1dc47d0d1996a738755a6}{evas\+\_\+object\+\_\+smart\+\_\+clipped\+\_\+smart\+\_\+set()}}.

\mbox{\Hypertarget{struct__Evas__Smart__Class_a7abc5300bbe98678d704c1fb27475002}\label{struct__Evas__Smart__Class_a7abc5300bbe98678d704c1fb27475002}} 
\index{\_Evas\_Smart\_Class@{\_Evas\_Smart\_Class}!clip\_unset@{clip\_unset}}
\index{clip\_unset@{clip\_unset}!\_Evas\_Smart\_Class@{\_Evas\_Smart\_Class}}
\doxysubsubsection{\texorpdfstring{clip\_unset}{clip\_unset}}
{\footnotesize\ttfamily void($\ast$ \+\_\+\+Evas\+\_\+\+Smart\+\_\+\+Class\+::clip\+\_\+unset) (\mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$o)}



code to be run when unsetting clipper of object on a canvas. 

if you need the pointer to a previous set clipper, during this call, use \mbox{\hyperlink{group__Evas__Object__Group_gad3db894cf59cb26e114cf0a5fd0c44dc}{evas\+\_\+object\+\_\+clip\+\_\+get()}}. after that, the old (object pointer) value will be lost. 

Referenced by \mbox{\hyperlink{group__Evas__Smart__Object__Clipped_ga4707c923b5e1dc47d0d1996a738755a6}{evas\+\_\+object\+\_\+smart\+\_\+clipped\+\_\+smart\+\_\+set()}}.

\mbox{\Hypertarget{struct__Evas__Smart__Class_a26493bcab3adc8486eca1ff00a5e246f}\label{struct__Evas__Smart__Class_a26493bcab3adc8486eca1ff00a5e246f}} 
\index{\_Evas\_Smart\_Class@{\_Evas\_Smart\_Class}!interfaces@{interfaces}}
\index{interfaces@{interfaces}!\_Evas\_Smart\_Class@{\_Evas\_Smart\_Class}}
\doxysubsubsection{\texorpdfstring{interfaces}{interfaces}}
{\footnotesize\ttfamily const \mbox{\hyperlink{group__Evas__Smart__Group_gaef9b6443e1fdb6ffd3acd39981e91fee}{Evas\+\_\+\+Smart\+\_\+\+Interface}}$\ast$$\ast$ \+\_\+\+Evas\+\_\+\+Smart\+\_\+\+Class\+::interfaces}



\mbox{\hyperlink{group__Evas__Smart__Group_gaef9b6443e1fdb6ffd3acd39981e91fee}{Evas\+\_\+\+Smart\+\_\+\+Interface}} pointers array, {\ttfamily NULL} terminated. 

These will be the interfaces supported at this level for an object (parents may have others) \begin{DoxySince}{Since}
1.\+7 
\end{DoxySince}
