\hypertarget{struct__Elm__Prefs__Item__Iface}{}\section{\+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface Struct Reference}
\label{struct__Elm__Prefs__Item__Iface}\index{\+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface@{\+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface}}


Interface between items of the \mbox{\hyperlink{group__Elm__Prefs_elm-prefs-widget}{Prefs}} widget and the real widgets implementing them.  


\subsection*{Data Fields}
\begin{DoxyCompactItemize}
\item 
unsigned int \mbox{\hyperlink{struct__Elm__Prefs__Item__Iface_a80a01b8632acecd4381cb261cd2e2477}{abi\+\_\+version}}
\begin{DoxyCompactList}\small\item\em always use\+: \end{DoxyCompactList}\item 
\mbox{\Hypertarget{struct__Elm__Prefs__Item__Iface_a84484623a0f810c2045e4b0b5a24472e}\label{struct__Elm__Prefs__Item__Iface_a84484623a0f810c2045e4b0b5a24472e}} 
const \mbox{\hyperlink{group__Elm__Prefs_ga7525bee64184478acad1e807c3e570ae}{Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Type}} $\ast$ \mbox{\hyperlink{struct__Elm__Prefs__Item__Iface_a84484623a0f810c2045e4b0b5a24472e}{types}}
\begin{DoxyCompactList}\small\item\em types of prefs items supported by the widget, \mbox{\hyperlink{group__Elm__Prefs_gga7525bee64184478acad1e807c3e570aea93fd74dd99dcfbc4b00e6598b7738f85}{E\+L\+M\+\_\+\+P\+R\+E\+F\+S\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+N\+K\+N\+O\+WN}} terminated \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$($\ast$ \mbox{\hyperlink{struct__Elm__Prefs__Item__Iface_a71827254b18dc00f9afeba2562dfcc60}{add}} )(const \mbox{\hyperlink{struct__Elm__Prefs__Item__Iface}{Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface}} $\ast$iface, \mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$prefs, const \mbox{\hyperlink{group__Elm__Prefs_ga7525bee64184478acad1e807c3e570ae}{Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Type}} type, const \mbox{\hyperlink{union__Elm__Prefs__Item__Spec}{Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Spec}} spec, \mbox{\hyperlink{group__Elm__Prefs_ga47ee0cfc6e4dad8fb4fc1960c78a1b6b}{Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Changed\+\_\+\+Cb}} it\+\_\+changed\+\_\+cb)
\begin{DoxyCompactList}\small\item\em Function to instantiate the item widget. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}}($\ast$ \mbox{\hyperlink{struct__Elm__Prefs__Item__Iface_aa0c55003054cf0a8f66a0b0176f8bb45}{value\+\_\+set}} )(\mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$obj, \mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$value)
\begin{DoxyCompactList}\small\item\em Function to set the value on the item widget. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}}($\ast$ \mbox{\hyperlink{struct__Elm__Prefs__Item__Iface_a105d68bc134b7ed076ab0764edbe971e}{value\+\_\+get}} )(\mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$obj, \mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$value)
\begin{DoxyCompactList}\small\item\em Function to set the value on the item widget. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{struct__Elm__Prefs__Item__Iface_a2edd2c565cb451d12dd6308efc37f70b}\label{struct__Elm__Prefs__Item__Iface_a2edd2c565cb451d12dd6308efc37f70b}} 
\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}}($\ast$ {\bfseries value\+\_\+validate} )(\mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$obj)
\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}}($\ast$ \mbox{\hyperlink{struct__Elm__Prefs__Item__Iface_a5dfe848777b6ffd8590e4d9d96039efc}{label\+\_\+set}} )(\mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$obj, const char $\ast$label)
\begin{DoxyCompactList}\small\item\em $<$ Function to validate the value from the item widget before saving it. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{struct__Elm__Prefs__Item__Iface_a10bdf66c3060da255da47bf8df74609a}\label{struct__Elm__Prefs__Item__Iface_a10bdf66c3060da255da47bf8df74609a}} 
\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}}($\ast$ \mbox{\hyperlink{struct__Elm__Prefs__Item__Iface_a10bdf66c3060da255da47bf8df74609a}{icon\+\_\+set}} )(\mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$obj, const char $\ast$icon)
\begin{DoxyCompactList}\small\item\em function to set an icon on the item widget \end{DoxyCompactList}\item 
\mbox{\Hypertarget{struct__Elm__Prefs__Item__Iface_aea3940e7d25577dab99aadfd80710f9b}\label{struct__Elm__Prefs__Item__Iface_aea3940e7d25577dab99aadfd80710f9b}} 
\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}}($\ast$ \mbox{\hyperlink{struct__Elm__Prefs__Item__Iface_aea3940e7d25577dab99aadfd80710f9b}{editable\+\_\+set}} )(\mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$obj, \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} val)
\begin{DoxyCompactList}\small\item\em function to set an item widget as editable or not \end{DoxyCompactList}\item 
\mbox{\Hypertarget{struct__Elm__Prefs__Item__Iface_a6ac01b4224c93dda4ea62bb08aad75ae}\label{struct__Elm__Prefs__Item__Iface_a6ac01b4224c93dda4ea62bb08aad75ae}} 
\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}}($\ast$ \mbox{\hyperlink{struct__Elm__Prefs__Item__Iface_a6ac01b4224c93dda4ea62bb08aad75ae}{editable\+\_\+get}} )(\mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$obj)
\begin{DoxyCompactList}\small\item\em function to retrieve whether an item widget is editable or not \end{DoxyCompactList}\item 
\mbox{\Hypertarget{struct__Elm__Prefs__Item__Iface_ad38abe4095dcad1959a425a1fed8b077}\label{struct__Elm__Prefs__Item__Iface_ad38abe4095dcad1959a425a1fed8b077}} 
\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}}($\ast$ \mbox{\hyperlink{struct__Elm__Prefs__Item__Iface_ad38abe4095dcad1959a425a1fed8b077}{expand\+\_\+want}} )(\mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$obj)
\begin{DoxyCompactList}\small\item\em function to get whether the item implementation needs to be expanded in the page\textquotesingle{}s longitudinal axis or not \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Interface between items of the \mbox{\hyperlink{group__Elm__Prefs_elm-prefs-widget}{Prefs}} widget and the real widgets implementing them. 

