\hypertarget{group__Efl__Class}{}\doxysection{Efl Class}
\label{group__Efl__Class}\index{Efl Class@{Efl Class}}
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{struct__Efl__Op__Description}{\+\_\+\+Efl\+\_\+\+Op\+\_\+\+Description}}
\item 
struct \mbox{\hyperlink{struct__Efl__Object__Ops}{\+\_\+\+Efl\+\_\+\+Object\+\_\+\+Ops}}
\item 
struct \mbox{\hyperlink{struct__Efl__Class__Description}{\+\_\+\+Efl\+\_\+\+Class\+\_\+\+Description}}
\item 
struct \mbox{\hyperlink{struct__Efl__Object__Property__Reflection}{\+\_\+\+Efl\+\_\+\+Object\+\_\+\+Property\+\_\+\+Reflection}}
\item 
struct \mbox{\hyperlink{struct__Efl__Object__Property__Reflection__Ops}{\+\_\+\+Efl\+\_\+\+Object\+\_\+\+Property\+\_\+\+Reflection\+\_\+\+Ops}}
\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{group__Efl__Class_ga3161daff203ef3a3ab4b12b7de2b5344}{E\+F\+L\+\_\+\+D\+E\+F\+I\+N\+E\+\_\+\+C\+L\+A\+SS}}(class\+\_\+get\+\_\+func\+\_\+name,  class\+\_\+desc,  parent\+\_\+class, ...)
\item 
\#define \mbox{\hyperlink{group__Efl__Class_ga2cc2991fe8cb6143c1e042fade1d150f}{E\+O\+\_\+\+V\+E\+R\+S\+I\+ON}}~2
\item 
\#define \mbox{\hyperlink{group__Efl__Class_gabb9e425bb7762abd327e9667ca0c9269}{E\+F\+L\+\_\+\+O\+P\+S\+\_\+\+D\+E\+F\+I\+NE}}(ops, ...)
\begin{DoxyCompactList}\small\item\em Define an array of override functions for \mbox{\hyperlink{group__Efl__Class_ga2543f1bfec65cd5e2e58b50e649f9525}{efl\+\_\+object\+\_\+override}}. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef enum \mbox{\hyperlink{group__Efl__Class_ga27cb5db05d985da8cb3dd0894d98b58f}{\+\_\+\+Efl\+\_\+\+Class\+\_\+\+Type}} \mbox{\hyperlink{group__Efl__Class_ga09d772acf2ffed4a891dbbd55d88e120}{Efl\+\_\+\+Class\+\_\+\+Type}}
\item 
\mbox{\Hypertarget{group__Efl__Class_ga674647600b94683827206bf634819baa}\label{group__Efl__Class_ga674647600b94683827206bf634819baa}} 
typedef struct \mbox{\hyperlink{struct__Efl__Op__Description}{\+\_\+\+Efl\+\_\+\+Op\+\_\+\+Description}} {\bfseries Efl\+\_\+\+Op\+\_\+\+Description}
\item 
\mbox{\Hypertarget{group__Efl__Class_ga71eee6fb50999c30c979b20344005dd1}\label{group__Efl__Class_ga71eee6fb50999c30c979b20344005dd1}} 
typedef struct \mbox{\hyperlink{struct__Efl__Object__Ops}{\+\_\+\+Efl\+\_\+\+Object\+\_\+\+Ops}} {\bfseries Efl\+\_\+\+Object\+\_\+\+Ops}
\item 
\mbox{\Hypertarget{group__Efl__Class_gaece8d87623b4ea5dedab7bccc28fe844}\label{group__Efl__Class_gaece8d87623b4ea5dedab7bccc28fe844}} 
typedef \mbox{\hyperlink{group__Eina__Error__Group_ga95b3cbb33e987e7d92a81ea785001686}{Eina\+\_\+\+Error}}($\ast$ \mbox{\hyperlink{group__Efl__Class_gaece8d87623b4ea5dedab7bccc28fe844}{Efl\+\_\+\+Object\+\_\+\+Property\+\_\+\+Reflection\+\_\+\+Setter}}) (\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, \mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} value)
\begin{DoxyCompactList}\small\item\em Setter type which is used to set an \mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}}, this function should access one particular property field. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Efl__Class_ga59399f16c18cfe9e17bb77f895ba9c7d}\label{group__Efl__Class_ga59399f16c18cfe9e17bb77f895ba9c7d}} 
typedef \mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}}($\ast$ \mbox{\hyperlink{group__Efl__Class_ga59399f16c18cfe9e17bb77f895ba9c7d}{Efl\+\_\+\+Object\+\_\+\+Property\+\_\+\+Reflection\+\_\+\+Getter}}) (const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj)
\begin{DoxyCompactList}\small\item\em Getter type which is used to get an \mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}}, this function should access one particular property field. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Efl__Class_gaf35608a606ccb91e7c79cf291359d64b}\label{group__Efl__Class_gaf35608a606ccb91e7c79cf291359d64b}} 
typedef struct \mbox{\hyperlink{struct__Efl__Object__Property__Reflection}{\+\_\+\+Efl\+\_\+\+Object\+\_\+\+Property\+\_\+\+Reflection}} {\bfseries Efl\+\_\+\+Object\+\_\+\+Property\+\_\+\+Reflection}
\item 
\mbox{\Hypertarget{group__Efl__Class_gac0edb4f3d2fe73dcac5e815ee38504bd}\label{group__Efl__Class_gac0edb4f3d2fe73dcac5e815ee38504bd}} 
typedef struct \mbox{\hyperlink{struct__Efl__Object__Property__Reflection__Ops}{\+\_\+\+Efl\+\_\+\+Object\+\_\+\+Property\+\_\+\+Reflection\+\_\+\+Ops}} {\bfseries Efl\+\_\+\+Object\+\_\+\+Property\+\_\+\+Reflection\+\_\+\+Ops}
\item 
typedef struct \mbox{\hyperlink{struct__Efl__Class__Description}{\+\_\+\+Efl\+\_\+\+Class\+\_\+\+Description}} \mbox{\hyperlink{group__Efl__Class_ga98e69ecc6f7b09bc7b9c1283da4910d7}{Efl\+\_\+\+Class\+\_\+\+Description}}
\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \mbox{\hyperlink{group__Efl__Class_ga27cb5db05d985da8cb3dd0894d98b58f}{\+\_\+\+Efl\+\_\+\+Class\+\_\+\+Type}} \{ \newline
\mbox{\hyperlink{group__Efl__Class_gga27cb5db05d985da8cb3dd0894d98b58fae1f3b7d196b0681080544a1e41b39066}{E\+F\+L\+\_\+\+C\+L\+A\+S\+S\+\_\+\+T\+Y\+P\+E\+\_\+\+R\+E\+G\+U\+L\+AR}} = 0, 
\newline
\mbox{\hyperlink{group__Efl__Class_gga27cb5db05d985da8cb3dd0894d98b58fa9dac8f61177ee20e594da830ecf55f58}{E\+F\+L\+\_\+\+C\+L\+A\+S\+S\+\_\+\+T\+Y\+P\+E\+\_\+\+R\+E\+G\+U\+L\+A\+R\+\_\+\+N\+O\+\_\+\+I\+N\+S\+T\+A\+NT}}, 
\newline
\mbox{\hyperlink{group__Efl__Class_gga27cb5db05d985da8cb3dd0894d98b58fa9ba8f749ac06a38276120984f2003400}{E\+F\+L\+\_\+\+C\+L\+A\+S\+S\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+T\+E\+R\+F\+A\+CE}}, 
\newline
\mbox{\hyperlink{group__Efl__Class_gga27cb5db05d985da8cb3dd0894d98b58fac2382e76f4171b47b9c30459138833c6}{E\+F\+L\+\_\+\+C\+L\+A\+S\+S\+\_\+\+T\+Y\+P\+E\+\_\+\+M\+I\+X\+IN}}, 
\newline
{\bfseries E\+F\+L\+\_\+\+C\+L\+A\+S\+S\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+V\+A\+L\+ID}
 \}
