\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 \hyperlink{group__Prefs_elm-prefs-widget}{Prefs} widget and the real widgets implementing them.  


\subsection*{Data Fields}
\begin{DoxyCompactItemize}
\item 
unsigned int \hyperlink{struct__Elm__Prefs__Item__Iface_a80a01b8632acecd4381cb261cd2e2477}{abi\+\_\+version}
\begin{DoxyCompactList}\small\item\em always use\+: \end{DoxyCompactList}\item 
const \hyperlink{group__Elm__Prefs_ga1b10884ca8cd0b3626f437aad775e2f5}{Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Type} $\ast$ \hyperlink{struct__Elm__Prefs__Item__Iface_a84484623a0f810c2045e4b0b5a24472e}{types}\label{struct__Elm__Prefs__Item__Iface_a84484623a0f810c2045e4b0b5a24472e}

\begin{DoxyCompactList}\small\item\em types of prefs items supported by the widget, \#\+E\+L\+M\+\_\+\+P\+R\+E\+F\+S\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+N\+K\+N\+O\+W\+N terminated \end{DoxyCompactList}\item 
Evas\+\_\+\+Object $\ast$($\ast$ \hyperlink{struct__Elm__Prefs__Item__Iface_af1145444677f51da0426d9b5f3450369}{add} )(const \hyperlink{struct__Elm__Prefs__Item__Iface}{Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface} $\ast$iface, Evas\+\_\+\+Object $\ast$prefs, const \hyperlink{group__Elm__Prefs_ga1b10884ca8cd0b3626f437aad775e2f5}{Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Type} type, const Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Spec spec, Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Changed\+\_\+\+Cb it\+\_\+changed\+\_\+cb)
\begin{DoxyCompactList}\small\item\em Function to instantiate the item widget. \end{DoxyCompactList}\item 
Eina\+\_\+\+Bool($\ast$ \hyperlink{struct__Elm__Prefs__Item__Iface_ab21298fb1d795c0fd141301defad79e5}{value\+\_\+set} )(Evas\+\_\+\+Object $\ast$obj, Eina\+\_\+\+Value $\ast$value)
\begin{DoxyCompactList}\small\item\em Function to set the value on the item widget. \end{DoxyCompactList}\item 
Eina\+\_\+\+Bool($\ast$ \hyperlink{struct__Elm__Prefs__Item__Iface_ad31617d72dcb8464c69c429ddb28623b}{value\+\_\+get} )(Evas\+\_\+\+Object $\ast$obj, Eina\+\_\+\+Value $\ast$value)
\begin{DoxyCompactList}\small\item\em Function to set the value on the item widget. \end{DoxyCompactList}\item 
Eina\+\_\+\+Bool($\ast$ \hyperlink{struct__Elm__Prefs__Item__Iface_a48ac2bdf98b573f75af7ecef068d0c1d}{label\+\_\+set} )(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 
Eina\+\_\+\+Bool($\ast$ \hyperlink{struct__Elm__Prefs__Item__Iface_a1d175da7b37079ffa854c68f68db8e51}{icon\+\_\+set} )(Evas\+\_\+\+Object $\ast$obj, const char $\ast$icon)\label{struct__Elm__Prefs__Item__Iface_a1d175da7b37079ffa854c68f68db8e51}

\begin{DoxyCompactList}\small\item\em function to set an icon on the item widget \end{DoxyCompactList}\item 
Eina\+\_\+\+Bool($\ast$ \hyperlink{struct__Elm__Prefs__Item__Iface_a3a5155b9dbf6ef31074b5fa958076b5e}{editable\+\_\+set} )(Evas\+\_\+\+Object $\ast$obj, Eina\+\_\+\+Bool val)\label{struct__Elm__Prefs__Item__Iface_a3a5155b9dbf6ef31074b5fa958076b5e}

\begin{DoxyCompactList}\small\item\em function to set an item widget as editable or not \end{DoxyCompactList}\item 
Eina\+\_\+\+Bool($\ast$ \hyperlink{struct__Elm__Prefs__Item__Iface_ade94316ed9f756734cf350ae890e8267}{editable\+\_\+get} )(Evas\+\_\+\+Object $\ast$obj)\label{struct__Elm__Prefs__Item__Iface_ade94316ed9f756734cf350ae890e8267}

\begin{DoxyCompactList}\small\item\em function to retrieve whether an item widget is editable or not \end{DoxyCompactList}\item 
Eina\+\_\+\+Bool($\ast$ \hyperlink{struct__Elm__Prefs__Item__Iface_a322d11140dfdc78dd6dfc33bbf810c79}{expand\+\_\+want} )(Evas\+\_\+\+Object $\ast$obj)\label{struct__Elm__Prefs__Item__Iface_a322d11140dfdc78dd6dfc33bbf810c79}

\begin{DoxyCompactList}\small\item\em function to get wether the item implementation needs to be expanded in the page's longitudinal axis or not \end{DoxyCompactList}\end{DoxyCompactItemize}


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

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

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


\subsection{Field Documentation}
\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[{abi\+\_\+version}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int \+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface\+::abi\+\_\+version}\label{struct__Elm__Prefs__Item__Iface_a80a01b8632acecd4381cb261cd2e2477}


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\+O\+N to declare.
\item elm\+\_\+prefs\+\_\+widget\+\_\+iface\+\_\+abi\+\_\+version\+\_\+get() to check. 
\end{DoxyItemize}\index{\+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface@{\+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface}!add@{add}}
\index{add@{add}!\+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface@{\+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface}}
\subsubsection[{add}]{\setlength{\rightskip}{0pt plus 5cm}Evas\+\_\+\+Object$\ast$($\ast$ \+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface\+::add)(const {\bf Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface} $\ast$iface, Evas\+\_\+\+Object $\ast$prefs, const {\bf Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Type} type, const Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Spec spec, Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Changed\+\_\+\+Cb it\+\_\+changed\+\_\+cb)}\label{struct__Elm__Prefs__Item__Iface_af1145444677f51da0426d9b5f3450369}


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\+U\+E}, on success or {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E}, otherwise. \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[{label\+\_\+set}]{\setlength{\rightskip}{0pt plus 5cm}Eina\+\_\+\+Bool($\ast$ \+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface\+::label\+\_\+set)(Evas\+\_\+\+Object $\ast$obj, const char $\ast$label)}\label{struct__Elm__Prefs__Item__Iface_a48ac2bdf98b573f75af7ecef068d0c1d}


