\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 \hyperlink{group__Elm__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 
\hypertarget{struct__Elm__Prefs__Item__Iface_a84484623a0f810c2045e4b0b5a24472e}{}\label{struct__Elm__Prefs__Item__Iface_a84484623a0f810c2045e4b0b5a24472e} 
const \hyperlink{group__Elm__Prefs_ga7525bee64184478acad1e807c3e570ae}{Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Type} $\ast$ \hyperlink{struct__Elm__Prefs__Item__Iface_a84484623a0f810c2045e4b0b5a24472e}{types}
\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\+WN terminated \end{DoxyCompactList}\item 
\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{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, \hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$prefs, const \hyperlink{group__Elm__Prefs_ga7525bee64184478acad1e807c3e570ae}{Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Type} type, const \hyperlink{union__Elm__Prefs__Item__Spec}{Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Spec} spec, \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 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}($\ast$ \hyperlink{struct__Elm__Prefs__Item__Iface_aa0c55003054cf0a8f66a0b0176f8bb45}{value\+\_\+set} )(\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$obj, \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 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}($\ast$ \hyperlink{struct__Elm__Prefs__Item__Iface_a105d68bc134b7ed076ab0764edbe971e}{value\+\_\+get} )(\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$obj, \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 
\hypertarget{struct__Elm__Prefs__Item__Iface_a2edd2c565cb451d12dd6308efc37f70b}{}\label{struct__Elm__Prefs__Item__Iface_a2edd2c565cb451d12dd6308efc37f70b} 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}($\ast$ {\bfseries value\+\_\+validate} )(\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$obj)
\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}($\ast$ \hyperlink{struct__Elm__Prefs__Item__Iface_a5dfe848777b6ffd8590e4d9d96039efc}{label\+\_\+set} )(\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 
\hypertarget{struct__Elm__Prefs__Item__Iface_a10bdf66c3060da255da47bf8df74609a}{}\label{struct__Elm__Prefs__Item__Iface_a10bdf66c3060da255da47bf8df74609a} 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}($\ast$ \hyperlink{struct__Elm__Prefs__Item__Iface_a10bdf66c3060da255da47bf8df74609a}{icon\+\_\+set} )(\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 
\hypertarget{struct__Elm__Prefs__Item__Iface_aea3940e7d25577dab99aadfd80710f9b}{}\label{struct__Elm__Prefs__Item__Iface_aea3940e7d25577dab99aadfd80710f9b} 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}($\ast$ \hyperlink{struct__Elm__Prefs__Item__Iface_aea3940e7d25577dab99aadfd80710f9b}{editable\+\_\+set} )(\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$obj, \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 
\hypertarget{struct__Elm__Prefs__Item__Iface_a6ac01b4224c93dda4ea62bb08aad75ae}{}\label{struct__Elm__Prefs__Item__Iface_a6ac01b4224c93dda4ea62bb08aad75ae} 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}($\ast$ \hyperlink{struct__Elm__Prefs__Item__Iface_a6ac01b4224c93dda4ea62bb08aad75ae}{editable\+\_\+get} )(\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 
\hypertarget{struct__Elm__Prefs__Item__Iface_ad38abe4095dcad1959a425a1fed8b077}{}\label{struct__Elm__Prefs__Item__Iface_ad38abe4095dcad1959a425a1fed8b077} 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}($\ast$ \hyperlink{struct__Elm__Prefs__Item__Iface_ad38abe4095dcad1959a425a1fed8b077}{expand\+\_\+want} )(\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 \hyperlink{group__Elm__Prefs_elm-prefs-widget}{Prefs} widget and the real widgets implementing them. 

This structure defines the interface between the \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 \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}
\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().

\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 \hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}$\ast$($\ast$ \+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface\+::add) (const \hyperlink{struct__Elm__Prefs__Item__Iface}{Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface} $\ast$iface, \hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$prefs, const \hyperlink{group__Elm__Prefs_ga7525bee64184478acad1e807c3e570ae}{Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Type} type, const \hyperlink{union__Elm__Prefs__Item__Spec}{Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Spec} spec, \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. \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 \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}($\ast$ \+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface\+::value\+\_\+set) (\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$obj, \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 \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 \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 \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}($\ast$ \+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface\+::value\+\_\+get) (\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$obj, \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 \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 \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 \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}($\ast$ \+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface\+::label\+\_\+set) (\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 