\begin{DoxyCompactList}\small\item\em An enum representing the possible types of an Eo class. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
const \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}{Efl\+\_\+\+Class}} $\ast$ \mbox{\hyperlink{group__Efl__Class_ga9b907be02d387da70e16075737613cd2}{efl\+\_\+class\+\_\+new}} (const \mbox{\hyperlink{group__Efl__Class_ga98e69ecc6f7b09bc7b9c1283da4910d7}{Efl\+\_\+\+Class\+\_\+\+Description}} $\ast$desc, const \mbox{\hyperlink{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}{Efl\+\_\+\+Class}} $\ast$parent,...)
\begin{DoxyCompactList}\small\item\em Create a new class. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Efl__Class_ga06d3f2f3e0c14ef30047e072025c62aa}{efl\+\_\+class\+\_\+functions\+\_\+set}} (const \mbox{\hyperlink{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}{Efl\+\_\+\+Class}} $\ast$klass\+\_\+id, const \mbox{\hyperlink{struct__Efl__Object__Ops}{Efl\+\_\+\+Object\+\_\+\+Ops}} $\ast$object\+\_\+ops, const \mbox{\hyperlink{struct__Efl__Object__Property__Reflection__Ops}{Efl\+\_\+\+Object\+\_\+\+Property\+\_\+\+Reflection\+\_\+\+Ops}} $\ast$reflection\+\_\+table)
\begin{DoxyCompactList}\small\item\em Set the functions of a class. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Efl__Class_ga2543f1bfec65cd5e2e58b50e649f9525}{efl\+\_\+object\+\_\+override}} (\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, const \mbox{\hyperlink{struct__Efl__Object__Ops}{Efl\+\_\+\+Object\+\_\+\+Ops}} $\ast$ops)
\begin{DoxyCompactList}\small\item\em Override Eo functions of this object. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Efl__Class_ga5924dc6e04303305688de466cf13bae8}{efl\+\_\+isa}} (const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, const \mbox{\hyperlink{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}{Efl\+\_\+\+Class}} $\ast$klass)
\begin{DoxyCompactList}\small\item\em Check if an object \char`\"{}is a\char`\"{} klass. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} char $\ast$ \mbox{\hyperlink{group__Efl__Class_ga550b3017ab1bba1857754496bd76b379}{efl\+\_\+class\+\_\+name\+\_\+get}} (const \mbox{\hyperlink{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}{Efl\+\_\+\+Class}} $\ast$klass)
\begin{DoxyCompactList}\small\item\em Gets the name of the passed class. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} size\+\_\+t \mbox{\hyperlink{group__Efl__Class_gaf0d039b205381550b7cab104e00cd52f}{efl\+\_\+class\+\_\+memory\+\_\+size\+\_\+get}} (const \mbox{\hyperlink{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}{Efl\+\_\+\+Class}} $\ast$klass)
\begin{DoxyCompactList}\small\item\em Gets the amount of memory this class object would use. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} char $\ast$ \mbox{\hyperlink{group__Efl__Class_gaa83ee43af4b54d5003dddf5704fa272f}{efl\+\_\+debug\+\_\+name\+\_\+get}} (const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj\+\_\+id)
\begin{DoxyCompactList}\small\item\em Gets a debug name for this object. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}


