\hypertarget{struct__Evas__Smart__Interface}{}\section{\+\_\+\+Evas\+\_\+\+Smart\+\_\+\+Interface Struct Reference}
\label{struct__Evas__Smart__Interface}\index{\+\_\+\+Evas\+\_\+\+Smart\+\_\+\+Interface@{\+\_\+\+Evas\+\_\+\+Smart\+\_\+\+Interface}}


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


\subsection*{Data Fields}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{struct__Evas__Smart__Interface_ab13548f7381484b1d535f6932e68d908}\label{struct__Evas__Smart__Interface_ab13548f7381484b1d535f6932e68d908}} 
const char $\ast$ \mbox{\hyperlink{struct__Evas__Smart__Interface_ab13548f7381484b1d535f6932e68d908}{name}}
\begin{DoxyCompactList}\small\item\em Name of the given interface. \end{DoxyCompactList}\item 
unsigned \mbox{\hyperlink{struct__Evas__Smart__Interface_ac9d2d1e288a99c0d35532fca34b143ad}{private\+\_\+size}}
\begin{DoxyCompactList}\small\item\em Size, in bytes, of the interface\textquotesingle{}s private dada blob. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}}($\ast$ \mbox{\hyperlink{struct__Evas__Smart__Interface_a13cab68b08ef6950d7215e9792093c03}{add}} )(\mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$obj)
\begin{DoxyCompactList}\small\item\em Function to be called at object creation time. \end{DoxyCompactList}\item 
void($\ast$ \mbox{\hyperlink{struct__Evas__Smart__Interface_a573bda00d41a9d5b1207ab4787789339}{del}} )(\mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$obj)
\begin{DoxyCompactList}\small\item\em Function to be called at object deletion time. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
A smart object\textquotesingle{}s {\bfseries base} interface definition. 

Every Evas interface must have a name field, pointing to a global, constant string variable. This string pointer will be the only way of retrieving back a given interface from a smart object. Two function pointers must be defined, too, which will be called at object creation and deletion times.

See also some \mbox{\hyperlink{Example_Evas_Smart_Interfaces}{examples}} on smart interfaces.

\begin{DoxySince}{Since}
1.\+7 
\end{DoxySince}
\begin{Desc}
\item[Examples\+: ]\par
\mbox{\hyperlink{evas-smart-interface_8c-example}{evas-\/smart-\/interface.\+c}}.\end{Desc}


\subsection{Field Documentation}
\mbox{\Hypertarget{struct__Evas__Smart__Interface_ac9d2d1e288a99c0d35532fca34b143ad}\label{struct__Evas__Smart__Interface_ac9d2d1e288a99c0d35532fca34b143ad}} 
\index{\+\_\+\+Evas\+\_\+\+Smart\+\_\+\+Interface@{\+\_\+\+Evas\+\_\+\+Smart\+\_\+\+Interface}!private\+\_\+size@{private\+\_\+size}}
\index{private\+\_\+size@{private\+\_\+size}!\+\_\+\+Evas\+\_\+\+Smart\+\_\+\+Interface@{\+\_\+\+Evas\+\_\+\+Smart\+\_\+\+Interface}}
\subsubsection{\texorpdfstring{private\+\_\+size}{private\_size}}
{\footnotesize\ttfamily unsigned \+\_\+\+Evas\+\_\+\+Smart\+\_\+\+Interface\+::private\+\_\+size}



Size, in bytes, of the interface\textquotesingle{}s private dada blob. 

This will be allocated and freed automatically for you. Get it with \mbox{\hyperlink{group__Evas__Smart__Object__Group_gaed3359faaae2d7cffd3e24441591da04}{evas\+\_\+object\+\_\+smart\+\_\+interface\+\_\+data\+\_\+get()}}. \mbox{\Hypertarget{struct__Evas__Smart__Interface_a13cab68b08ef6950d7215e9792093c03}\label{struct__Evas__Smart__Interface_a13cab68b08ef6950d7215e9792093c03}} 
\index{\+\_\+\+Evas\+\_\+\+Smart\+\_\+\+Interface@{\+\_\+\+Evas\+\_\+\+Smart\+\_\+\+Interface}!add@{add}}
\index{add@{add}!\+\_\+\+Evas\+\_\+\+Smart\+\_\+\+Interface@{\+\_\+\+Evas\+\_\+\+Smart\+\_\+\+Interface}}
\subsubsection{\texorpdfstring{add}{add}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}}($\ast$ \+\_\+\+Evas\+\_\+\+Smart\+\_\+\+Interface\+::add) (\mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$obj)}



Function to be called at object creation time. 

This will take place {\bfseries before} the object\textquotesingle{}s smart {\ttfamily \mbox{\hyperlink{struct__Evas__Smart__Interface_a13cab68b08ef6950d7215e9792093c03}{add()}}} function. \mbox{\Hypertarget{struct__Evas__Smart__Interface_a573bda00d41a9d5b1207ab4787789339}\label{struct__Evas__Smart__Interface_a573bda00d41a9d5b1207ab4787789339}} 
\index{\+\_\+\+Evas\+\_\+\+Smart\+\_\+\+Interface@{\+\_\+\+Evas\+\_\+\+Smart\+\_\+\+Interface}!del@{del}}
\index{del@{del}!\+\_\+\+Evas\+\_\+\+Smart\+\_\+\+Interface@{\+\_\+\+Evas\+\_\+\+Smart\+\_\+\+Interface}}
\subsubsection{\texorpdfstring{del}{del}}
{\footnotesize\ttfamily void($\ast$ \+\_\+\+Evas\+\_\+\+Smart\+\_\+\+Interface\+::del) (\mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$obj)}



Function to be called at object deletion time. 

This will take place {\bfseries after} the object\textquotesingle{}s smart {\ttfamily \mbox{\hyperlink{struct__Evas__Smart__Interface_a573bda00d41a9d5b1207ab4787789339}{del()}}} function. 