\hypertarget{struct__Evas__Smart__Interface}{}\doxysection{\+\_\+\+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.  




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

\doxysubsection*{Data Fields}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{struct__Evas__Smart__Interface_ab13548f7381484b1d535f6932e68d908}\label{struct__Evas__Smart__Interface_ab13548f7381484b1d535f6932e68d908}} 
const char $\ast$ {\bfseries 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}


\doxysubsection{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}


\doxysubsection{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}}
\doxysubsubsection{\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_gab610d4c40ac4ab96ddd79dea2fa7291c}{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}}
\doxysubsubsection{\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}}
\doxysubsubsection{\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. 