\doxysubsection{Macro Definition Documentation}
\mbox{\Hypertarget{group__Efl__Class_ga3161daff203ef3a3ab4b12b7de2b5344}\label{group__Efl__Class_ga3161daff203ef3a3ab4b12b7de2b5344}} 
\index{Efl Class@{Efl Class}!EFL\_DEFINE\_CLASS@{EFL\_DEFINE\_CLASS}}
\index{EFL\_DEFINE\_CLASS@{EFL\_DEFINE\_CLASS}!Efl Class@{Efl Class}}
\doxysubsubsection{\texorpdfstring{EFL\_DEFINE\_CLASS}{EFL\_DEFINE\_CLASS}}
{\footnotesize\ttfamily \#define E\+F\+L\+\_\+\+D\+E\+F\+I\+N\+E\+\_\+\+C\+L\+A\+SS(\begin{DoxyParamCaption}\item[{}]{class\+\_\+get\+\_\+func\+\_\+name,  }\item[{}]{class\+\_\+desc,  }\item[{}]{parent\+\_\+class,  }\item[{}]{... }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keyword}{const} \mbox{\hyperlink{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}{Efl\_Class}} * \(\backslash\)}
\DoxyCodeLine{class\_get\_func\_name(\textcolor{keywordtype}{void}) \(\backslash\)}
\DoxyCodeLine{\{ \(\backslash\)}
\DoxyCodeLine{   const \mbox{\hyperlink{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}{Efl\_Class}} *\_tmp\_parent\_class; \(\backslash\)}
\DoxyCodeLine{   static \textcolor{keyword}{const} \mbox{\hyperlink{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}{Efl\_Class}} * \textcolor{keyword}{volatile} \_my\_class = NULL; \(\backslash\)}
\DoxyCodeLine{   static \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} \_my\_init\_generation = 1; \(\backslash\)}
\DoxyCodeLine{   if (\mbox{\hyperlink{group__Eina__Types__Group_ga70675a75a5fb3e9a51d5af985a1fd3aa}{EINA\_UNLIKELY}}(\mbox{\hyperlink{group__Eo_gaae670ec969c91058fba6351d20d53406}{\_efl\_object\_init\_generation}} != \_my\_init\_generation)) \(\backslash\)}
\DoxyCodeLine{     \{ \(\backslash\)}
\DoxyCodeLine{        \_my\_class = NULL; \textcolor{comment}{/* It's freed in efl\_object\_shutdown(). */} \(\backslash\)}
\DoxyCodeLine{     \} \(\backslash\)}
\DoxyCodeLine{   if (\mbox{\hyperlink{group__Eina__Types__Group_gaa9820797ec4c069e571f57e3c0c12216}{EINA\_LIKELY}}(!!\_my\_class)) \textcolor{keywordflow}{return} \_my\_class; \mbox{\hyperlink{group__Eina__Lock__Group_ga2ad27b83cf8562a41fe67557d8d2d753}{\(\backslash\)}}}
\DoxyCodeLine{\mbox{\hyperlink{group__Eina__Lock__Group_ga2ad27b83cf8562a41fe67557d8d2d753}{   \(\backslash\)}}}
\DoxyCodeLine{\mbox{\hyperlink{group__Eina__Lock__Group_ga2ad27b83cf8562a41fe67557d8d2d753}{   eina\_lock\_take}}(\&\mbox{\hyperlink{group__Eo_ga330cefab26ab90f1153459ab69ab41d8}{\_efl\_class\_creation\_lock}}); \(\backslash\)}
\DoxyCodeLine{   if (!!\_my\_class) \(\backslash\)}
\DoxyCodeLine{     \{ \(\backslash\)}
\DoxyCodeLine{        eina\_lock\_release(\&\mbox{\hyperlink{group__Eo_ga330cefab26ab90f1153459ab69ab41d8}{\_efl\_class\_creation\_lock}}); \(\backslash\)}
\DoxyCodeLine{        return \_my\_class; \(\backslash\)}
\DoxyCodeLine{     \} \(\backslash\)}
\DoxyCodeLine{   \_tmp\_parent\_class = parent\_class; \(\backslash\)}
\DoxyCodeLine{   \_my\_class = \mbox{\hyperlink{group__Efl__Class_ga9b907be02d387da70e16075737613cd2}{efl\_class\_new}}(class\_desc, \_tmp\_parent\_class, \_\_VA\_ARGS\_\_); \(\backslash\)}
\DoxyCodeLine{   \_my\_init\_generation = \mbox{\hyperlink{group__Eo_gaae670ec969c91058fba6351d20d53406}{\_efl\_object\_init\_generation}}; \(\backslash\)}
\DoxyCodeLine{   eina\_lock\_release(\&\mbox{\hyperlink{group__Eo_ga330cefab26ab90f1153459ab69ab41d8}{\_efl\_class\_creation\_lock}}); \(\backslash\)}
\DoxyCodeLine{   \(\backslash\)}
\DoxyCodeLine{   return \_my\_class; \(\backslash\)}
\DoxyCodeLine{\}}

