Check example

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:

EAPI_MAIN int
elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
{
Evas_Object *win, *cb, *cb2, *icon;
Eina_Bool value;
win = elm_win_util_standard_add("check", "Check");

And now we create our first checkbox, set its label, tell it to change the value of value when the checkbox stats is changed and ask to be notified of state changes:

cb = elm_check_add(win);
elm_object_text_set(cb, "checkbox");
evas_object_smart_callback_add(cb, "changed", _print, &value);
evas_object_move(cb, 10, 10);
evas_object_resize(cb, 200, 30);

For our second checkbox we are going to set an icon so we need to create and icon:

icon = evas_object_rectangle_add(evas_object_evas_get(win));
evas_object_color_set(icon, 0, 255, 0, 255);
evas_object_resize(icon, 20, 20);
Note
For simplicity we are using a rectangle as icon, but any evas object can be used.

And for our second checkbox we set the label, icon and state to true:

cb2 = elm_check_add(win);
elm_object_text_set(cb2, "another checkbox");
elm_object_part_content_set(cb2, "icon", icon);
evas_object_move(cb2, 10, 50);
evas_object_resize(cb2, 200, 30);

We now do some more setup:

evas_object_resize(win, 200, 100);
return 0;
}

And finally implement the callback that will be called when the first checkbox's state changes. This callback will use data to print a message:

static void
_print(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
printf("check %smarked\n", *((Eina_Bool*)data) ? "" : "un");
}
Note
This work because data is value(from the main function) and value is changed when the checkbox is changed.

Our example will look like this:

ELM_POLICY_QUIT_LAST_WINDOW_CLOSED
quit when the application's last window is closed
Definition: elm_general.h:248
EINA_UNUSED
#define EINA_UNUSED
Definition: eina_types.h:321
elm_check_state_set
EAPI void elm_check_state_set(Evas_Object *obj, Eina_Bool state)
Set the on/off state of the check object.
Definition: efl_ui_check.c:369
evas_object_smart_callback_add
void evas_object_smart_callback_add(Evas_Object *eo_obj, const char *event, Evas_Smart_Cb func, const void *data)
Add (register) a callback function to the smart event specified by event on the smart object obj.
Definition: evas_object_smart.c:980
Evas_Object
Efl_Canvas_Object Evas_Object
Definition: Evas_Common.h:180
elm_check_state_pointer_set
EAPI void elm_check_state_pointer_set(Eo *obj, Eina_Bool *statep)
Set a convenience pointer to a boolean to change.
Definition: efl_ui_check.c:384
elm_object_part_content_set
void elm_object_part_content_set(Evas_Object *obj, const char *part, Evas_Object *content)
Set the content on part of a given container widget.
Definition: elm_main.c:1589
elm_run
void elm_run(void)
Run Elementary's main loop.
Definition: elm_main.c:1384
ELM_MAIN
#define ELM_MAIN()
macro to be used after the elm_main() function
Definition: elm_general.h:528
elm_win_util_standard_add
Evas_Object * elm_win_util_standard_add(const char *name, const char *title)
Adds a window object with standard setup.
Definition: efl_ui_win.c:9200
evas_object_show
void evas_object_show(Evas_Object *eo_obj)
Makes the given Evas object visible.
Definition: evas_object_main.c:1853
EINA_TRUE
#define EINA_TRUE
Definition: eina_types.h:508
elm_policy_set
Eina_Bool elm_policy_set(unsigned int policy, int value)
Set a new policy's value (for a given policy group/identifier).
Definition: elm_main.c:1407
Eina_Bool
unsigned char Eina_Bool
Definition: eina_types.h:496
evas_object_rectangle_add
Evas_Object * evas_object_rectangle_add(Evas *e)
Adds a rectangle to the given evas.
Definition: evas_object_rectangle.c:78
elm_check_add
EAPI Evas_Object * elm_check_add(Evas_Object *parent)
Add a new Check object.
Definition: efl_ui_check.c:533
elm_win_autodel_set
void elm_win_autodel_set(Eo *obj, Eina_Bool autodel)
Set the window's autodel state.
Definition: efl_ui_win.c:6146
evas_object_color_set
void evas_object_color_set(Evas_Object *obj, int r, int g, int b, int a)
Sets the general/main color of the given Evas object to the given one.
Definition: evas_object_main.c:2063
ELM_POLICY_QUIT
under which circumstances the application should quit automatically.
Definition: elm_general.h:227