\section{List}
\label{group__List}\index{List@{List}}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
E\+I\+N\+A\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED void \hyperlink{group__List_ga544a949236d8ac00546ffefd6fa01e59}{elm\+\_\+list\+\_\+bounce\+\_\+set} (Evas\+\_\+\+Object $\ast$obj, Eina\+\_\+\+Bool h\+\_\+bounce, Eina\+\_\+\+Bool v\+\_\+bounce)
\begin{DoxyCompactList}\small\item\em Set bouncing behaviour when the scrolled content reaches an edge. \end{DoxyCompactList}\item 
E\+I\+N\+A\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED void \hyperlink{group__List_ga5e75f10c7073f1bc472eb9310524cc37}{elm\+\_\+list\+\_\+bounce\+\_\+get} (const Evas\+\_\+\+Object $\ast$obj, Eina\+\_\+\+Bool $\ast$h\+\_\+bounce, Eina\+\_\+\+Bool $\ast$v\+\_\+bounce)
\begin{DoxyCompactList}\small\item\em Get the bouncing behaviour of the internal scroller. \end{DoxyCompactList}\item 
E\+I\+N\+A\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED void \hyperlink{group__List_ga2bf65cdb78b1ab74a6e80067793b5d87}{elm\+\_\+list\+\_\+scroller\+\_\+policy\+\_\+set} (Evas\+\_\+\+Object $\ast$obj, Elm\+\_\+\+Scroller\+\_\+\+Policy policy\+\_\+h, Elm\+\_\+\+Scroller\+\_\+\+Policy policy\+\_\+v)
\begin{DoxyCompactList}\small\item\em Set the scrollbar policy. \end{DoxyCompactList}\item 
E\+I\+N\+A\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED void \hyperlink{group__List_ga5099a1ab699bb52d246cf145e3baa1a0}{elm\+\_\+list\+\_\+scroller\+\_\+policy\+\_\+get} (const Evas\+\_\+\+Object $\ast$obj, Elm\+\_\+\+Scroller\+\_\+\+Policy $\ast$policy\+\_\+h, Elm\+\_\+\+Scroller\+\_\+\+Policy $\ast$policy\+\_\+v)
\begin{DoxyCompactList}\small\item\em Get the scrollbar policy. \end{DoxyCompactList}\item 
Evas\+\_\+\+Object $\ast$ \hyperlink{group__List_ga626e858fcd7c66bac06fa5a645e6a948}{elm\+\_\+list\+\_\+add} (Evas\+\_\+\+Object $\ast$parent)
\begin{DoxyCompactList}\small\item\em Add a new list widget to the given parent Elementary (container) object. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
 
\begin{DoxyImageNoCaption}
  \mbox{\includegraphics[width=\textwidth,height=\textheight/2,keepaspectratio=true]{list_inheritance_tree}}
\end{DoxyImageNoCaption}


 
\begin{DoxyImageNoCaption}
  \mbox{\includegraphics[width=\textwidth]{img/widget/list/preview-00}}
\end{DoxyImageNoCaption}


 
\begin{DoxyImageNoCaption}
  \mbox{\includegraphics[width=\textwidth]{list}}
\end{DoxyImageNoCaption}


A list widget is a container whose children are displayed vertically or horizontally, in order, and can be selected. The list can accept only one or multiple item selections. Also has many modes of items displaying.

A list is a very simple type of list widget. For more robust lists, \hyperlink{group__Genlist}{Genlist (Generic list)} should probably be used.

This widget inherits from the \hyperlink{group__Layout}{Layout} one, so that all the functions acting on it also work for list objects.

