

This example will show 2 checkboxes, one with just a label and the second one with both a label and an icon. This example also illustrates how to have the checkbox change the value of a variable and how to react to those changes.

We will start with the usual setup code\+: 
\begin{DoxyCodeInclude}{0}
\DoxyCodeLine{EAPI\_MAIN \textcolor{keywordtype}{int}}
\DoxyCodeLine{elm\_main(\textcolor{keywordtype}{int} argc \mbox{\hyperlink{group__Eina__Types__Group_ga82d751be730f849719ca292f9558be87}{EINA\_UNUSED}}, \textcolor{keywordtype}{char} **argv \mbox{\hyperlink{group__Eina__Types__Group_ga82d751be730f849719ca292f9558be87}{EINA\_UNUSED}})}
\DoxyCodeLine{\{}
\DoxyCodeLine{   \mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\_Object}} *win, *cb, *cb2, *icon;}
\DoxyCodeLine{   \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\_Bool}} value;}
\DoxyCodeLine{}
\DoxyCodeLine{   \mbox{\hyperlink{group__Elm__General_ga7a05f37fd3a019da5e26c5fc91fcd937}{elm\_policy\_set}}(\mbox{\hyperlink{group__Elm__General_ggaa16f3378ecdbf660fa378402e3c5a0a9a02fadb6faada04b19d0fa42c11a8d32a}{ELM\_POLICY\_QUIT}}, \mbox{\hyperlink{group__Elm__General_gga46af37e6ac2c406321060be827117196abbe0962d88ae12afe1a173da881f56cd}{ELM\_POLICY\_QUIT\_LAST\_WINDOW\_CLOSED}});}
\DoxyCodeLine{}
\DoxyCodeLine{   win = \mbox{\hyperlink{group__Elm__Win_gac75d7752662fab73d6420706ce5be996}{elm\_win\_util\_standard\_add}}(\textcolor{stringliteral}{"check"}, \textcolor{stringliteral}{"Check"});}
\DoxyCodeLine{   \mbox{\hyperlink{group__Elm__Win_ga9a16a2f8c9fd5b6e9203ed9dcb53ea8b}{elm\_win\_autodel\_set}}(win, \mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\_TRUE}});}

\end{DoxyCodeInclude}


And now we create our first checkbox, set its label, tell it to change the value of {\ttfamily value} when the checkbox stats is changed and ask to be notified of state changes\+: 
\begin{DoxyCodeInclude}{0}
\DoxyCodeLine{}
\DoxyCodeLine{   cb = \mbox{\hyperlink{group__Elm__Check_ga252b43966ad9bbe0634c4619cac1e3e7}{elm\_check\_add}}(win);}
\DoxyCodeLine{   elm\_object\_text\_set(cb, \textcolor{stringliteral}{"checkbox"});}
\DoxyCodeLine{   \mbox{\hyperlink{group__Elm__Check_gaca05f511b004338c4d7fb35c8ec0d826}{elm\_check\_state\_pointer\_set}}(cb, \&value);}
\DoxyCodeLine{   \mbox{\hyperlink{group__Evas__Smart__Object__Group_ga18a8b179f94d21b2b09e19db11741061}{evas\_object\_smart\_callback\_add}}(cb, \textcolor{stringliteral}{"changed"}, \_print, \&value);}
\DoxyCodeLine{   evas\_object\_move(cb, 10, 10);}
\DoxyCodeLine{   evas\_object\_resize(cb, 200, 30);}
\DoxyCodeLine{   \mbox{\hyperlink{group__Evas__Object__Group__Basic_ga9cbc13661584e49fb9d9cdab514a1eeb}{evas\_object\_show}}(cb);}

\end{DoxyCodeInclude}


For our second checkbox we are going to set an icon so we need to create and icon\+: 
\begin{DoxyCodeInclude}{0}
\DoxyCodeLine{}
\DoxyCodeLine{   icon = \mbox{\hyperlink{group__Evas__Object__Rectangle_ga4d80fc32ad1cac28428cebd65d746751}{evas\_object\_rectangle\_add}}(evas\_object\_evas\_get(win));}
\DoxyCodeLine{   \mbox{\hyperlink{group__Evas__Object__Group__Basic_gae34bdcfd7f5100151f6ea8ef4a392949}{evas\_object\_color\_set}}(icon, 0, 255, 0, 255);}
\DoxyCodeLine{   evas\_object\_resize(icon, 20, 20);}
\DoxyCodeLine{   \mbox{\hyperlink{group__Evas__Object__Group__Basic_ga9cbc13661584e49fb9d9cdab514a1eeb}{evas\_object\_show}}(icon);}

