Clock widget example

This code places five Elementary clock widgets on a window, each of them exemplifying a part of the widget's API.

The first of them is the pristine clock:

/* pristine (no seconds, military time) */
ck = elm_clock_add(win);
void elm_box_pack_end(Elm_Box *obj, Efl_Canvas_Object *subobj)
Add an object at the end of the pack list.
Definition: elm_box_eo.legacy.c:57
Evas_Object * elm_clock_add(Evas_Object *parent)
Add a new clock widget to the given parent Elementary (container) object.
Definition: elm_clock.c:797
EVAS_API void evas_object_show(Evas_Object *eo_obj)
Makes the given Evas object visible.
Definition: evas_object_main.c:1814

As you see, the defaults for a clock are:

  • military time
  • no seconds shown

For am/pm time, see the second clock:

/* am/pm */
ck = elm_clock_add(win);
elm_clock_show_am_pm_set(ck, EINA_TRUE);
#define EINA_TRUE
boolean value TRUE (numerical value 1)
Definition: eina_types.h:539

The third one will show the seconds digits, which will flip in synchrony with system time. Note, besides, that the time itself is different from the system's – it was customly set with elm_clock_time_set():

/* with seconds and custom time */
ck = elm_clock_add(win);
elm_clock_show_seconds_set(ck, EINA_TRUE);
elm_clock_time_set(ck, 10, 11, 12);

In both fourth and fifth ones, we turn on the edition mode. See how you can change each of the sheets on it, and be sure to try holding the mouse pressed over one of the sheet arrows. The forth one also starts with a custom time set:

/* in edition mode, with seconds, custom time and am/pm set */
ck = elm_clock_add(win);
elm_clock_edit_set(ck, EINA_TRUE);
elm_clock_show_seconds_set(ck, EINA_TRUE);
elm_clock_show_am_pm_set(ck, EINA_TRUE);
elm_clock_time_set(ck, 10, 11, 12);

The fifth, besides editable, has only the time units editable, for hours, minutes and seconds. This exemplifies elm_clock_edit_mode_set():

/* in edition mode, with seconds, but only some digits editable */
ck = elm_clock_add(win);
elm_clock_show_seconds_set(ck, EINA_TRUE);
elm_clock_edit_set(ck, EINA_TRUE);
elm_clock_edit_mode_set(ck, digedit);
@ ELM_CLOCK_EDIT_HOUR_UNIT
Unit digit of hours value should be editable.
Definition: elm_clock_eo.h:29
@ ELM_CLOCK_EDIT_SEC_UNIT
Unit digit of seconds value should be editable.
Definition: elm_clock_eo.h:37
@ ELM_CLOCK_EDIT_MIN_UNIT
Unit digit of minutes value should be editable.
Definition: elm_clock_eo.h:33

See the full example, whose window should look like this picture:

See the full source code for this example.