1 #ifdef HAVE_CONFIG_H
2 # include "elementary_config.h"
3 #endif
4 #include <Elementary.h>
5
6 static void
_rd_changed_cb(void * data EINA_UNUSED,Evas_Object * obj,void * event_info EINA_UNUSED)7 _rd_changed_cb(void *data EINA_UNUSED, Evas_Object *obj,
8 void *event_info EINA_UNUSED)
9 {
10 printf("radio(%p) value : %d\n", obj, elm_radio_value_get(obj));
11 }
12
13 static void
_rdg_changed_cb(void * data EINA_UNUSED,Evas_Object * obj,void * event_info EINA_UNUSED)14 _rdg_changed_cb(void *data EINA_UNUSED, Evas_Object *obj,
15 void *event_info EINA_UNUSED)
16 {
17 printf("radio(%p) group value : %d\n", obj, elm_radio_value_get(obj));
18 }
19
20 static void
_group_1_create(Evas_Object * bx,const char * style)21 _group_1_create(Evas_Object *bx, const char *style)
22 {
23 Evas_Object *bx2, *fr, *ic, *rd, *rdg;
24 char buf[PATH_MAX];
25
26 fr = elm_frame_add(bx);
27 elm_object_text_set(fr, "Radio Group 1");
28 evas_object_size_hint_weight_set(fr, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
29 evas_object_size_hint_align_set(fr, EVAS_HINT_FILL, EVAS_HINT_FILL);
30 elm_box_pack_end(bx, fr);
31 evas_object_show(fr);
32
33 bx2 = elm_box_add(fr);
34 elm_object_content_set(fr, bx2);
35 evas_object_show(bx2);
36
37 // radio 1
38 ic = elm_icon_add(bx2);
39 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
40 elm_image_file_set(ic, buf, NULL);
41 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
42
43 rd = elm_radio_add(bx2);
44 elm_object_style_set(rd, style);
45 elm_radio_state_value_set(rd, 0);
46 evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
47 evas_object_size_hint_align_set(rd, EVAS_HINT_FILL, 0.5);
48 elm_object_text_set(rd, "Icon sized to radio");
49 elm_object_part_content_set(rd, "icon", ic);
50 elm_box_pack_end(bx2, rd);
51 evas_object_show(rd);
52 evas_object_smart_callback_add(rd, "changed", _rd_changed_cb, NULL);
53
54 // rdg radio group
55 rdg = rd;
56 evas_object_smart_callback_add(rdg, "changed", _rdg_changed_cb, NULL);
57
58 ic = elm_icon_add(bx2);
59 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
60 elm_image_file_set(ic, buf, NULL);
61 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
62
63 rd = elm_radio_add(bx2);
64 elm_object_style_set(rd, style);
65 elm_radio_state_value_set(rd, 1);
66 elm_radio_group_add(rd, rdg);
67 elm_object_text_set(rd, "Icon no scale");
68 elm_object_part_content_set(rd, "icon", ic);
69 elm_box_pack_end(bx2, rd);
70 evas_object_show(rd);
71 evas_object_smart_callback_add(rd, "changed", _rd_changed_cb, NULL);
72
73 rd = elm_radio_add(bx2);
74 elm_object_style_set(rd, style);
75 elm_radio_state_value_set(rd, 2);
76 elm_radio_group_add(rd, rdg); // add a radio button rd to a radio group rdg.
77 elm_object_text_set(rd, "Label Only");
78 elm_box_pack_end(bx2, rd);
79 evas_object_show(rd);
80 evas_object_smart_callback_add(rd, "changed", _rd_changed_cb, NULL);
81
82 rd = elm_radio_add(bx2);
83 elm_object_style_set(rd, style);
84 elm_radio_state_value_set(rd, 3);
85 elm_radio_group_add(rd, rdg); // add a radio button rd to a radio group rdg.
86 elm_object_text_set(rd, "Disabled");
87 elm_object_disabled_set(rd, EINA_TRUE);
88 elm_box_pack_end(bx2, rd);
89 evas_object_show(rd);
90 evas_object_smart_callback_add(rd, "changed", _rd_changed_cb, NULL);
91
92 ic = elm_icon_add(bx2);
93 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
94 elm_image_file_set(ic, buf, NULL);
95 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
96
97 rd = elm_radio_add(bx2);
98 elm_object_style_set(rd, style);
99 elm_radio_state_value_set(rd, 4);
100 elm_radio_group_add(rd, rdg); // add a radio button rd to a radio group rdg.
101 elm_object_part_content_set(rd, "icon", ic);
102 elm_box_pack_end(bx2, rd);
103 evas_object_show(rd);
104 evas_object_smart_callback_add(rd, "changed", _rd_changed_cb, NULL);
105
106 ic = elm_icon_add(bx2);
107 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
108 elm_image_file_set(ic, buf, NULL);
109 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
110
111 rd = elm_radio_add(bx2);
112 elm_object_style_set(rd, style);
113 elm_radio_state_value_set(rd, 5);
114 elm_radio_group_add(rd, rdg); // add a radio button rd to a radio group rdg.
115 elm_object_part_content_set(rd, "icon", ic);
116 elm_object_disabled_set(rd, EINA_TRUE);
117 elm_box_pack_end(bx2, rd);
118 evas_object_show(rd);
119 evas_object_smart_callback_add(rd, "changed", _rd_changed_cb, NULL);
120
121 elm_radio_value_set(rdg, 2);
122 }
123
124 static void
_group_2_create(Evas_Object * bx,const char * style)125 _group_2_create(Evas_Object *bx, const char *style)
126 {
127 Evas_Object *bx2, *fr, *rd, *rdg;
128
129 fr = elm_frame_add(bx);
130 elm_object_text_set(fr, "Radio Group 2");
131 evas_object_size_hint_weight_set(fr, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
132 evas_object_size_hint_align_set(fr, EVAS_HINT_FILL, EVAS_HINT_FILL);
133 elm_box_pack_end(bx, fr);
134 evas_object_show(fr);
135
136 bx2 = elm_box_add(fr);
137 elm_object_content_set(fr, bx2);
138 elm_box_align_set(bx2, 0.0, 0.0);
139 evas_object_show(bx2);
140
141 // radio 1
142 rd = elm_radio_add(bx2);
143 elm_object_style_set(rd, style);
144 elm_radio_state_value_set(rd, 1);
145 evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, 0.0);
146 evas_object_size_hint_align_set(rd, EVAS_HINT_FILL, 0.5);
147 elm_object_text_set(rd, "Radio Group Test #1");
148 elm_box_pack_end(bx2, rd);
149 evas_object_show(rd);
150
151 // rdg radio group
152 rdg = rd;
153 // this works only for the first radio object
154 evas_object_smart_callback_add(rdg, "changed", _rdg_changed_cb, NULL);
155
156 // radio 2
157 rd = elm_radio_add(bx2);
158 elm_object_style_set(rd, style);
159 elm_radio_state_value_set(rd, 2);
160 evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, 0.0);
161 evas_object_size_hint_align_set(rd, EVAS_HINT_FILL, 0.5);
162 elm_object_text_set(rd, "Radio Group Test #2");
163 elm_radio_group_add(rd, rdg);
164 elm_box_pack_end(bx2, rd);
165 evas_object_show(rd);
166
167 // radio 2
168 rd = elm_radio_add(bx2);
169 elm_object_style_set(rd, style);
170 elm_radio_state_value_set(rd, 3);
171 evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, 0.0);
172 evas_object_size_hint_align_set(rd, EVAS_HINT_FILL, 0.5);
173 elm_object_text_set(rd, "Radio Group Test #3");
174 elm_radio_group_add(rd, rdg);
175 elm_box_pack_end(bx2, rd);
176 evas_object_show(rd);
177 }
178
179 void
test_radio(void * data EINA_UNUSED,Evas_Object * obj EINA_UNUSED,void * event_info EINA_UNUSED)180 test_radio(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
181 void *event_info EINA_UNUSED)
182 {
183 Evas_Object *win, *bx, *bx0;
184
185 win = elm_win_util_standard_add("radios", "Radios");
186 elm_win_autodel_set(win, EINA_TRUE);
187
188 bx0 = elm_box_add(win);
189 elm_box_horizontal_set(bx0, EINA_TRUE);
190 elm_win_resize_object_add(win, bx0);
191 evas_object_show(bx0);
192
193 bx = elm_box_add(win);
194 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
195 elm_box_horizontal_set(bx, EINA_TRUE);
196 elm_box_pack_end(bx0, bx);
197 evas_object_show(bx);
198
199 _group_1_create(bx, "default");
200 _group_2_create(bx, "default");
201
202 bx = elm_box_add(win);
203 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
204 elm_box_horizontal_set(bx, EINA_TRUE);
205 elm_box_pack_end(bx0, bx);
206 evas_object_show(bx);
207
208 _group_1_create(bx, "plain");
209 _group_2_create(bx, "plain");
210
211 bx = elm_box_add(win);
212 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
213 elm_box_horizontal_set(bx, EINA_TRUE);
214 elm_box_pack_end(bx0, bx);
215 evas_object_show(bx);
216
217 _group_1_create(bx, "icon");
218 _group_2_create(bx, "icon");
219
220 evas_object_show(win);
221 }
222