\end{DoxyCodeInclude}
 \begin{DoxyNote}{Note}
For simplicity we are using a rectangle as icon, but any evas object can be used.
\end{DoxyNote}
And for our second checkbox we set the label, icon and state to true\+: 
\begin{DoxyCodeInclude}{0}
\DoxyCodeLine{}
\DoxyCodeLine{   cb2 = \mbox{\hyperlink{group__Elm__Check_ga252b43966ad9bbe0634c4619cac1e3e7}{elm\_check\_add}}(win);}
\DoxyCodeLine{   elm\_object\_text\_set(cb2, \textcolor{stringliteral}{"another checkbox"});}
\DoxyCodeLine{   \mbox{\hyperlink{group__Elm__Check_gaa011e6d86f82142698760cf0cc4fd0a4}{elm\_check\_state\_set}}(cb2, \mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\_TRUE}});}
\DoxyCodeLine{   \mbox{\hyperlink{group__Elm__General_ga0531ec8867c72def7c780601764ca642}{elm\_object\_part\_content\_set}}(cb2, \textcolor{stringliteral}{"icon"}, icon);}
\DoxyCodeLine{   evas\_object\_move(cb2, 10, 50);}
\DoxyCodeLine{   evas\_object\_resize(cb2, 200, 30);}
\DoxyCodeLine{   \mbox{\hyperlink{group__Evas__Object__Group__Basic_ga9cbc13661584e49fb9d9cdab514a1eeb}{evas\_object\_show}}(cb2);}

\end{DoxyCodeInclude}


We now do some more setup\+: 
\begin{DoxyCodeInclude}{0}
\DoxyCodeLine{}
\DoxyCodeLine{   evas\_object\_resize(win, 200, 100);}
\DoxyCodeLine{   \mbox{\hyperlink{group__Evas__Object__Group__Basic_ga9cbc13661584e49fb9d9cdab514a1eeb}{evas\_object\_show}}(win);}
\DoxyCodeLine{}
\DoxyCodeLine{   \mbox{\hyperlink{group__Elm__General_gadf2553f83e6b0b9c7fbe054019a664a1}{elm\_run}}();}
\DoxyCodeLine{}
\DoxyCodeLine{   \textcolor{keywordflow}{return} 0;}
\DoxyCodeLine{\}}
\DoxyCodeLine{\mbox{\hyperlink{group__Elm__General_ga50fe52d513f7e89c9c770afd76de7ad9}{ELM\_MAIN}}()}

\end{DoxyCodeInclude}


And finally implement the callback that will be called when the first checkbox\textquotesingle{}s state changes. This callback will use {\ttfamily data} to print a message\+:  
\begin{DoxyCodeInclude}{0}
\DoxyCodeLine{\textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\_print(\textcolor{keywordtype}{void} *data, \mbox{\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\_Object}} *obj \mbox{\hyperlink{group__Eina__Types__Group_ga82d751be730f849719ca292f9558be87}{EINA\_UNUSED}}, \textcolor{keywordtype}{void} *event\_info \mbox{\hyperlink{group__Eina__Types__Group_ga82d751be730f849719ca292f9558be87}{EINA\_UNUSED}})}
\DoxyCodeLine{\{}
\DoxyCodeLine{   printf(\textcolor{stringliteral}{"check \%smarked\(\backslash\)n"}, *((\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\_Bool}}*)data) ? \textcolor{stringliteral}{""} : \textcolor{stringliteral}{"un"});}
\DoxyCodeLine{\}}

\end{DoxyCodeInclude}
 \begin{DoxyNote}{Note}
This work because {\ttfamily data} is {\ttfamily value(from the main function)} and {\ttfamily value} is changed when the checkbox is changed.
\end{DoxyNote}
Our example will look like this\+:

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