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