\end{DoxyCode}
A convenient macro to be used for creating the class\+\_\+get function. This macro is fairly simple and makes for better code. 
\begin{DoxyParams}{Parameters}
{\em class\+\_\+get\+\_\+func\+\_\+name} & the name of the wanted class\+\_\+get function name. \\
\hline
{\em class\+\_\+desc} & the class description. \\
\hline
{\em parent\+\_\+class} & The parent class for the function. See \mbox{\hyperlink{group__Efl__Class_ga9b907be02d387da70e16075737613cd2}{efl\+\_\+class\+\_\+new()}} for more information. \\
\hline
{\em ...} & List of extensions. See \mbox{\hyperlink{group__Efl__Class_ga9b907be02d387da70e16075737613cd2}{efl\+\_\+class\+\_\+new()}} for more information.\\
\hline
\end{DoxyParams}
You must use this macro if you want thread safety in class creation. \mbox{\Hypertarget{group__Efl__Class_ga2cc2991fe8cb6143c1e042fade1d150f}\label{group__Efl__Class_ga2cc2991fe8cb6143c1e042fade1d150f}} 
\index{Efl Class@{Efl Class}!EO\_VERSION@{EO\_VERSION}}
\index{EO\_VERSION@{EO\_VERSION}!Efl Class@{Efl Class}}
\doxysubsubsection{\texorpdfstring{EO\_VERSION}{EO\_VERSION}}
{\footnotesize\ttfamily \#define E\+O\+\_\+\+V\+E\+R\+S\+I\+ON~2}

The current version of EO. \mbox{\Hypertarget{group__Efl__Class_gabb9e425bb7762abd327e9667ca0c9269}\label{group__Efl__Class_gabb9e425bb7762abd327e9667ca0c9269}} 
\index{Efl Class@{Efl Class}!EFL\_OPS\_DEFINE@{EFL\_OPS\_DEFINE}}
\index{EFL\_OPS\_DEFINE@{EFL\_OPS\_DEFINE}!Efl Class@{Efl Class}}
\doxysubsubsection{\texorpdfstring{EFL\_OPS\_DEFINE}{EFL\_OPS\_DEFINE}}
{\footnotesize\ttfamily \#define E\+F\+L\+\_\+\+O\+P\+S\+\_\+\+D\+E\+F\+I\+NE(\begin{DoxyParamCaption}\item[{}]{ops,  }\item[{}]{... }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keyword}{const} \mbox{\hyperlink{struct__Efl__Op__Description}{Efl\_Op\_Description}} \_\#\#ops\#\#\_descs[] = \{ \_\_VA\_ARGS\_\_ \}; \(\backslash\)}
\DoxyCodeLine{   const \mbox{\hyperlink{struct__Efl__Object__Ops}{Efl\_Object\_Ops}} ops = \{ \_\#\#ops\#\#\_descs, \mbox{\hyperlink{group__Eina__Types__Group_ga7c1b6f81660b4e30516169e9e7d3261c}{EINA\_C\_ARRAY\_LENGTH}}(\_\#\#ops\#\#\_descs) \}}

\end{DoxyCode}


Define an array of override functions for \mbox{\hyperlink{group__Efl__Class_ga2543f1bfec65cd5e2e58b50e649f9525}{efl\+\_\+object\+\_\+override}}. 


\begin{DoxyParams}{Parameters}
{\em ops} & A name for the Efl\+\_\+\+Object\+\_\+\+Ops local variable to define \\
\hline
{\em ...} & A comma separated list of Efl\+\_\+\+Object\+\_\+\+Op overrides, using \#\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+O\+P\+\_\+\+F\+U\+NC or \#\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+O\+P\+\_\+\+C\+L\+A\+S\+S\+\_\+\+F\+U\+NC\\
\hline
\end{DoxyParams}
This can be used as follows\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{\mbox{\hyperlink{group__Efl__Class_gabb9e425bb7762abd327e9667ca0c9269}{EFL\_OPS\_DEFINE}}(ops, EFL\_OBJECT\_OP\_FUNC(public\_func, \_my\_func));}
\DoxyCodeLine{\mbox{\hyperlink{group__Efl__Class_ga2543f1bfec65cd5e2e58b50e649f9525}{efl\_object\_override}}(obj, \&ops);}
\end{DoxyCode}


\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Efl__Class_ga2543f1bfec65cd5e2e58b50e649f9525}{efl\+\_\+object\+\_\+override}} 
\end{DoxySeeAlso}


\doxysubsection{Typedef Documentation}
\mbox{\Hypertarget{group__Efl__Class_ga09d772acf2ffed4a891dbbd55d88e120}\label{group__Efl__Class_ga09d772acf2ffed4a891dbbd55d88e120}} 
\index{Efl Class@{Efl Class}!Efl\_Class\_Type@{Efl\_Class\_Type}}
\index{Efl\_Class\_Type@{Efl\_Class\_Type}!Efl Class@{Efl Class}}
\doxysubsubsection{\texorpdfstring{Efl\_Class\_Type}{Efl\_Class\_Type}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Efl__Class_ga09d772acf2ffed4a891dbbd55d88e120}{Efl\+\_\+\+Class\+\_\+\+Type}}}

A convenience typedef for \mbox{\hyperlink{group__Efl__Class_ga27cb5db05d985da8cb3dd0894d98b58f}{\+\_\+\+Efl\+\_\+\+Class\+\_\+\+Type}}. \mbox{\Hypertarget{group__Efl__Class_ga98e69ecc6f7b09bc7b9c1283da4910d7}\label{group__Efl__Class_ga98e69ecc6f7b09bc7b9c1283da4910d7}} 
\index{Efl Class@{Efl Class}!Efl\_Class\_Description@{Efl\_Class\_Description}}
\index{Efl\_Class\_Description@{Efl\_Class\_Description}!Efl Class@{Efl Class}}
\doxysubsubsection{\texorpdfstring{Efl\_Class\_Description}{Efl\_Class\_Description}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Efl__Class_ga98e69ecc6f7b09bc7b9c1283da4910d7}{Efl\+\_\+\+Class\+\_\+\+Description}}}

A convenience typedef for \mbox{\hyperlink{struct__Efl__Class__Description}{\+\_\+\+Efl\+\_\+\+Class\+\_\+\+Description}} 

\doxysubsection{Enumeration Type Documentation}
\mbox{\Hypertarget{group__Efl__Class_ga27cb5db05d985da8cb3dd0894d98b58f}\label{group__Efl__Class_ga27cb5db05d985da8cb3dd0894d98b58f}} 
\index{Efl Class@{Efl Class}!\_Efl\_Class\_Type@{\_Efl\_Class\_Type}}
\index{\_Efl\_Class\_Type@{\_Efl\_Class\_Type}!Efl Class@{Efl Class}}
\doxysubsubsection{\texorpdfstring{\_Efl\_Class\_Type}{\_Efl\_Class\_Type}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{group__Efl__Class_ga27cb5db05d985da8cb3dd0894d98b58f}{\+\_\+\+Efl\+\_\+\+Class\+\_\+\+Type}}}



