efl
126 строк · 4.6 Кб
1#ifdef HAVE_CONFIG_H2#include "elementary_config.h"3#endif4#include <Elementary.h>5
6static void _changed_cb(void* data EINA_UNUSED, Evas_Object* obj, void* event_info)7{
8char buf[256];9Elm_Dayselector_Day day = (Elm_Dayselector_Day) event_info;10Eina_Bool checked = elm_dayselector_day_selected_get(obj, day);11
12switch(day)13{14case ELM_DAYSELECTOR_SUN:15snprintf(buf, sizeof(buf), "%s", "Sun");16break;17case ELM_DAYSELECTOR_MON:18snprintf(buf, sizeof(buf), "%s", "Mon");19break;20case ELM_DAYSELECTOR_TUE:21snprintf(buf, sizeof(buf), "%s", "Tue");22break;23case ELM_DAYSELECTOR_WED:24snprintf(buf, sizeof(buf), "%s", "Wed");25break;26case ELM_DAYSELECTOR_THU:27snprintf(buf, sizeof(buf), "%s", "Thu");28break;29case ELM_DAYSELECTOR_FRI:30snprintf(buf, sizeof(buf), "%s", "Fri");31break;32case ELM_DAYSELECTOR_SAT:33snprintf(buf, sizeof(buf), "%s", "Sat");34break;35default:36snprintf(buf, sizeof(buf), "%s", "???");37break;38}39fprintf(stderr, "%s = %d\n", buf, checked);40}
41
42void
43test_dayselector(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)44{
45Evas_Object *win, *bx, *dayselector, *monday;46Eina_List *weekdays_list;47const char *weekday;48const char *weekdays[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};49const char *weekdays2[] = {"S", "M", "T", "W", "T", "F", "S"};50
51win = elm_win_util_standard_add("dayselector", "Day Selector");52elm_win_autodel_set(win, EINA_TRUE);53
54bx = elm_box_add(win);55evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);56elm_win_resize_object_add(win, bx);57evas_object_show(bx);58
59// Default60dayselector = elm_dayselector_add(bx);61evas_object_size_hint_weight_set(dayselector, EVAS_HINT_EXPAND,62EVAS_HINT_EXPAND);63evas_object_size_hint_align_set(dayselector, EVAS_HINT_FILL, 0.5);64elm_box_pack_end(bx, dayselector);65evas_object_show(dayselector);66evas_object_smart_callback_add(dayselector, "dayselector,changed",67_changed_cb, NULL);68
69//Sunday first70dayselector = elm_dayselector_add(bx);71evas_object_size_hint_weight_set(dayselector, EVAS_HINT_EXPAND,72EVAS_HINT_EXPAND);73evas_object_size_hint_align_set(dayselector, EVAS_HINT_FILL, 0.5);74elm_box_pack_end(bx, dayselector);75evas_object_show(dayselector);76evas_object_smart_callback_add(dayselector, "dayselector,changed",77_changed_cb, NULL);78elm_dayselector_weekdays_names_set(dayselector, weekdays);79elm_dayselector_week_start_set(dayselector, ELM_DAYSELECTOR_SUN);80
81//Special Style82dayselector = elm_dayselector_add(bx);83evas_object_size_hint_weight_set(dayselector, EVAS_HINT_EXPAND,84EVAS_HINT_EXPAND);85evas_object_size_hint_align_set(dayselector, EVAS_HINT_FILL, 0.5);86elm_dayselector_week_start_set(dayselector, ELM_DAYSELECTOR_MON);87elm_box_pack_end(bx, dayselector);88evas_object_show(dayselector);89evas_object_smart_callback_add(dayselector, "dayselector,changed",90_changed_cb, NULL);91monday = elm_object_part_content_get(dayselector, "day0");92elm_object_signal_emit(monday, "elm,type,weekend,style1", "");93
94//Setting weekday name95dayselector = elm_dayselector_add(bx);96evas_object_size_hint_weight_set(dayselector, EVAS_HINT_EXPAND,97EVAS_HINT_EXPAND);98evas_object_size_hint_align_set(dayselector, EVAS_HINT_FILL, 0.5);99elm_dayselector_weekdays_names_set(dayselector, weekdays2);100elm_box_pack_end(bx, dayselector);101evas_object_show(dayselector);102evas_object_smart_callback_add(dayselector, "dayselector,changed",103_changed_cb, NULL);104
105weekdays_list = elm_dayselector_weekdays_names_get(dayselector);106
107fprintf(stderr, "User set weekday names to: ");108EINA_LIST_FREE(weekdays_list, weekday)109{110fprintf(stderr, "%s\n", weekday);111eina_stringshare_del(weekday);112}113
114//Disabled115dayselector = elm_dayselector_add(bx);116evas_object_size_hint_weight_set(dayselector, EVAS_HINT_EXPAND,117EVAS_HINT_EXPAND);118evas_object_size_hint_align_set(dayselector, EVAS_HINT_FILL, 0.5);119elm_box_pack_end(bx, dayselector);120evas_object_show(dayselector);121elm_object_disabled_set(dayselector, EINA_TRUE);122
123evas_object_resize(win, 350 * elm_config_scale_get(),124150 * elm_config_scale_get());125evas_object_show(win);126}
127