\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_a71827254b18dc00f9afeba2562dfcc60}{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, \hyperlink{group__Prefs_ga47ee0cfc6e4dad8fb4fc1960c78a1b6b}{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_aa0c55003054cf0a8f66a0b0176f8bb45}{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_a105d68bc134b7ed076ab0764edbe971e}{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_a5dfe848777b6ffd8590e4d9d96039efc}{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_a10bdf66c3060da255da47bf8df74609a}{icon\+\_\+set} )(Evas\+\_\+\+Object $\ast$obj, const char $\ast$icon)\label{struct__Elm__Prefs__Item__Iface_a10bdf66c3060da255da47bf8df74609a}

\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_aea3940e7d25577dab99aadfd80710f9b}{editable\+\_\+set} )(Evas\+\_\+\+Object $\ast$obj, Eina\+\_\+\+Bool val)\label{struct__Elm__Prefs__Item__Iface_aea3940e7d25577dab99aadfd80710f9b}

\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_a6ac01b4224c93dda4ea62bb08aad75ae}{editable\+\_\+get} )(Evas\+\_\+\+Object $\ast$obj)\label{struct__Elm__Prefs__Item__Iface_a6ac01b4224c93dda4ea62bb08aad75ae}

\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_ad38abe4095dcad1959a425a1fed8b077}{expand\+\_\+want} )(Evas\+\_\+\+Object $\ast$obj)\label{struct__Elm__Prefs__Item__Iface_ad38abe4095dcad1959a425a1fed8b077}

\begin{DoxyCompactList}\small\item\em function to get wether 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 \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\textquotesingle{}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_a71827254b18dc00f9afeba2562dfcc60}{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}

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

\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, {\bf Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Changed\+\_\+\+Cb} it\+\_\+changed\+\_\+cb)}\label{struct__Elm__Prefs__Item__Iface_a71827254b18dc00f9afeba2562dfcc60}


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_a5dfe848777b6ffd8590e4d9d96039efc}


$<$ 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_a105d68bc134b7ed076ab0764edbe971e}


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_aa0c55003054cf0a8f66a0b0176f8bb45}


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 