An enum representing the possible types of an Eo class. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{EFL\_CLASS\_TYPE\_REGULAR@{EFL\_CLASS\_TYPE\_REGULAR}!Efl Class@{Efl Class}}\index{Efl Class@{Efl Class}!EFL\_CLASS\_TYPE\_REGULAR@{EFL\_CLASS\_TYPE\_REGULAR}}}\mbox{\Hypertarget{group__Efl__Class_gga27cb5db05d985da8cb3dd0894d98b58fae1f3b7d196b0681080544a1e41b39066}\label{group__Efl__Class_gga27cb5db05d985da8cb3dd0894d98b58fae1f3b7d196b0681080544a1e41b39066}} 
E\+F\+L\+\_\+\+C\+L\+A\+S\+S\+\_\+\+T\+Y\+P\+E\+\_\+\+R\+E\+G\+U\+L\+AR&Regular class. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EFL\_CLASS\_TYPE\_REGULAR\_NO\_INSTANT@{EFL\_CLASS\_TYPE\_REGULAR\_NO\_INSTANT}!Efl Class@{Efl Class}}\index{Efl Class@{Efl Class}!EFL\_CLASS\_TYPE\_REGULAR\_NO\_INSTANT@{EFL\_CLASS\_TYPE\_REGULAR\_NO\_INSTANT}}}\mbox{\Hypertarget{group__Efl__Class_gga27cb5db05d985da8cb3dd0894d98b58fa9dac8f61177ee20e594da830ecf55f58}\label{group__Efl__Class_gga27cb5db05d985da8cb3dd0894d98b58fa9dac8f61177ee20e594da830ecf55f58}} 
E\+F\+L\+\_\+\+C\+L\+A\+S\+S\+\_\+\+T\+Y\+P\+E\+\_\+\+R\+E\+G\+U\+L\+A\+R\+\_\+\+N\+O\+\_\+\+I\+N\+S\+T\+A\+NT&Regular non instant-\/able class. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EFL\_CLASS\_TYPE\_INTERFACE@{EFL\_CLASS\_TYPE\_INTERFACE}!Efl Class@{Efl Class}}\index{Efl Class@{Efl Class}!EFL\_CLASS\_TYPE\_INTERFACE@{EFL\_CLASS\_TYPE\_INTERFACE}}}\mbox{\Hypertarget{group__Efl__Class_gga27cb5db05d985da8cb3dd0894d98b58fa9ba8f749ac06a38276120984f2003400}\label{group__Efl__Class_gga27cb5db05d985da8cb3dd0894d98b58fa9ba8f749ac06a38276120984f2003400}} 
E\+F\+L\+\_\+\+C\+L\+A\+S\+S\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+T\+E\+R\+F\+A\+CE&Interface. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EFL\_CLASS\_TYPE\_MIXIN@{EFL\_CLASS\_TYPE\_MIXIN}!Efl Class@{Efl Class}}\index{Efl Class@{Efl Class}!EFL\_CLASS\_TYPE\_MIXIN@{EFL\_CLASS\_TYPE\_MIXIN}}}\mbox{\Hypertarget{group__Efl__Class_gga27cb5db05d985da8cb3dd0894d98b58fac2382e76f4171b47b9c30459138833c6}\label{group__Efl__Class_gga27cb5db05d985da8cb3dd0894d98b58fac2382e76f4171b47b9c30459138833c6}} 
E\+F\+L\+\_\+\+C\+L\+A\+S\+S\+\_\+\+T\+Y\+P\+E\+\_\+\+M\+I\+X\+IN&Mixin. \\
\hline

\end{DoxyEnumFields}


\doxysubsection{Function Documentation}
\mbox{\Hypertarget{group__Efl__Class_ga9b907be02d387da70e16075737613cd2}\label{group__Efl__Class_ga9b907be02d387da70e16075737613cd2}} 
\index{Efl Class@{Efl Class}!efl\_class\_new@{efl\_class\_new}}
\index{efl\_class\_new@{efl\_class\_new}!Efl Class@{Efl Class}}
\doxysubsubsection{\texorpdfstring{efl\_class\_new()}{efl\_class\_new()}}
{\footnotesize\ttfamily const \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}{Efl\+\_\+\+Class}}$\ast$ efl\+\_\+class\+\_\+new (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Efl__Class_ga98e69ecc6f7b09bc7b9c1283da4910d7}{Efl\+\_\+\+Class\+\_\+\+Description}} $\ast$}]{desc,  }\item[{const \mbox{\hyperlink{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}{Efl\+\_\+\+Class}} $\ast$}]{parent,  }\item[{}]{... }\end{DoxyParamCaption})}



Create a new class. 


\begin{DoxyParams}{Parameters}
{\em desc} & the class description to create the class with. \\
\hline
{\em parent} & the class to inherit from. \\
\hline
{\em ...} & A N\+U\+LL terminated list of extensions (interfaces, mixins and the classes of any composite objects). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The new class\textquotesingle{} handle on success or N\+U\+LL otherwise.
\end{DoxyReturn}
\begin{DoxyNote}{Note}
There are two types of extensions, mixins and none-\/mixins. Mixins are inheriting both the A\+PI A\+ND the implementation. Non-\/mixins only inherit the A\+PI, so a class which inherits a non-\/mixin as an extension must implement the api.
\end{DoxyNote}
Use \mbox{\hyperlink{group__Efl__Class_ga3161daff203ef3a3ab4b12b7de2b5344}{E\+F\+L\+\_\+\+D\+E\+F\+I\+N\+E\+\_\+\+C\+L\+A\+SS}}. This will provide thread safety and other features easily.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Efl__Class_ga3161daff203ef3a3ab4b12b7de2b5344}{E\+F\+L\+\_\+\+D\+E\+F\+I\+N\+E\+\_\+\+C\+L\+A\+SS}} 
\end{DoxySeeAlso}


References \+\_\+efl\+\_\+class\+\_\+creation\+\_\+lock, \+\_\+\+Efl\+\_\+\+Class\+\_\+\+Description\+::data\+\_\+size, D\+BG, efl\+\_\+class\+\_\+functions\+\_\+set(), E\+F\+L\+\_\+\+C\+L\+A\+S\+S\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+T\+E\+R\+F\+A\+CE, E\+F\+L\+\_\+\+C\+L\+A\+S\+S\+\_\+\+T\+Y\+P\+E\+\_\+\+M\+I\+X\+IN, E\+F\+L\+\_\+\+C\+L\+A\+S\+S\+\_\+\+T\+Y\+P\+E\+\_\+\+R\+E\+G\+U\+L\+AR, E\+F\+L\+\_\+\+C\+L\+A\+S\+S\+\_\+\+T\+Y\+P\+E\+\_\+\+R\+E\+G\+U\+L\+A\+R\+\_\+\+N\+O\+\_\+\+I\+N\+S\+T\+A\+NT, E\+I\+N\+A\+\_\+\+L\+I\+K\+E\+LY, eina\+\_\+list\+\_\+append(), eina\+\_\+list\+\_\+count(), E\+I\+N\+A\+\_\+\+L\+I\+S\+T\+\_\+\+F\+O\+R\+E\+A\+CH, eina\+\_\+list\+\_\+free(), E\+I\+N\+A\+\_\+\+L\+I\+S\+T\+\_\+\+F\+R\+EE, eina\+\_\+list\+\_\+prepend(), eina\+\_\+list\+\_\+remove(), eina\+\_\+lock\+\_\+release(), eina\+\_\+lock\+\_\+take(), E\+I\+N\+A\+\_\+\+S\+A\+F\+E\+T\+Y\+\_\+\+O\+N\+\_\+\+F\+A\+L\+S\+E\+\_\+\+R\+E\+T\+U\+R\+N\+\_\+\+V\+AL, E\+I\+N\+A\+\_\+\+S\+A\+F\+E\+T\+Y\+\_\+\+O\+N\+\_\+\+N\+U\+L\+L\+\_\+\+R\+E\+T\+U\+R\+N\+\_\+\+V\+AL, eina\+\_\+spinlock\+\_\+new(), E\+RR, \+\_\+\+Efl\+\_\+\+Class\+\_\+\+Description\+::name, and \+\_\+\+Efl\+\_\+\+Class\+\_\+\+Description\+::type.