This widget emits the following signals, besides the ones sent from Layout\+:
\begin{DoxyItemize}
\item {\ttfamily \char`\"{}activated\char`\"{}} -\/ The user has double-\/clicked or pressed (enter$\vert$return$\vert$spacebar) on an item. The {\ttfamily event\+\_\+info} parameter is the item that was activated.
\item {\ttfamily \char`\"{}clicked,double\char`\"{}} -\/ The user has double-\/clicked an item. The {\ttfamily event\+\_\+info} parameter is the item that was double-\/clicked.
\item {\ttfamily \char`\"{}clicked,right\char`\"{}} -\/ The user has right-\/clicked an item. The {\ttfamily event\+\_\+info} parameter is the item that was right-\/clicked. (since 1.\+13)
\item {\ttfamily \char`\"{}selected\char`\"{}} -\/ when the user selected an item
\item {\ttfamily \char`\"{}unselected\char`\"{}} -\/ when the user unselected an item
\item {\ttfamily \char`\"{}longpressed\char`\"{}} -\/ an item in the list is long-\/pressed
\item {\ttfamily \char`\"{}edge,top\char`\"{}} -\/ the list is scrolled until the top edge
\item {\ttfamily \char`\"{}edge,bottom\char`\"{}} -\/ the list is scrolled until the bottom edge
\item {\ttfamily \char`\"{}edge,left\char`\"{}} -\/ the list is scrolled until the left edge
\item {\ttfamily \char`\"{}edge,right\char`\"{}} -\/ the list is scrolled until the right edge
\item {\ttfamily \char`\"{}highlighted\char`\"{}} -\/ an item in the list is highlighted. This is called when the user presses an item or keyboard selection is done so the item is physically highlighted. The {\ttfamily event\+\_\+info} parameter is the item that was highlighted.
\item {\ttfamily \char`\"{}unhighlighted\char`\"{}} -\/ an item in the list is unhighlighted. This is called when the user releases an item or keyboard selection is moved so the item is physically unhighlighted. The {\ttfamily event\+\_\+info} parameter is the item that was unhighlighted.
\item {\ttfamily \char`\"{}language,changed\char`\"{}} -\/ the program\textquotesingle{}s language changed
\item {\ttfamily \char`\"{}focused\char`\"{}} -\/ When the list has received focus. (since 1.\+8)
\item {\ttfamily \char`\"{}unfocused\char`\"{}} -\/ When the list has lost focus. (since 1.\+8)
\item {\ttfamily \char`\"{}item,focused\char`\"{}} -\/ When the list item has received focus. (since 1.\+10)
\item {\ttfamily \char`\"{}item,unfocused\char`\"{}} -\/ When the list item has lost focus. (since 1.\+10)
\end{DoxyItemize}

Available styles for it are\+:
\begin{DoxyItemize}
\item {\ttfamily \char`\"{}default\char`\"{}} 
\end{DoxyItemize}

Default content parts of the list items that you can use are\+: \begin{DoxyItemize}
\item {\ttfamily \char`\"{}start\char`\"{}} -\/ A start position object in the list item \item {\ttfamily \char`\"{}end\char`\"{}} -\/ An end position object in the list item Another parts for customized styles are not accepted.\end{DoxyItemize}
Default text parts of the list items that you can use are\+: \begin{DoxyItemize}
\item {\ttfamily \char`\"{}default\char`\"{}} -\/ A label in the list item Another parts for customized styles are not accepted.\end{DoxyItemize}
Supported {\ttfamily elm\+\_\+object\+\_\+item} common A\+P\+Is. \begin{DoxyItemize}
\item elm\+\_\+object\+\_\+item\+\_\+disabled\+\_\+set \item elm\+\_\+object\+\_\+item\+\_\+disabled\+\_\+get \item elm\+\_\+object\+\_\+item\+\_\+part\+\_\+text\+\_\+set \item elm\+\_\+object\+\_\+item\+\_\+part\+\_\+text\+\_\+get \item elm\+\_\+object\+\_\+item\+\_\+part\+\_\+content\+\_\+set \item elm\+\_\+object\+\_\+item\+\_\+part\+\_\+content\+\_\+get \item elm\+\_\+object\+\_\+item\+\_\+part\+\_\+content\+\_\+unset \item elm\+\_\+object\+\_\+item\+\_\+del \item elm\+\_\+object\+\_\+item\+\_\+signal\+\_\+emit\end{DoxyItemize}
This widget implements the {\bfseries }  elm-\/scrollable-\/interface interface, so that all (non-\/deprecated) functions for the base \hyperlink{group__Scroller}{Scroller} widget also work for lists.

Some calls on the list\textquotesingle{}s A\+PI are marked as {\bfseries deprecated}, as they just wrap the scrollable widgets counterpart functions. Use the ones we point you to, for each case of deprecation here, instead -- eventually the deprecated ones will be discarded (next major release).

List of examples\+: \begin{DoxyItemize}
\item \hyperlink{list_example_01}{List widget example} \item \hyperlink{list_example_02}{List widget example} \item \hyperlink{list_example_03}{List -\/ Items management} \end{DoxyItemize}


\subsection{Function Documentation}
\index{List@{List}!elm\+\_\+list\+\_\+add@{elm\+\_\+list\+\_\+add}}
\index{elm\+\_\+list\+\_\+add@{elm\+\_\+list\+\_\+add}!List@{List}}
\subsubsection[{\texorpdfstring{elm\+\_\+list\+\_\+add(\+Evas\+\_\+\+Object $\ast$parent)}{elm_list_add(Evas_Object *parent)}}]{\setlength{\rightskip}{0pt plus 5cm}Evas\+\_\+\+Object$\ast$ elm\+\_\+list\+\_\+add (
\begin{DoxyParamCaption}
\item[{Evas\+\_\+\+Object $\ast$}]{parent}
\end{DoxyParamCaption}
)}\label{group__List_ga626e858fcd7c66bac06fa5a645e6a948}


Add a new list widget to the given parent Elementary (container) object. 


\begin{DoxyParams}{Parameters}
{\em parent} & The parent object. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a new list widget handle or {\ttfamily N\+U\+LL}, on errors.
\end{DoxyReturn}
This function inserts a new list widget on the canvas. 

Referenced by elm\+\_\+ctxpopup\+\_\+add().

\index{List@{List}!elm\+\_\+list\+\_\+bounce\+\_\+get@{elm\+\_\+list\+\_\+bounce\+\_\+get}}
\index{elm\+\_\+list\+\_\+bounce\+\_\+get@{elm\+\_\+list\+\_\+bounce\+\_\+get}!List@{List}}
\subsubsection[{\texorpdfstring{elm\+\_\+list\+\_\+bounce\+\_\+get(const Evas\+\_\+\+Object $\ast$obj, Eina\+\_\+\+Bool $\ast$h\+\_\+bounce, Eina\+\_\+\+Bool $\ast$v\+\_\+bounce)}{elm_list_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce)}}]{\setlength{\rightskip}{0pt plus 5cm}E\+I\+N\+A\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED void elm\+\_\+list\+\_\+bounce\+\_\+get (
\begin{DoxyParamCaption}
\item[{const Evas\+\_\+\+Object $\ast$}]{obj, }
\item[{Eina\+\_\+\+Bool $\ast$}]{h\+\_\+bounce, }
\item[{Eina\+\_\+\+Bool $\ast$}]{v\+\_\+bounce}
\end{DoxyParamCaption}
)}\label{group__List_ga5e75f10c7073f1bc472eb9310524cc37}


Get the bouncing behaviour of the internal scroller. 

Get whether the internal scroller should bounce when the edge of each axis is reached scrolling.


\begin{DoxyParams}{Parameters}
{\em obj} & The list object. \\
\hline
{\em h\+\_\+bounce} & Pointer to store the bounce state of the horizontal axis. \\
\hline
{\em v\+\_\+bounce} & Pointer to store the bounce state of the vertical axis.\\
\hline
\end{DoxyParams}
\begin{DoxyRefDesc}{Deprecated}
\item[\hyperlink{deprecated__deprecated000039}{Deprecated}]Use \hyperlink{group__Scroller_gae74537077c42537037834d4d4bdae634}{elm\+\_\+scroller\+\_\+bounce\+\_\+get()} instead.\end{DoxyRefDesc}


\begin{DoxySeeAlso}{See also}
\hyperlink{group__Scroller_gae74537077c42537037834d4d4bdae634}{elm\+\_\+scroller\+\_\+bounce\+\_\+get()} 

\hyperlink{group__List_ga544a949236d8ac00546ffefd6fa01e59}{elm\+\_\+list\+\_\+bounce\+\_\+set()} 
\end{DoxySeeAlso}
\index{List@{List}!elm\+\_\+list\+\_\+bounce\+\_\+set@{elm\+\_\+list\+\_\+bounce\+\_\+set}}
\index{elm\+\_\+list\+\_\+bounce\+\_\+set@{elm\+\_\+list\+\_\+bounce\+\_\+set}!List@{List}}
\subsubsection[{\texorpdfstring{elm\+\_\+list\+\_\+bounce\+\_\+set(\+Evas\+\_\+\+Object $\ast$obj, Eina\+\_\+\+Bool h\+\_\+bounce, Eina\+\_\+\+Bool v\+\_\+bounce)}{elm_list_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce)}}]{\setlength{\rightskip}{0pt plus 5cm}E\+I\+N\+A\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED void elm\+\_\+list\+\_\+bounce\+\_\+set (
\begin{DoxyParamCaption}
\item[{Evas\+\_\+\+Object $\ast$}]{obj, }
\item[{Eina\+\_\+\+Bool}]{h\+\_\+bounce, }
\item[{Eina\+\_\+\+Bool}]{v\+\_\+bounce}
\end{DoxyParamCaption}
)}\label{group__List_ga544a949236d8ac00546ffefd6fa01e59}


Set bouncing behaviour when the scrolled content reaches an edge. 

Tell the internal scroller object whether it should bounce or not when it reaches the respective edges for each axis.


\begin{DoxyParams}{Parameters}
{\em obj} & The list object \\
\hline
{\em h\+\_\+bounce} & Whether to bounce or not in the horizontal axis. \\
\hline
{\em v\+\_\+bounce} & Whether to bounce or not in the vertical axis.\\
\hline
\end{DoxyParams}
\begin{DoxyRefDesc}{Deprecated}
\item[\hyperlink{deprecated__deprecated000038}{Deprecated}]Use \hyperlink{group__Scroller_gae69101dbdb089598ca790c73bd9d7a42}{elm\+\_\+scroller\+\_\+bounce\+\_\+set()} instead.\end{DoxyRefDesc}


\begin{DoxySeeAlso}{See also}
\hyperlink{group__Scroller_gae69101dbdb089598ca790c73bd9d7a42}{elm\+\_\+scroller\+\_\+bounce\+\_\+set()} 
\end{DoxySeeAlso}
\index{List@{List}!elm\+\_\+list\+\_\+scroller\+\_\+policy\+\_\+get@{elm\+\_\+list\+\_\+scroller\+\_\+policy\+\_\+get}}
\index{elm\+\_\+list\+\_\+scroller\+\_\+policy\+\_\+get@{elm\+\_\+list\+\_\+scroller\+\_\+policy\+\_\+get}!List@{List}}
\subsubsection[{\texorpdfstring{elm\+\_\+list\+\_\+scroller\+\_\+policy\+\_\+get(const Evas\+\_\+\+Object $\ast$obj, Elm\+\_\+\+Scroller\+\_\+\+Policy $\ast$policy\+\_\+h, Elm\+\_\+\+Scroller\+\_\+\+Policy $\ast$policy\+\_\+v)}{elm_list_scroller_policy_get(const Evas_Object *obj, Elm_Scroller_Policy *policy_h, Elm_Scroller_Policy *policy_v)}}]{\setlength{\rightskip}{0pt plus 5cm}E\+I\+N\+A\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED void elm\+\_\+list\+\_\+scroller\+\_\+policy\+\_\+get (
\begin{DoxyParamCaption}
\item[{const Evas\+\_\+\+Object $\ast$}]{obj, }
\item[{Elm\+\_\+\+Scroller\+\_\+\+Policy $\ast$}]{policy\+\_\+h, }
\item[{Elm\+\_\+\+Scroller\+\_\+\+Policy $\ast$}]{policy\+\_\+v}
\end{DoxyParamCaption}
)}\label{group__List_ga5099a1ab699bb52d246cf145e3baa1a0}


Get the scrollbar policy. 

\begin{DoxySeeAlso}{See also}
\hyperlink{group__List_ga5099a1ab699bb52d246cf145e3baa1a0}{elm\+\_\+list\+\_\+scroller\+\_\+policy\+\_\+get()} for details.
\end{DoxySeeAlso}

\begin{DoxyParams}{Parameters}
{\em obj} & The list object. \\
\hline
{\em policy\+\_\+h} & Pointer to store horizontal scrollbar policy. \\
\hline
{\em policy\+\_\+v} & Pointer to store vertical scrollbar policy.\\
\hline
\end{DoxyParams}
\begin{DoxyRefDesc}{Deprecated}
\item[\hyperlink{deprecated__deprecated000041}{Deprecated}]Use \hyperlink{group__Scroller_gae5d37ebf0a5540326b2b56ae41f24c97}{elm\+\_\+scroller\+\_\+policy\+\_\+get()} instead.\end{DoxyRefDesc}
\index{List@{List}!elm\+\_\+list\+\_\+scroller\+\_\+policy\+\_\+set@{elm\+\_\+list\+\_\+scroller\+\_\+policy\+\_\+set}}
\index{elm\+\_\+list\+\_\+scroller\+\_\+policy\+\_\+set@{elm\+\_\+list\+\_\+scroller\+\_\+policy\+\_\+set}!List@{List}}
\subsubsection[{\texorpdfstring{elm\+\_\+list\+\_\+scroller\+\_\+policy\+\_\+set(\+Evas\+\_\+\+Object $\ast$obj, Elm\+\_\+\+Scroller\+\_\+\+Policy policy\+\_\+h, Elm\+\_\+\+Scroller\+\_\+\+Policy policy\+\_\+v)}{elm_list_scroller_policy_set(Evas_Object *obj, Elm_Scroller_Policy policy_h, Elm_Scroller_Policy policy_v)}}]{\setlength{\rightskip}{0pt plus 5cm}E\+I\+N\+A\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED void elm\+\_\+list\+\_\+scroller\+\_\+policy\+\_\+set (
\begin{DoxyParamCaption}
\item[{Evas\+\_\+\+Object $\ast$}]{obj, }
\item[{Elm\+\_\+\+Scroller\+\_\+\+Policy}]{policy\+\_\+h, }
\item[{Elm\+\_\+\+Scroller\+\_\+\+Policy}]{policy\+\_\+v}
\end{DoxyParamCaption}
)}\label{group__List_ga2bf65cdb78b1ab74a6e80067793b5d87}


Set the scrollbar policy. 


\begin{DoxyParams}{Parameters}
{\em obj} & The list object \\
\hline
{\em policy\+\_\+h} & Horizontal scrollbar policy. \\
\hline
{\em policy\+\_\+v} & Vertical scrollbar policy.\\
\hline
\end{DoxyParams}
This sets the scrollbar visibility policy for the given scroller. \#\+E\+L\+M\+\_\+\+S\+C\+R\+O\+L\+L\+E\+R\+\_\+\+P\+O\+L\+I\+C\+Y\+\_\+\+A\+U\+TO means the scrollbar is made visible if it is needed, and otherwise kept hidden. \#\+E\+L\+M\+\_\+\+S\+C\+R\+O\+L\+L\+E\+R\+\_\+\+P\+O\+L\+I\+C\+Y\+\_\+\+ON turns it on all the time, and \#\+E\+L\+M\+\_\+\+S\+C\+R\+O\+L\+L\+E\+R\+\_\+\+P\+O\+L\+I\+C\+Y\+\_\+\+O\+FF always keeps it off. This applies respectively for the horizontal and vertical scrollbars.

The both are disabled by default, i.\+e., are set to \#\+E\+L\+M\+\_\+\+S\+C\+R\+O\+L\+L\+E\+R\+\_\+\+P\+O\+L\+I\+C\+Y\+\_\+\+O\+FF.

\begin{DoxyRefDesc}{Deprecated}
\item[\hyperlink{deprecated__deprecated000040}{Deprecated}]Use \hyperlink{group__Scroller_ga4105c0d6adca64ed3d38e7e4116b09e4}{elm\+\_\+scroller\+\_\+policy\+\_\+set()} instead.\end{DoxyRefDesc}