This structure defines the interface between the \mbox{\hyperlink{group__Elm__Prefs_elm-prefs-widget}{Prefs}} widget\textquotesingle{}s items (all item types in Elementary prefs collections but the {\ttfamily P\+A\+GE} one) and Elementary widgets implementing them. {\ttfamily \mbox{\hyperlink{struct__Elm__Prefs__Item__Iface_a71827254b18dc00f9afeba2562dfcc60}{add()}}} is the only mandatory function an item widget has to implement.

\begin{DoxyNote}{Note}
For items of type {\ttfamily P\+A\+GE}, refer to \#\+Elm\+\_\+\+Prefs\+\_\+\+Page\+\_\+\+Iface.
\end{DoxyNote}
\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}


\subsection{Field Documentation}
\mbox{\Hypertarget{struct__Elm__Prefs__Item__Iface_a80a01b8632acecd4381cb261cd2e2477}\label{struct__Elm__Prefs__Item__Iface_a80a01b8632acecd4381cb261cd2e2477}} 
\index{\+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface@{\+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface}!abi\+\_\+version@{abi\+\_\+version}}
\index{abi\+\_\+version@{abi\+\_\+version}!\+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface@{\+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface}}
\subsubsection{\texorpdfstring{abi\+\_\+version}{abi\_version}}
{\footnotesize\ttfamily unsigned int \+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface\+::abi\+\_\+version}



always use\+: 


\begin{DoxyItemize}
\item \#\+E\+L\+M\+\_\+\+P\+R\+E\+F\+S\+\_\+\+I\+T\+E\+M\+\_\+\+I\+F\+A\+C\+E\+\_\+\+A\+B\+I\+\_\+\+V\+E\+R\+S\+I\+ON to declare.
\item elm\+\_\+prefs\+\_\+widget\+\_\+iface\+\_\+abi\+\_\+version\+\_\+get() to check. 
\end{DoxyItemize}

Referenced by elm\+\_\+prefs\+\_\+item\+\_\+iface\+\_\+register().

