\hypertarget{struct__Elm__Prefs__Item__Iface}{}\doxysection{\+\_\+\+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.  




{\ttfamily \#include $<$elm\+\_\+prefs\+\_\+common.\+h$>$}

\doxysubsection*{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$ {\bfseries types}
\begin{DoxyCompactList}\small\item\em types of prefs items supported by the widget, \mbox{\hyperlink{group__Elm__Prefs_gga7525bee64184478acad1e807c3e570aea93fd74dd99dcfbc4b00e6598b7738f85}{ELM\+\_\+\+PREFS\+\_\+\+TYPE\+\_\+\+UNKNOWN}} terminated \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object}} $\ast$($\ast$ \mbox{\hyperlink{struct__Elm__Prefs__Item__Iface_acfc4fd06fd65596e9063741f73b1b047}{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 \texorpdfstring{$<$}{<} 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$ {\bfseries 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$ {\bfseries 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$ {\bfseries 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$ {\bfseries 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}


\doxysubsection{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 PAGE} one) and Elementary widgets implementing them. {\ttfamily \mbox{\hyperlink{struct__Elm__Prefs__Item__Iface_acfc4fd06fd65596e9063741f73b1b047}{add()}}} is the only mandatory function an item widget has to implement.

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


\doxysubsection{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}}
\doxysubsubsection{\texorpdfstring{abi\_version}{abi\_version}}
{\footnotesize\ttfamily unsigned int \+\_\+\+Elm\+\_\+\+Prefs\+\_\+\+Item\+\_\+\+Iface\+::abi\+\_\+version}



always use\+: 


\begin{DoxyItemize}
\item ELM\+\_\+\+PREFS\+\_\+\+ITEM\+\_\+\+IFACE\+\_\+\+ABI\+\_\+\+VERSION to declare.
\item elm\+\_\+prefs\+\_\+widget\+\_\+iface\+\_\+abi\+\_\+version\+\_\+get() to check. 
\end{DoxyItemize}

Referenced by \mbox{\hyperlink{group__Elm__Prefs_gae7fab97e239ccdb719d6eae0ee3fd5c0}{elm\+\_\+prefs\+\_\+item\+\_\+iface\+\_\+register()}}.

\mbox{\Hypertarget{struct__Elm__Prefs__Item__Iface_acfc4fd06fd65596e9063741f73b1b047}\label{struct__Elm__Prefs__Item__Iface_acfc4fd06fd65596e9063741f73b1b047}} 
\index{\_Elm\_Prefs\_Item\_Iface@{\_Elm\_Prefs\_Item\_Iface}!add@{add}}
\index{add@{add}!\_Elm\_Prefs\_Item\_Iface@{\_Elm\_Prefs\_Item\_Iface}}
\doxysubsubsection{\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 EINA\+\_\+\+TRUE}, on success or {\ttfamily EINA\+\_\+\+FALSE}, 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}}
\doxysubsubsection{\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}{ELM\+\_\+\+PREFS\+\_\+\+TYPE\+\_\+\+SEPARATOR}}, 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}}
\doxysubsubsection{\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}{ELM\+\_\+\+PREFS\+\_\+\+TYPE\+\_\+\+SEPARATOR}}, 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}}
\doxysubsubsection{\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)}



\texorpdfstring{$<$}{<} Function to validate the value from the item widget before saving it. 

The return value of the following function should be {\ttfamily EINA\+\_\+\+TRUE}, if the value conforms with the expected or {\ttfamily EINA\+\_\+\+FALSE}, otherwise. function to set a label on the item widget 