$<$ 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\+U\+E}, if the value conforms with the expected or {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E}, otherwise. function to set a label on the item widget \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[{value\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}Eina\+\_\+\+Bool($\ast$ \+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface\+::value\+\_\+get)(Evas\+\_\+\+Object $\ast$obj, Eina\+\_\+\+Value $\ast$value)}\label{struct__Elm__Prefs__Item__Iface_ad31617d72dcb8464c69c429ddb28623b}


Function to set the value on the item widget. 

Note that for items of type \hyperlink{group__Elm__Prefs_gga1cc357f952ededa3d8743bb9bedc2549acbef5c7a2fbdb5e7243e58856238efcb}{E\+L\+M\+\_\+\+P\+R\+E\+F\+S\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+E\+P\+A\+R\+A\+T\+O\+R}, this function has a special meaning of making the separator widget a {\bfseries vertical} one \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[{value\+\_\+set}]{\setlength{\rightskip}{0pt plus 5cm}Eina\+\_\+\+Bool($\ast$ \+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface\+::value\+\_\+set)(Evas\+\_\+\+Object $\ast$obj, Eina\+\_\+\+Value $\ast$value)}\label{struct__Elm__Prefs__Item__Iface_ab21298fb1d795c0fd141301defad79e5}


Function to set the value on the item widget. 

Note that for items of type \hyperlink{group__Elm__Prefs_gga1cc357f952ededa3d8743bb9bedc2549acbef5c7a2fbdb5e7243e58856238efcb}{E\+L\+M\+\_\+\+P\+R\+E\+F\+S\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+E\+P\+A\+R\+A\+T\+O\+R}, this function has a special meaning of making the separator widget a {\bfseries horizontal} one 