2 #include "radio-group.h"
4 struct _Cal_Radio_Group {
10 Cal_Radio_Group* cal_radio_group_create(unsigned int count)
12 c_retv_if(count == 0, NULL);
13 Cal_Radio_Group* rg = (Cal_Radio_Group*)malloc(sizeof(Cal_Radio_Group));
16 rg->objects = (Evas_Object**)malloc(count * sizeof(Evas_Object*));
18 for (i = 0; i < count; i++)
19 rg->objects[i] = NULL;
23 void cal_radio_group_set_radio_object(Cal_Radio_Group* rg, unsigned int index, Evas_Object* obj)
26 c_ret_if(index >= rg->count);
27 c_ret_if(obj == NULL);
29 rg->objects[index] = obj;
31 // DBG("%d %d", index, rg->objects[0]);
33 if (index == 0) { // The Head of Group has been replaced!
35 for (i = 1; i < rg->count; i++)
36 if (rg->objects[i] != NULL)
37 elm_radio_group_add(rg->objects[i], obj); // Reassign each member
38 elm_radio_value_set(obj, rg->selected);
39 } else { // A Member of Group has been replaced...
40 if (rg->objects[0] != NULL) {
41 elm_radio_group_add(obj, rg->objects[0]); // Reassign the member
42 if (index == rg->selected)
43 elm_radio_value_set(rg->objects[0], index);
48 void cal_radio_group_remove_radio_object(Cal_Radio_Group* rg, unsigned int index)
51 c_ret_if(index >= rg->count);
53 rg->objects[index] = NULL;
56 void cal_radio_group_select_radio(Cal_Radio_Group* rg, unsigned int index)
59 c_ret_if(index >= rg->count);
63 // DBG("%d %d", index, rg->objects[0]);
65 if (rg->objects[0] != NULL)
66 elm_radio_value_set(rg->objects[0], index);
69 int cal_radio_group_get_selected_radio(Cal_Radio_Group* rg)