\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 