\mbox{\Hypertarget{group__Efl__Class_ga06d3f2f3e0c14ef30047e072025c62aa}\label{group__Efl__Class_ga06d3f2f3e0c14ef30047e072025c62aa}} 
\index{Efl Class@{Efl Class}!efl\_class\_functions\_set@{efl\_class\_functions\_set}}
\index{efl\_class\_functions\_set@{efl\_class\_functions\_set}!Efl Class@{Efl Class}}
\doxysubsubsection{\texorpdfstring{efl\_class\_functions\_set()}{efl\_class\_functions\_set()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} efl\+\_\+class\+\_\+functions\+\_\+set (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}{Efl\+\_\+\+Class}} $\ast$}]{klass\+\_\+id,  }\item[{const \mbox{\hyperlink{struct__Efl__Object__Ops}{Efl\+\_\+\+Object\+\_\+\+Ops}} $\ast$}]{object\+\_\+ops,  }\item[{const \mbox{\hyperlink{struct__Efl__Object__Property__Reflection__Ops}{Efl\+\_\+\+Object\+\_\+\+Property\+\_\+\+Reflection\+\_\+\+Ops}} $\ast$}]{reflection\+\_\+table }\end{DoxyParamCaption})}



Set the functions of a class. 


\begin{DoxyParams}{Parameters}
{\em klass\+\_\+id} & the class whose functions we are setting. \\
\hline
{\em object\+\_\+ops} & The function structure we are setting for object functions \\
\hline
{\em class\+\_\+ops} & The function structure we are setting for class functions \\
\hline
{\em reflection\+\_\+table} & The reflection table to use within eo \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
True on success, False otherwise.
\end{DoxyReturn}
This should only be called from within the initializer function. The reflection\+\_\+table contains a getter and setter per property name. Which are called when either \mbox{\hyperlink{group__Eo_ga0c62e41f9dde02ad7d1b7219da54e7e1}{efl\+\_\+property\+\_\+reflection\+\_\+set()}} or \mbox{\hyperlink{group__Eo_ga3eee423bd46fe57f764c0dca086e6839}{efl\+\_\+property\+\_\+reflection\+\_\+get()}} is called. \begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Efl__Class_ga3161daff203ef3a3ab4b12b7de2b5344}{E\+F\+L\+\_\+\+D\+E\+F\+I\+N\+E\+\_\+\+C\+L\+A\+SS}} 
\end{DoxySeeAlso}


References \+\_\+\+Efl\+\_\+\+Object\+\_\+\+Ops\+::count, E\+I\+N\+A\+\_\+\+F\+A\+L\+SE, E\+I\+N\+A\+\_\+\+T\+R\+UE, and E\+RR.



Referenced by efl\+\_\+class\+\_\+new().

\mbox{\Hypertarget{group__Efl__Class_ga2543f1bfec65cd5e2e58b50e649f9525}\label{group__Efl__Class_ga2543f1bfec65cd5e2e58b50e649f9525}} 
\index{Efl Class@{Efl Class}!efl\_object\_override@{efl\_object\_override}}
\index{efl\_object\_override@{efl\_object\_override}!Efl Class@{Efl Class}}
\doxysubsubsection{\texorpdfstring{efl\_object\_override()}{efl\_object\_override()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} efl\+\_\+object\+\_\+override (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{const \mbox{\hyperlink{struct__Efl__Object__Ops}{Efl\+\_\+\+Object\+\_\+\+Ops}} $\ast$}]{ops }\end{DoxyParamCaption})}



Override Eo functions of this object. 


\begin{DoxyParams}{Parameters}
{\em ops} & The op description to override with. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success, false otherwise.
\end{DoxyReturn}
This lets you override all of the Eo functions of this object (this one included) and replace them with ad-\/hoc implementation. The contents of the array are copied so they can reside on the stack for instance.

You are only allowed to override functions that are defined in the class or any of its interfaces (that is, efl\+\_\+isa returning true).

If {\ttfamily ops} is \#\+N\+U\+LL, this will revert the {\ttfamily obj} to its original class without any function overrides.

It is not possible to override a function table of an object when it\textquotesingle{}s already been overridden. Call efl\+\_\+object\+\_\+override(obj, N\+U\+L\+L) first if you really need to do that.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Efl__Class_gabb9e425bb7762abd327e9667ca0c9269}{E\+F\+L\+\_\+\+O\+P\+S\+\_\+\+D\+E\+F\+I\+NE}} 
\end{DoxySeeAlso}


References E\+I\+N\+A\+\_\+\+F\+A\+L\+SE, E\+I\+N\+A\+\_\+\+T\+R\+UE, and E\+RR.



Referenced by efl\+\_\+reuse().

\mbox{\Hypertarget{group__Efl__Class_ga5924dc6e04303305688de466cf13bae8}\label{group__Efl__Class_ga5924dc6e04303305688de466cf13bae8}} 
\index{Efl Class@{Efl Class}!efl\_isa@{efl\_isa}}
\index{efl\_isa@{efl\_isa}!Efl Class@{Efl Class}}
\doxysubsubsection{\texorpdfstring{efl\_isa()}{efl\_isa()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} efl\+\_\+isa (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{const \mbox{\hyperlink{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}{Efl\+\_\+\+Class}} $\ast$}]{klass }\end{DoxyParamCaption})}



Check if an object \char`\"{}is a\char`\"{} klass. 


