\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 
const char $\ast$ \hyperlink{struct__Evas__Smart__Interface_ab13548f7381484b1d535f6932e68d908}{name}\hypertarget{struct__Evas__Smart__Interface_ab13548f7381484b1d535f6932e68d908}{}\label{struct__Evas__Smart__Interface_ab13548f7381484b1d535f6932e68d908}

\begin{DoxyCompactList}\small\item\em Name of the given interface. \end{DoxyCompactList}\item 
unsigned \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 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}($\ast$ \hyperlink{struct__Evas__Smart__Interface_a13cab68b08ef6950d7215e9792093c03}{add} )(\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$ \hyperlink{struct__Evas__Smart__Interface_a573bda00d41a9d5b1207ab4787789339}{del} )(\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 \hyperlink{Example_Evas_Smart_Interfaces}{examples} on smart interfaces.

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


\subsection{Field Documentation}
\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}}]{\setlength{\rightskip}{0pt plus 5cm}unsigned \+\_\+\+Evas\+\_\+\+Smart\+\_\+\+Interface\+::private\+\_\+size}\hypertarget{struct__Evas__Smart__Interface_ac9d2d1e288a99c0d35532fca34b143ad}{}\label{struct__Evas__Smart__Interface_ac9d2d1e288a99c0d35532fca34b143ad}


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

This will be allocated and freed automatically for you. Get it with \hyperlink{group__Evas__Smart__Object__Group_gaed3359faaae2d7cffd3e24441591da04}{evas\+\_\+object\+\_\+smart\+\_\+interface\+\_\+data\+\_\+get()}. 

Referenced by evas\+\_\+smart\+\_\+legacy\+\_\+type\+\_\+register(), and evas\+\_\+smart\+\_\+usage\+\_\+get().

\index{\+\_\+\+Evas\+\_\+\+Smart\+\_\+\+Interface@{\+\_\+\+Evas\+\_\+\+Smart\+\_\+\+Interface}!add@{add}}
\index{add@{add}!\+\_\+\+Evas\+\_\+\+Smart\+\_\+\+Interface@{\+\_\+\+Evas\+\_\+\+Smart\+\_\+\+Interface}}
\subsubsection[{\texorpdfstring{add}{add}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool}($\ast$ \+\_\+\+Evas\+\_\+\+Smart\+\_\+\+Interface\+::add) ({\bf Evas\+\_\+\+Object} $\ast$obj)}\hypertarget{struct__Evas__Smart__Interface_a13cab68b08ef6950d7215e9792093c03}{}\label{struct__Evas__Smart__Interface_a13cab68b08ef6950d7215e9792093c03}


Function to be called at object creation time. 

This will take place {\bfseries before} the object\textquotesingle{}s smart {\ttfamily \hyperlink{struct__Evas__Smart__Interface_a13cab68b08ef6950d7215e9792093c03}{add()}} function. 

Referenced by evas\+\_\+object\+\_\+smart\+\_\+add().

\index{\+\_\+\+Evas\+\_\+\+Smart\+\_\+\+Interface@{\+\_\+\+Evas\+\_\+\+Smart\+\_\+\+Interface}!del@{del}}
\index{del@{del}!\+\_\+\+Evas\+\_\+\+Smart\+\_\+\+Interface@{\+\_\+\+Evas\+\_\+\+Smart\+\_\+\+Interface}}
\subsubsection[{\texorpdfstring{del}{del}}]{\setlength{\rightskip}{0pt plus 5cm}void($\ast$ \+\_\+\+Evas\+\_\+\+Smart\+\_\+\+Interface\+::del) ({\bf Evas\+\_\+\+Object} $\ast$obj)}\hypertarget{struct__Evas__Smart__Interface_a573bda00d41a9d5b1207ab4787789339}{}\label{struct__Evas__Smart__Interface_a573bda00d41a9d5b1207ab4787789339}


Function to be called at object deletion time. 

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

Referenced by evas\+\_\+object\+\_\+smart\+\_\+callback\+\_\+call().

