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);
}

Responses

0 Replies