\begin{DoxyParams}{Parameters}
{\em obj} & The object to check \\
\hline
{\em klass} & The klass to check against. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+UE} if obj implements klass or is an Efl\+\_\+\+Class which inherits from/implements klass, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} otherwise.
\end{DoxyReturn}
Notice\+: This function does not support composite objects. Note\+: that an Efl\+\_\+\+Class is also an Efl\+\_\+\+Object, so if you pass an Efl\+\_\+\+Class as obj, it will check if that class contain klass. 

References E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+S\+H\+A\+R\+ED, E\+I\+N\+A\+\_\+\+F\+A\+L\+SE, E\+I\+N\+A\+\_\+\+L\+I\+K\+E\+LY, eina\+\_\+lock\+\_\+release(), eina\+\_\+lock\+\_\+take(), E\+I\+N\+A\+\_\+\+T\+R\+UE, E\+I\+N\+A\+\_\+\+U\+N\+L\+I\+K\+E\+LY, and E\+RR.



Referenced by ecore\+\_\+con\+\_\+client\+\_\+fd\+\_\+get(), ecore\+\_\+con\+\_\+client\+\_\+flush(), ecore\+\_\+con\+\_\+server\+\_\+fd\+\_\+get(), ecore\+\_\+con\+\_\+server\+\_\+flush(), ecore\+\_\+con\+\_\+ssl\+\_\+client\+\_\+upgrade(), ecore\+\_\+con\+\_\+ssl\+\_\+server\+\_\+upgrade(), ecore\+\_\+exe\+\_\+auto\+\_\+limits\+\_\+set(), ecore\+\_\+exe\+\_\+callback\+\_\+pre\+\_\+free\+\_\+set(), ecore\+\_\+exe\+\_\+close\+\_\+stdin(), ecore\+\_\+exe\+\_\+data\+\_\+get(), ecore\+\_\+exe\+\_\+data\+\_\+set(), ecore\+\_\+exe\+\_\+event\+\_\+data\+\_\+get(), ecore\+\_\+exe\+\_\+flags\+\_\+get(), ecore\+\_\+exe\+\_\+free(), ecore\+\_\+exe\+\_\+hup(), ecore\+\_\+exe\+\_\+interrupt(), ecore\+\_\+exe\+\_\+kill(), ecore\+\_\+exe\+\_\+pid\+\_\+get(), ecore\+\_\+exe\+\_\+quit(), ecore\+\_\+exe\+\_\+send(), ecore\+\_\+exe\+\_\+signal(), ecore\+\_\+exe\+\_\+tag\+\_\+get(), ecore\+\_\+exe\+\_\+tag\+\_\+set(), ecore\+\_\+exe\+\_\+terminate(), ecore\+\_\+ipc\+\_\+client\+\_\+ip\+\_\+get(), ecore\+\_\+ipc\+\_\+server\+\_\+ip\+\_\+get(), edje\+\_\+edit\+\_\+object\+\_\+add(), efl\+\_\+class\+\_\+override\+\_\+register(), elm\+\_\+image\+\_\+async\+\_\+open\+\_\+set(), elm\+\_\+image\+\_\+smooth\+\_\+get(), elm\+\_\+image\+\_\+smooth\+\_\+set(), elm\+\_\+layout\+\_\+edje\+\_\+get(), elm\+\_\+layout\+\_\+signal\+\_\+callback\+\_\+add(), elm\+\_\+layout\+\_\+signal\+\_\+callback\+\_\+del(), elm\+\_\+layout\+\_\+text\+\_\+set(), elm\+\_\+object\+\_\+domain\+\_\+translatable\+\_\+part\+\_\+text\+\_\+set(), elm\+\_\+object\+\_\+focus\+\_\+next(), elm\+\_\+object\+\_\+focus\+\_\+next\+\_\+object\+\_\+set(), elm\+\_\+object\+\_\+focus\+\_\+region\+\_\+show\+\_\+mode\+\_\+get(), elm\+\_\+object\+\_\+focus\+\_\+region\+\_\+show\+\_\+mode\+\_\+set(), elm\+\_\+object\+\_\+focus\+\_\+set(), elm\+\_\+object\+\_\+focused\+\_\+item\+\_\+get(), elm\+\_\+object\+\_\+focused\+\_\+object\+\_\+get(), elm\+\_\+object\+\_\+orientation\+\_\+mode\+\_\+disabled\+\_\+get(), elm\+\_\+object\+\_\+orientation\+\_\+mode\+\_\+disabled\+\_\+set(), elm\+\_\+object\+\_\+scroll\+\_\+item\+\_\+loop\+\_\+enabled\+\_\+get(), elm\+\_\+object\+\_\+scroll\+\_\+item\+\_\+loop\+\_\+enabled\+\_\+set(), elm\+\_\+object\+\_\+translatable\+\_\+part\+\_\+text\+\_\+get(), elm\+\_\+win\+\_\+resize\+\_\+object\+\_\+add(), emotion\+\_\+object\+\_\+add(), evas\+\_\+device\+\_\+parent\+\_\+get(), evas\+\_\+event\+\_\+feed\+\_\+axis\+\_\+update(), evas\+\_\+event\+\_\+feed\+\_\+key\+\_\+down(), evas\+\_\+event\+\_\+feed\+\_\+key\+\_\+down\+\_\+with\+\_\+keycode(), evas\+\_\+event\+\_\+feed\+\_\+key\+\_\+up(), evas\+\_\+event\+\_\+feed\+\_\+key\+\_\+up\+\_\+with\+\_\+keycode(), evas\+\_\+event\+\_\+feed\+\_\+mouse\+\_\+cancel(), evas\+\_\+event\+\_\+feed\+\_\+mouse\+\_\+down(), evas\+\_\+event\+\_\+feed\+\_\+mouse\+\_\+in(), evas\+\_\+event\+\_\+feed\+\_\+mouse\+\_\+move(), evas\+\_\+event\+\_\+feed\+\_\+mouse\+\_\+out(), evas\+\_\+event\+\_\+feed\+\_\+mouse\+\_\+up(), evas\+\_\+event\+\_\+feed\+\_\+mouse\+\_\+wheel(), evas\+\_\+event\+\_\+input\+\_\+mouse\+\_\+move(), evas\+\_\+event\+\_\+refeed\+\_\+event(), evas\+\_\+event\+\_\+thaw\+\_\+eval(), evas\+\_\+object\+\_\+box\+\_\+add(), evas\+\_\+object\+\_\+data\+\_\+del(), evas\+\_\+object\+\_\+data\+\_\+get(), evas\+\_\+object\+\_\+data\+\_\+set(), evas\+\_\+object\+\_\+del(), evas\+\_\+object\+\_\+grid\+\_\+add(), evas\+\_\+object\+\_\+image\+\_\+add(), evas\+\_\+object\+\_\+name\+\_\+get(), evas\+\_\+object\+\_\+name\+\_\+set(), evas\+\_\+object\+\_\+polygon\+\_\+add(), evas\+\_\+object\+\_\+propagate\+\_\+events\+\_\+get(), evas\+\_\+object\+\_\+rectangle\+\_\+add(), evas\+\_\+object\+\_\+smart\+\_\+add(), evas\+\_\+object\+\_\+smart\+\_\+type\+\_\+check(), evas\+\_\+object\+\_\+smart\+\_\+type\+\_\+check\+\_\+ptr(), evas\+\_\+object\+\_\+table\+\_\+add(), evas\+\_\+object\+\_\+text\+\_\+add(), evas\+\_\+object\+\_\+textgrid\+\_\+add(), and evas\+\_\+object\+\_\+top\+\_\+at\+\_\+pointer\+\_\+get().

