Elementary dayselector widget
This code snippet shows how to use dayselector widget from elementary library and how to create a callback for its changes.
static void _changed_cb(void* data, Evas_Object* obj, void* event_info) {
Elm_Dayselector_Day day = (Elm_Dayselector_Day) event_info;
Eina_Bool selected = elm_dayselector_day_selected_get(obj, day);
char *day_name;
switch (day) {
case ELM_DAYSELECTOR_SUN:
day_name = "Sun";
break;
case ELM_DAYSELECTOR_MON:
day_name = "Mon";
break;
case ELM_DAYSELECTOR_TUE:
day_name = "Tue";
break;
case ELM_DAYSELECTOR_WED:
day_name = "Wed";
break;
case ELM_DAYSELECTOR_THU:
day_name = "Thu";
break;
case ELM_DAYSELECTOR_FRI:
day_name = "Fri";
break;
case ELM_DAYSELECTOR_SAT:
day_name = "Sat";
break;
default:
day_name = "???";
break;
}
if(selected == EINA_TRUE){
dlog_print(DLOG_DEBUG, LOG_TAG, "selected: %s.", day_name);
} else{
dlog_print(DLOG_DEBUG, LOG_TAG, "unselected: %s", day_name);
}
}
static void dayselector_test(appdata_s *ad) {
Evas_Object *box = elm_box_add(ad->win);
evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, 0);
elm_win_resize_object_add(ad->win, box);
evas_object_show(box);
Evas_Object *dayselector = elm_dayselector_add(ad->win);
evas_object_size_hint_weight_set(dayselector, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(dayselector, EVAS_HINT_FILL, 0.5);
evas_object_smart_callback_add(dayselector, "dayselector,changed", _changed_cb, NULL);
evas_object_show(dayselector);
elm_box_pack_end(box, dayselector);
}