\mbox{\Hypertarget{struct__Elm__Prefs__Item__Iface_a71827254b18dc00f9afeba2562dfcc60}\label{struct__Elm__Prefs__Item__Iface_a71827254b18dc00f9afeba2562dfcc60}} 
\index{\+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface@{\+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface}!add@{add}}
\index{add@{add}!\+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface@{\+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface}}
\subsubsection{\texorpdfstring{add}{add}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}}$\ast$($\ast$ \+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface\+::add) (const \mbox{\hyperlink{struct__Elm__Prefs__Item__Iface}{Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface}} $\ast$iface, \mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$prefs, const \mbox{\hyperlink{group__Elm__Prefs_ga7525bee64184478acad1e807c3e570ae}{Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Type}} type, const \mbox{\hyperlink{union__Elm__Prefs__Item__Spec}{Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Spec}} spec, \mbox{\hyperlink{group__Elm__Prefs_ga47ee0cfc6e4dad8fb4fc1960c78a1b6b}{Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Changed\+\_\+\+Cb}} it\+\_\+changed\+\_\+cb)}



Function to instantiate the item widget. 

It must return the widget handle, which should be the {\ttfamily obj} argument on the functions which follow. That object argument, by the way, should always have their respective \#\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Node handle accessible via a {\ttfamily \char`\"{}prefs\+\_\+item\char`\"{}} Evas object data value. The return value of the following functions should be {\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+UE}, on success or {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+SE}, otherwise. \mbox{\Hypertarget{struct__Elm__Prefs__Item__Iface_aa0c55003054cf0a8f66a0b0176f8bb45}\label{struct__Elm__Prefs__Item__Iface_aa0c55003054cf0a8f66a0b0176f8bb45}} 
\index{\+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface@{\+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface}!value\+\_\+set@{value\+\_\+set}}
\index{value\+\_\+set@{value\+\_\+set}!\+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface@{\+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface}}
\subsubsection{\texorpdfstring{value\+\_\+set}{value\_set}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}}($\ast$ \+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface\+::value\+\_\+set) (\mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$obj, \mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$value)}



Function to set the value on the item widget. 

Note that for items of type \mbox{\hyperlink{group__Elm__Prefs_gga7525bee64184478acad1e807c3e570aeacbef5c7a2fbdb5e7243e58856238efcb}{E\+L\+M\+\_\+\+P\+R\+E\+F\+S\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+E\+P\+A\+R\+A\+T\+OR}}, this function has a special meaning of making the separator widget a {\bfseries horizontal} one \mbox{\Hypertarget{struct__Elm__Prefs__Item__Iface_a105d68bc134b7ed076ab0764edbe971e}\label{struct__Elm__Prefs__Item__Iface_a105d68bc134b7ed076ab0764edbe971e}} 
\index{\+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface@{\+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface}!value\+\_\+get@{value\+\_\+get}}
\index{value\+\_\+get@{value\+\_\+get}!\+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface@{\+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface}}
\subsubsection{\texorpdfstring{value\+\_\+get}{value\_get}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}}($\ast$ \+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface\+::value\+\_\+get) (\mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$obj, \mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$value)}



Function to set the value on the item widget. 

Note that for items of type \mbox{\hyperlink{group__Elm__Prefs_gga7525bee64184478acad1e807c3e570aeacbef5c7a2fbdb5e7243e58856238efcb}{E\+L\+M\+\_\+\+P\+R\+E\+F\+S\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+E\+P\+A\+R\+A\+T\+OR}}, this function has a special meaning of making the separator widget a {\bfseries vertical} one \mbox{\Hypertarget{struct__Elm__Prefs__Item__Iface_a5dfe848777b6ffd8590e4d9d96039efc}\label{struct__Elm__Prefs__Item__Iface_a5dfe848777b6ffd8590e4d9d96039efc}} 
\index{\+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface@{\+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface}!label\+\_\+set@{label\+\_\+set}}
\index{label\+\_\+set@{label\+\_\+set}!\+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface@{\+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface}}
\subsubsection{\texorpdfstring{label\+\_\+set}{label\_set}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}}($\ast$ \+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface\+::label\+\_\+set) (\mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$obj, const char $\ast$label)}



$<$ Function to validate the value from the item widget before saving it. 

The return value of the following function should be {\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+UE}, if the value conforms with the expected or {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+SE}, otherwise. function to set a label on the item widget 