\mbox{\Hypertarget{group__Efl__Class_ga550b3017ab1bba1857754496bd76b379}\label{group__Efl__Class_ga550b3017ab1bba1857754496bd76b379}} 
\index{Efl Class@{Efl Class}!efl\_class\_name\_get@{efl\_class\_name\_get}}
\index{efl\_class\_name\_get@{efl\_class\_name\_get}!Efl Class@{Efl Class}}
\doxysubsubsection{\texorpdfstring{efl\_class\_name\_get()}{efl\_class\_name\_get()}}
{\footnotesize\ttfamily const \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} char$\ast$ efl\+\_\+class\+\_\+name\+\_\+get (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}{Efl\+\_\+\+Class}} $\ast$}]{klass }\end{DoxyParamCaption})}



Gets the name of the passed class. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em klass} & The class (or object) to work on. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The class\textquotesingle{} name.
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_ga8c70bdcb47d62aca76641c122179f1d4}{efl\+\_\+class\+\_\+get()}} 
\end{DoxySeeAlso}


Referenced by ecore\+\_\+con\+\_\+server\+\_\+add(), ecore\+\_\+con\+\_\+server\+\_\+connect(), efl\+\_\+object\+\_\+shutdown(), and evas\+\_\+object\+\_\+del().

\mbox{\Hypertarget{group__Efl__Class_gaf0d039b205381550b7cab104e00cd52f}\label{group__Efl__Class_gaf0d039b205381550b7cab104e00cd52f}} 
\index{Efl Class@{Efl Class}!efl\_class\_memory\_size\_get@{efl\_class\_memory\_size\_get}}
\index{efl\_class\_memory\_size\_get@{efl\_class\_memory\_size\_get}!Efl Class@{Efl Class}}
\doxysubsubsection{\texorpdfstring{efl\_class\_memory\_size\_get()}{efl\_class\_memory\_size\_get()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} size\+\_\+t efl\+\_\+class\+\_\+memory\+\_\+size\+\_\+get (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}{Efl\+\_\+\+Class}} $\ast$}]{klass }\end{DoxyParamCaption})}



Gets the amount of memory this class object would use. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em klass} & The class (or object) to work on. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The amount of memory in Bytes.
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_ga8c70bdcb47d62aca76641c122179f1d4}{efl\+\_\+class\+\_\+get()}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Efl__Class_gaa83ee43af4b54d5003dddf5704fa272f}\label{group__Efl__Class_gaa83ee43af4b54d5003dddf5704fa272f}} 
\index{Efl Class@{Efl Class}!efl\_debug\_name\_get@{efl\_debug\_name\_get}}
\index{efl\_debug\_name\_get@{efl\_debug\_name\_get}!Efl Class@{Efl Class}}
\doxysubsubsection{\texorpdfstring{efl\_debug\_name\_get()}{efl\_debug\_name\_get()}}
{\footnotesize\ttfamily const \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} char$\ast$ efl\+\_\+debug\+\_\+name\+\_\+get (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj\+\_\+id }\end{DoxyParamCaption})}



Gets a debug name for this object. 


\begin{DoxyParams}{Parameters}
{\em obj\+\_\+id} & The object (or class) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A name to use in logs and for other debugging purposes
\end{DoxyReturn}
Note that subclasses can override Efl.\+Object \char`\"{}debug\+\_\+name\+\_\+override\char`\"{} to provide more meaningful debug strings. The standard format includes the class name, the object ID (this {\ttfamily obj\+\_\+id}), the reference count and optionally the object name (as defined by Efl.\+Object.\+name).

This might return a temporary string, as created by eina\+\_\+slstr, which means that a main loop should probably be running.

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


References efl\+\_\+cast(), E\+F\+L\+\_\+\+C\+L\+A\+S\+S\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+T\+E\+R\+F\+A\+CE, E\+F\+L\+\_\+\+C\+L\+A\+S\+S\+\_\+\+T\+Y\+P\+E\+\_\+\+M\+I\+X\+IN, E\+F\+L\+\_\+\+C\+L\+A\+S\+S\+\_\+\+T\+Y\+P\+E\+\_\+\+R\+E\+G\+U\+L\+AR, E\+F\+L\+\_\+\+C\+L\+A\+S\+S\+\_\+\+T\+Y\+P\+E\+\_\+\+R\+E\+G\+U\+L\+A\+R\+\_\+\+N\+O\+\_\+\+I\+N\+S\+T\+A\+NT, efl\+\_\+super(), E\+I\+N\+A\+\_\+\+F\+A\+L\+SE, eina\+\_\+strbuf\+\_\+append\+\_\+printf(), and eina\+\_\+strbuf\+\_\+new().



Referenced by efl\+\_\+del().

