static void
_cb_radio_changed_scale_type(void *data, const Efl_Event *ev)
{
+ Efl_Ui_Radio_Box *bx = efl_ui_widget_parent_get(ev->object);
Evas_Object *o_bg = data;
+ int v = efl_ui_radio_group_selected_value_get(bx);
+ if (v == -1) v = 0;
- efl_gfx_image_scale_type_set(o_bg, efl_ui_nstate_value_get(ev->object));
+ efl_gfx_image_scale_type_set(o_bg, v);
}
static void
{
Evas_Object *win;
Evas_Object *box, *hbox, *o_bg;
- Evas_Object *rd, *rdg;
+ Evas_Object *rd, *c;
char buf[PATH_MAX];
win = efl_add_ref(EFL_UI_WIN_CLASS, NULL,
efl_gfx_hint_fill_set(efl_added, EINA_TRUE, EINA_TRUE),
efl_pack(box, efl_added));
- hbox = efl_add(EFL_UI_BOX_CLASS, box,
+ hbox = efl_add(EFL_UI_RADIO_BOX_CLASS, box,
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL),
efl_gfx_hint_weight_set(efl_added, EFL_GFX_HINT_EXPAND, 0.0),
efl_gfx_hint_fill_set(efl_added, EINA_TRUE, EINA_TRUE),
efl_pack(box, efl_added));
- rdg = rd = efl_add(EFL_UI_RADIO_CLASS, hbox,
- efl_ui_radio_state_value_set(efl_added, EFL_GFX_IMAGE_SCALE_TYPE_FILL),
- efl_text_set(efl_added, "Fill"),
- efl_gfx_hint_weight_set(efl_added, EFL_GFX_HINT_EXPAND, 0.0),
- efl_event_callback_add(efl_added, EFL_UI_RADIO_EVENT_CHANGED, _cb_radio_changed_scale_type, o_bg),
- efl_pack(hbox, efl_added));
-
- rd = efl_add(EFL_UI_RADIO_CLASS, hbox,
- efl_ui_radio_state_value_set(efl_added, EFL_GFX_IMAGE_SCALE_TYPE_FIT_INSIDE),
- efl_ui_radio_group_add(efl_added, rdg),
- efl_text_set(efl_added, "Fit Inside"),
- efl_gfx_hint_weight_set(efl_added, EFL_GFX_HINT_EXPAND, 0.0),
- efl_event_callback_add(efl_added, EFL_UI_RADIO_EVENT_CHANGED, _cb_radio_changed_scale_type, o_bg),
- efl_pack(hbox, efl_added));
-
-
- rd = efl_add(EFL_UI_RADIO_CLASS, hbox,
- efl_ui_radio_state_value_set(efl_added, EFL_GFX_IMAGE_SCALE_TYPE_FIT_OUTSIDE),
- efl_ui_radio_group_add(efl_added, rdg),
- efl_text_set(efl_added, "Fit Outside"),
- efl_gfx_hint_weight_set(efl_added, EFL_GFX_HINT_EXPAND, 0.0),
- efl_event_callback_add(efl_added, EFL_UI_RADIO_EVENT_CHANGED, _cb_radio_changed_scale_type, o_bg),
- efl_pack(hbox, efl_added));
-
- rd = efl_add(EFL_UI_RADIO_CLASS, hbox,
- efl_ui_radio_state_value_set(efl_added, EFL_GFX_IMAGE_SCALE_TYPE_NONE),
- efl_ui_radio_group_add(efl_added, rdg),
- efl_text_set(efl_added, "None"),
- efl_gfx_hint_weight_set(efl_added, EFL_GFX_HINT_EXPAND, 0.0),
- efl_event_callback_add(efl_added, EFL_UI_RADIO_EVENT_CHANGED, _cb_radio_changed_scale_type, o_bg),
- efl_pack(hbox, efl_added));
-
- rd = efl_add(EFL_UI_RADIO_CLASS, hbox,
- efl_ui_radio_state_value_set(efl_added, EFL_GFX_IMAGE_SCALE_TYPE_TILE),
- efl_ui_radio_group_add(efl_added, rdg),
- efl_text_set(efl_added, "Tile"),
- efl_gfx_hint_weight_set(efl_added, EFL_GFX_HINT_EXPAND, 0.0),
- efl_event_callback_add(efl_added, EFL_UI_RADIO_EVENT_CHANGED, _cb_radio_changed_scale_type, o_bg),
- efl_pack(hbox, efl_added));
-
- efl_ui_radio_group_value_set(rdg, EFL_GFX_IMAGE_SCALE_TYPE_FILL);
-
- efl_add(EFL_UI_CHECK_CLASS, hbox,
- efl_text_set(efl_added, "Bg Color"),
- efl_gfx_hint_weight_set(efl_added, EFL_GFX_HINT_EXPAND, 0.0),
- efl_event_callback_add(efl_added, EFL_UI_CHECK_EVENT_CHANGED, _cb_check_changed_scale_type, o_bg),
- efl_pack(hbox, efl_added));
+ rd = efl_add(EFL_UI_RADIO_CLASS, hbox);
+ efl_ui_radio_state_value_set(rd, EFL_GFX_IMAGE_SCALE_TYPE_FILL);
+ efl_text_set(rd, "Fill");
+ efl_gfx_hint_weight_set(rd, EFL_GFX_HINT_EXPAND, 0.0);
+ efl_event_callback_add(rd, EFL_UI_CHECK_EVENT_SELECTED_CHANGED, _cb_radio_changed_scale_type, o_bg);
+ efl_pack(hbox, rd);
+
+ rd = efl_add(EFL_UI_RADIO_CLASS, hbox);
+ efl_ui_radio_state_value_set(rd, EFL_GFX_IMAGE_SCALE_TYPE_FIT_INSIDE);
+ efl_text_set(rd, "Fit Inside");
+ efl_gfx_hint_weight_set(rd, EFL_GFX_HINT_EXPAND, 0.0);
+ efl_event_callback_add(rd, EFL_UI_CHECK_EVENT_SELECTED_CHANGED, _cb_radio_changed_scale_type, o_bg);
+ efl_pack(hbox, rd);
+
+ rd = efl_add(EFL_UI_RADIO_CLASS, hbox);
+ efl_ui_radio_state_value_set(rd, EFL_GFX_IMAGE_SCALE_TYPE_FIT_OUTSIDE);
+ efl_text_set(rd, "Fit Outside");
+ efl_gfx_hint_weight_set(rd, EFL_GFX_HINT_EXPAND, 0.0);
+ efl_event_callback_add(rd, EFL_UI_CHECK_EVENT_SELECTED_CHANGED, _cb_radio_changed_scale_type, o_bg);
+ efl_pack(hbox, rd);
+
+ rd = efl_add(EFL_UI_RADIO_CLASS, hbox);
+ efl_ui_radio_state_value_set(rd, EFL_GFX_IMAGE_SCALE_TYPE_NONE);
+ efl_text_set(rd, "None");
+ efl_gfx_hint_weight_set(rd, EFL_GFX_HINT_EXPAND, 0.0);
+ efl_event_callback_add(rd, EFL_UI_CHECK_EVENT_SELECTED_CHANGED, _cb_radio_changed_scale_type, o_bg);
+ efl_pack(hbox, rd);
+
+ rd = efl_add(EFL_UI_RADIO_CLASS, hbox);
+ efl_ui_radio_state_value_set(rd, EFL_GFX_IMAGE_SCALE_TYPE_TILE);
+ efl_text_set(rd, "Tile");
+ efl_gfx_hint_weight_set(rd, EFL_GFX_HINT_EXPAND, 0.0);
+ efl_event_callback_add(rd, EFL_UI_CHECK_EVENT_SELECTED_CHANGED, _cb_radio_changed_scale_type, o_bg);
+ efl_pack(hbox, rd);
+
+ efl_ui_radio_group_selected_value_set(hbox, EFL_GFX_IMAGE_SCALE_TYPE_FILL);
+
+ c = efl_add(EFL_UI_CHECK_CLASS, box);
+ efl_text_set(c, "Bg Color");
+ efl_gfx_hint_weight_set(c, EFL_GFX_HINT_EXPAND, 0.0);
+ efl_event_callback_add(c, EFL_UI_CHECK_EVENT_SELECTED_CHANGED, _cb_check_changed_scale_type, o_bg);
+ efl_pack(box, c);
efl_gfx_entity_size_set(win, EINA_SIZE2D(300, 200));
}
static void
_reset_cb(void *data, const Efl_Event *ev EINA_UNUSED)
{
- Evas_Object *radio = data;
+ Efl_Ui_Radio_Group *radio = data;
Evas_Object *target;
- radio = efl_ui_radio_selected_object_get(radio);
+ radio = efl_ui_radio_group_selected_object_get(radio);
target = evas_object_data_get(radio, "data");
efl_gfx_color_set(efl_part(target, "background"), 0, 0, 0, 0);
static void
_color_cb(void *data, const Efl_Event *ev EINA_UNUSED)
{
- Evas_Object *radio = data;
+ Efl_Ui_Radio_Group *radio = data;
Evas_Object *target;
static Eina_Bool i;
- radio = efl_ui_radio_selected_object_get(radio);
+ radio = efl_ui_radio_group_selected_object_get(radio);
target = evas_object_data_get(radio, "data");
i ^= EINA_TRUE;
efl_gfx_color_set(efl_part(target, "background"), (i) ? 255 : 0, (i) ? 0 : 255, 0, 255);
static void
_scale_type_cb(void *data, const Efl_Event *ev EINA_UNUSED)
{
- Evas_Object *radio = data;
+ Efl_Ui_Radio_Group *radio = data;
Evas_Object *target;
Efl_Gfx_Image_Scale_Type type;
char buf[PATH_MAX];
- radio = efl_ui_radio_selected_object_get(radio);
+ radio = efl_ui_radio_group_selected_object_get(radio);
target = evas_object_data_get(radio, "data");
snprintf(buf, sizeof(buf), "%s/images/plant_01.jpg", elm_app_data_dir_get());
efl_gfx_image_scale_type_set(efl_part(target, "background"), type);
}
-static Evas_Object *
+static Efl_Ui_Radio_Group *
_create_box_contents(Evas_Object *box)
{
Evas_Object *hbox;
Evas_Object *radio_group, *radio;
Evas_Object *content;
+ Efl_Ui_Radio_Group *group;
char buf[PATH_MAX];
unsigned int i;
+ group = efl_new(EFL_UI_RADIO_GROUP_IMPL_CLASS, NULL);
+
hbox = efl_add(EFL_UI_BOX_CLASS, box,
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL),
efl_gfx_hint_weight_set(efl_added, 1, 1),
efl_pack_end(box, efl_added));
- radio_group = radio = efl_add(EFL_UI_RADIO_CLASS, hbox,
- efl_pack_end(hbox, efl_added),
- efl_gfx_hint_weight_set(efl_added, 0, 0),
- efl_ui_radio_state_value_set(efl_added, 0));
+ radio_group = radio = efl_add(EFL_UI_RADIO_CLASS, hbox);
+ efl_gfx_hint_weight_set(radio, 0, 0);
+ efl_ui_radio_state_value_set(radio, 0);
+ efl_ui_radio_group_register(group, radio);
+ efl_pack_end(hbox, radio);
content = efl_add(EFL_UI_BOX_CLASS, hbox,
efl_pack_end(hbox, efl_added));
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL),
efl_pack_end(box, efl_added));
- radio = efl_add(EFL_UI_RADIO_CLASS, hbox,
- efl_ui_radio_group_add(efl_added, radio_group),
- efl_pack_end(hbox, efl_added),
- efl_ui_radio_state_value_set(efl_added, i + 1),
- efl_gfx_hint_weight_set(efl_added, 0, 0));
+ radio = efl_add(EFL_UI_RADIO_CLASS, hbox);
+ efl_ui_radio_state_value_set(radio, i + 1);
+ efl_gfx_hint_weight_set(radio, 0, 0);
+ efl_ui_radio_group_register(group, radio);
+ efl_pack_end(hbox, radio);
content = efl_add(content_class[i], hbox,
efl_pack_end(hbox, efl_added));
evas_object_data_set(radio, "data", content);
}
- efl_ui_radio_group_value_set(radio_group, 0);
+ efl_ui_radio_group_selected_value_set(group, 0);
return radio_group;
}
Evas_Object *win;
Evas_Object *scr;
Evas_Object *vbox, *hbox;
- Evas_Object *radio_group;
+ Efl_Ui_Radio_Group *radio_group;
Evas_Object *reset_btn, *color_btn, *scale_btn;
content_class[0] = EFL_UI_CALENDAR_CLASS;
size_params->active_view = params->active_view;
size_params->params = params;
- efl_event_callback_add(ck, EFL_UI_CHECK_EVENT_CHANGED, width_check_cb,
+ efl_event_callback_add(ck, EFL_UI_CHECK_EVENT_SELECTED_CHANGED, width_check_cb,
size_params);
efl_event_callback_add(ck, EFL_EVENT_DEL, check_del_cb, size_params);
size_params->active_view = params->active_view;
size_params->params = params;
- efl_event_callback_add(ck, EFL_UI_CHECK_EVENT_CHANGED, height_check_cb,
+ efl_event_callback_add(ck, EFL_UI_CHECK_EVENT_SELECTED_CHANGED, height_check_cb,
size_params);
efl_event_callback_add(ck, EFL_EVENT_DEL, check_del_cb, size_params);
} Weight_Mode;
static void
-weights_cb(void *data, const Efl_Event *event)
+weights_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
{
- Weight_Mode mode = elm_radio_state_value_get(event->object);
+ Weight_Mode mode = elm_radio_state_value_get(obj);
switch (mode)
{
}
static void
-flow_check_cb(void *data, const Efl_Event *event)
+flow_check_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
{
- Eina_Bool chk = elm_check_selected_get(event->object);
+ Eina_Bool chk = elm_check_selected_get(obj);
Eina_List *list = NULL;
Eina_Iterator *it;
Eo *box, *win, *sobj, *parent;
}
static void
-horiz_check_cb(void *data, const Efl_Event *event)
+horiz_check_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
{
- Eina_Bool chk = elm_check_selected_get(event->object);
+ Eina_Bool chk = elm_check_selected_get(obj);
Eo *box = efl_key_wref_get(data, "box");
efl_ui_layout_orientation_set(box, chk ? EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL : EFL_UI_LAYOUT_ORIENTATION_VERTICAL);
}
static void
-homo_check_cb(void *data, const Efl_Event *event)
+homo_check_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
{
- Eina_Bool chk = elm_check_selected_get(event->object);
+ Eina_Bool chk = elm_check_selected_get(obj);
Eo *box = efl_key_wref_get(data, "box");
efl_ui_box_homogeneous_set(box, chk);
}
}
static void
-custom_check_cb(void *data, const Efl_Event *event)
+custom_check_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
{
EFL_OPS_DEFINE(custom_layout_ops,
EFL_OBJECT_OP_FUNC(efl_pack_layout_update, _custom_layout_update));
- Eina_Bool chk = elm_check_selected_get(event->object);
+ Eina_Bool chk = elm_check_selected_get(obj);
Eo *box, *win = data;
box = efl_key_wref_get(win, "box");
chk = o = elm_radio_add(win);
elm_object_text_set(o, "No weight");
- efl_event_callback_add(o, EFL_UI_RADIO_EVENT_CHANGED, weights_cb, win);
+ evas_object_smart_callback_add(o, "changed", weights_cb, win);
efl_gfx_hint_align_set(o, 0, 0.5);
elm_radio_state_value_set(o, NONE);
efl_pack(bx, o);
o = elm_radio_add(win);
elm_object_text_set(o, "No weight + box fill");
- efl_event_callback_add(o, EFL_UI_RADIO_EVENT_CHANGED, weights_cb, win);
+ evas_object_smart_callback_add(o, "changed", weights_cb, win);
efl_gfx_hint_align_set(o, 0, 0.5);
elm_radio_state_value_set(o, NONE_BUT_FILL);
elm_radio_group_add(o, chk);
o = elm_radio_add(win);
elm_object_text_set(o, "Equal weights");
- efl_event_callback_add(o, EFL_UI_RADIO_EVENT_CHANGED, weights_cb, win);
+ evas_object_smart_callback_add(o, "changed", weights_cb, win);
efl_gfx_hint_align_set(o, 0, 0.5);
elm_radio_state_value_set(o, EQUAL);
elm_radio_group_add(o, chk);
o = elm_radio_add(win);
elm_object_text_set(o, "One weight only");
- efl_event_callback_add(o, EFL_UI_RADIO_EVENT_CHANGED, weights_cb, win);
+ evas_object_smart_callback_add(o, "changed", weights_cb, win);
efl_gfx_hint_align_set(o, 0, 0.5);
elm_radio_state_value_set(o, ONE);
elm_radio_group_add(o, chk);
o = elm_radio_add(win);
elm_object_text_set(o, "Two weights");
- efl_event_callback_add(o, EFL_UI_RADIO_EVENT_CHANGED, weights_cb, win);
+ evas_object_smart_callback_add(o, "changed", weights_cb, win);
efl_gfx_hint_align_set(o, 0, 0.5);
elm_radio_state_value_set(o, TWO);
elm_radio_group_add(o, chk);
o = elm_check_add(win);
elm_check_selected_set(o, 0);
elm_object_text_set(o, "Flow");
- efl_event_callback_add(o, EFL_UI_CHECK_EVENT_CHANGED, flow_check_cb, win);
+ evas_object_smart_callback_add(o, "changed", flow_check_cb, win);
efl_gfx_hint_align_set(o, 0, 0);
efl_pack(bx, o);
efl_gfx_entity_visible_set(o, 1);
o = elm_check_add(win);
elm_check_selected_set(o, 1);
elm_object_text_set(o, "Horizontal");
- efl_event_callback_add(o, EFL_UI_CHECK_EVENT_CHANGED, horiz_check_cb, win);
+ evas_object_smart_callback_add(o, "changed", horiz_check_cb, win);
efl_gfx_hint_align_set(o, 0, 0);
efl_pack(bx, o);
efl_gfx_entity_visible_set(o, 1);
o = elm_check_add(win);
elm_check_selected_set(o, 0);
elm_object_text_set(o, "Homogenous");
- efl_event_callback_add(o, EFL_UI_CHECK_EVENT_CHANGED, homo_check_cb, win);
+ evas_object_smart_callback_add(o, "changed", homo_check_cb, win);
efl_gfx_hint_align_set(o, 0, 0);
efl_pack(bx, o);
efl_gfx_entity_visible_set(o, 1);
o = elm_check_add(win);
elm_check_selected_set(o, 0);
elm_object_text_set(o, "Custom layout");
- efl_event_callback_add(o, EFL_UI_CHECK_EVENT_CHANGED, custom_check_cb, win);
+ evas_object_smart_callback_add(o, "changed", custom_check_cb, win);
efl_gfx_hint_align_set(o, 0, 0);
efl_gfx_hint_weight_set(o, 0, 1);
efl_pack(bx, o);
{
Eo *win = data;
Eo *im = efl_key_data_get(win, "im");
- Eo *rdg = efl_key_data_get(win, "rdg");
- Efl_Gfx_Image_Orientation v = efl_ui_radio_state_value_get(efl_ui_radio_selected_object_get(rdg));
+
+ Efl_Gfx_Image_Orientation v = efl_ui_radio_group_selected_value_get(ev->object);
+ if (((int)v) == -1) v = 0;
efl_gfx_image_orientation_set(im, v);
fprintf(stderr, "Set %i and got %i\n",
void
test_ui_image(void *data EINA_UNUSED, Eo *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
- Eo *win, *box, *im, *rd, *rdg = NULL;
+ Eo *win, *box, *im, *rd;
int i;
win = win_add("image test", "Image Test");
- box = efl_add(EFL_UI_BOX_CLASS, win);
+ box = efl_add(EFL_UI_RADIO_BOX_CLASS, win);
efl_gfx_hint_weight_set(box, 1.0, 1.0);
efl_content_set(win, box);
+ efl_key_data_set(win, "rdg", box);
im = img_add(win, "/images/logo.png");
- efl_pack(box, im);
+ efl_content_set(win, im);
for (i = 0; images_orient[i].name; ++i)
{
efl_ui_radio_state_value_set(rd, images_orient[i].orient);
efl_text_set(rd, images_orient[i].name);
efl_pack(box, rd);
- efl_event_callback_add(rd, EFL_UI_RADIO_EVENT_CHANGED, my_im_ch, win);
- if (!rdg)
- {
- rdg = rd;
- efl_key_data_set(win, "rdg", rdg);
- }
- else
- {
- efl_ui_radio_group_add(rd, rdg);
- }
}
efl_gfx_entity_size_set(win, EINA_SIZE2D(320, 480));
+ efl_event_callback_add(box, EFL_UI_RADIO_GROUP_EVENT_VALUE_CHANGED, my_im_ch, win);
}
{
Eo *win = data;
Eo *im = efl_key_data_get(win, "im");
- Eo *rdg = efl_key_data_get(win, "rdg");
- int v = efl_ui_radio_state_value_get(efl_ui_radio_selected_object_get(rdg));
+ int v = efl_ui_radio_group_selected_value_get(ev->object);
+ if (v == -1) v = 0;
efl_gfx_image_scale_type_set(im, images_scale_type[v].scale_type);
fprintf(stderr, "Set %d[%s] and got %d\n",
void
test_ui_image_scale_type(void *data EINA_UNUSED, Eo *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
- Eo *win, *box, *im, *rd, *rdg = NULL;
+ Eo *win, *box, *im, *rd;
int i;
win = win_add("image test scale type", "Image Test Scale Type");
- box = efl_add(EFL_UI_BOX_CLASS, win);
+ box = efl_add(EFL_UI_RADIO_BOX_CLASS, win);
efl_gfx_hint_weight_set(box, 1.0, 1.0);
efl_content_set(win, box);
+ efl_key_data_set(win, "rdg", box);
im = efl_add(EFL_UI_IMAGE_CLASS, win);
char buf[PATH_MAX];
elm_image_file_set(im, buf, NULL);
efl_gfx_hint_weight_set(im, 1.0, 1.0);
efl_gfx_hint_fill_set(im, EINA_TRUE, EINA_TRUE);
- efl_pack(box, im);
+ efl_content_set(win, im);
efl_key_data_set(win, "im", im);
efl_ui_radio_state_value_set(rd, i);
efl_text_set(rd, images_scale_type[i].name);
efl_pack(box, rd);
- efl_event_callback_add(rd, EFL_UI_RADIO_EVENT_CHANGED, my_im_scale_ch, win);
- if (!rdg)
- {
- rdg = rd;
- efl_key_data_set(win, "rdg", rdg);
- }
- else
- {
- efl_ui_radio_group_add(rd, rdg);
- }
}
-
+ efl_event_callback_add(box, EFL_UI_RADIO_GROUP_EVENT_VALUE_CHANGED, my_im_scale_ch, win);
efl_gfx_entity_size_set(win, EINA_SIZE2D(320, 480));
}
void
test_remote_ui_image(void *data EINA_UNUSED, Eo *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
- Eo *win, *box, *im, *rd, *rdg = NULL, *box2, *o;
+ Eo *win, *box, *im, *rd, *box2, *o;
int i;
win = win_add("image test", "Image Test");
evas_object_smart_callback_add(im, "download,done", _download_done_cb, win);
evas_object_smart_callback_add(im, "download,error", _download_error_cb, win);
+ box2 = efl_add(EFL_UI_RADIO_BOX_CLASS, win);
+ efl_gfx_hint_weight_set(box2, 1.0, 1.0);
+ efl_content_set(win, box2);
+ efl_key_data_set(win, "rdg", box2);
+ efl_pack(box, box2);
+
for (i = 0; images_orient[i].name; ++i)
{
rd = efl_add(EFL_UI_RADIO_CLASS, win);
efl_gfx_hint_weight_set(rd, 1.0, 0.0);
efl_ui_radio_state_value_set(rd, images_orient[i].orient);
efl_text_set(rd, images_orient[i].name);
- efl_pack(box, rd);
- efl_event_callback_add(rd, EFL_UI_RADIO_EVENT_CHANGED, my_im_ch, win);
- if (!rdg)
- {
- rdg = rd;
- efl_key_data_set(win, "rdg", rdg);
- }
- else
- {
- efl_ui_radio_group_add(rd, rdg);
- }
+ efl_pack(box2, rd);
}
+ efl_event_callback_add(box2, EFL_UI_RADIO_GROUP_EVENT_VALUE_CHANGED, my_im_ch, win);
box2 = o = efl_add(EFL_UI_BOX_CLASS, box);
efl_ui_layout_orientation_set(o, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL);
efl_gfx_hint_weight_set(o, 1.0, 0);
efl_gfx_hint_fill_set(o, EINA_TRUE, EINA_TRUE);
+ efl_pack(box, box2);
o = efl_add(EFL_UI_TEXT_CLASS, box2,
efl_text_interactive_editable_set(efl_added, EINA_FALSE)
evas_object_show(o);
efl_pack(box2, o);
- efl_pack(box, box2);
// set file now
_url_activate_cb(win, o, NULL);
);
efl_pack(hbox, label);
- chk1 = efl_add(EFL_UI_CHECK_CLASS, hbox,
- efl_text_set(efl_added, "Async file open"),
- efl_gfx_hint_weight_set(efl_added, 0.0, 0.0),
- efl_gfx_hint_fill_set(efl_added, EINA_TRUE, EINA_FALSE)
- );
+ chk1 = efl_add(EFL_UI_CHECK_CLASS, hbox);
+ efl_text_set(chk1, "Async file open");
+ efl_gfx_hint_weight_set(chk1, 0.0, 0.0);
+ efl_gfx_hint_fill_set(chk1, EINA_TRUE, EINA_FALSE);
efl_pack(hbox, chk1);
efl_key_data_set(win, "chk1", chk1);
- chk2 = efl_add(EFL_UI_CHECK_CLASS, hbox,
- efl_text_set(efl_added, "Disable preload"),
- efl_gfx_hint_weight_set(efl_added, 0.0, 0.0),
- efl_gfx_hint_fill_set(efl_added, EINA_TRUE, EINA_FALSE)
- );
+ chk2 = efl_add(EFL_UI_CHECK_CLASS, hbox);
+ efl_text_set(chk2, "Disable preload");
+ efl_gfx_hint_weight_set(chk2, 0.0, 0.0);
+ efl_gfx_hint_fill_set(chk2, EINA_TRUE, EINA_FALSE);
efl_pack(hbox, chk2);
efl_key_data_set(win, "chk2", chk2);
}
{
Eo *o_bg = data;
int size;
- size = efl_ui_radio_state_value_get(efl_ui_radio_selected_object_get(ev->object));
+ size = efl_ui_radio_group_selected_value_get(ev->object);
+ if (size == -1) size = 0;
//FIXME
elm_image_prescale_set(o_bg, size);
}
{
Eo *win, *im;
Eo *box, *hbox;
- Eo *rd, *rdg;
+ Eo *rd;
win = win_add("image-prescale", "Image Prescale Test");
im = img_add(win, "/images/plant_01.jpg");
efl_pack(box, im);
- hbox = efl_add(EFL_UI_BOX_CLASS, win);
+ hbox = efl_add(EFL_UI_RADIO_BOX_CLASS, win);
efl_ui_layout_orientation_set(hbox, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL);
efl_gfx_hint_weight_set(hbox, 1.0, 1.0);
efl_gfx_hint_fill_set(hbox, EINA_TRUE, EINA_TRUE);
efl_ui_radio_state_value_set(rd, 50);
efl_text_set(rd, "50");
efl_gfx_hint_weight_set(rd, 1.0, 1.0);
- efl_event_callback_add(rd, EFL_UI_RADIO_EVENT_CHANGED, _cb_prescale_radio_changed, im);
efl_pack(hbox, rd);
- rdg = rd;
rd = efl_add(EFL_UI_RADIO_CLASS, win);
efl_ui_radio_state_value_set(rd, 100);
- efl_ui_radio_group_add(rd, rdg);
efl_text_set(rd, "100");
efl_gfx_hint_weight_set(rd, 1.0, 1.0);
- efl_event_callback_add(rd, EFL_UI_RADIO_EVENT_CHANGED, _cb_prescale_radio_changed, im);
efl_pack(hbox, rd);
rd = efl_add(EFL_UI_RADIO_CLASS, win);
efl_ui_radio_state_value_set(rd, 200);
- efl_ui_radio_group_add(rd, rdg);
efl_text_set(rd, "200");
efl_gfx_hint_weight_set(rd, 1.0, 1.0);
- efl_event_callback_add(rd, EFL_UI_RADIO_EVENT_CHANGED, _cb_prescale_radio_changed, im);
efl_pack(hbox, rd);
+ efl_event_callback_add(hbox, EFL_UI_RADIO_GROUP_EVENT_VALUE_CHANGED, _cb_prescale_radio_changed, im);
- elm_radio_value_set(rdg, 200);
+ efl_ui_radio_group_selected_object_set(hbox, rd);
efl_pack(box, hbox);
size_params->pager = params->pager;
size_params->params = params;
- efl_event_callback_add(ck, EFL_UI_CHECK_EVENT_CHANGED, width_check_cb,
+ efl_event_callback_add(ck, EFL_UI_CHECK_EVENT_SELECTED_CHANGED, width_check_cb,
size_params);
efl_event_callback_add(ck, EFL_EVENT_DEL, check_del_cb, size_params);
size_params->pager = params->pager;
size_params->params = params;
- efl_event_callback_add(ck, EFL_UI_CHECK_EVENT_CHANGED, height_check_cb,
+ efl_event_callback_add(ck, EFL_UI_CHECK_EVENT_SELECTED_CHANGED, height_check_cb,
size_params);
efl_event_callback_add(ck, EFL_EVENT_DEL, check_del_cb, size_params);
static void loop_radio_cb(void *data, const Efl_Event *ev)
{
Eo *pager = data;
- int state = efl_ui_radio_group_value_get(ev->object);
+ int state = efl_ui_radio_group_selected_value_get(efl_ui_widget_parent_get(ev->object));
efl_ui_pager_loop_mode_set(pager, state);
}
inbox = efl_add(EFL_UI_BOX_CLASS, fr,
efl_content_set(fr, efl_added));
- ck = elm_check_add(inbox);
- elm_object_text_set(ck, "Fill");
+ ck = efl_add(EFL_UI_CHECK_CLASS, inbox);
+ efl_text_set(ck, "Fill");
efl_pack_end(inbox, ck);
efl_gfx_entity_visible_set(ck, 1);
size_params->pager = params->pager;
size_params->params = params;
- efl_event_callback_add(ck, EFL_UI_CHECK_EVENT_CHANGED, width_check_cb,
+ efl_event_callback_add(ck, EFL_UI_CHECK_EVENT_SELECTED_CHANGED, width_check_cb,
size_params);
efl_event_callback_add(ck, EFL_EVENT_DEL, check_del_cb, size_params);
inbox = efl_add(EFL_UI_BOX_CLASS, fr,
efl_content_set(fr, efl_added));
- ck = elm_check_add(inbox);
- elm_object_text_set(ck, "Fill");
+ ck = efl_add(EFL_UI_CHECK_CLASS, inbox);
+ efl_text_set(ck, "Fill");
efl_pack_end(inbox, ck);
efl_gfx_entity_visible_set(ck, 1);
size_params->pager = params->pager;
size_params->params = params;
- efl_event_callback_add(ck, EFL_UI_CHECK_EVENT_CHANGED, height_check_cb,
+ efl_event_callback_add(ck, EFL_UI_CHECK_EVENT_SELECTED_CHANGED, height_check_cb,
size_params);
efl_event_callback_add(ck, EFL_EVENT_DEL, check_del_cb, size_params);
Params *params = (Params *)data;
Evas_Object *navi = params->navi;
Eo *pager = params->pager;
- Eo *btn, *box;
+ Eo *btn, *box, *c;
Eina_Bool prev, next;
btn = efl_add(EFL_UI_BUTTON_CLASS, navi,
efl_ui_pager_scroll_block_get(pager, &prev, &next);
- efl_add(EFL_UI_CHECK_CLASS, box,
- efl_ui_widget_style_set(efl_added, "toggle"),
- efl_text_set(efl_added, "Prev Block"),
- efl_ui_check_selected_set(efl_added, prev),
- efl_event_callback_add(efl_added, EFL_UI_CHECK_EVENT_CHANGED,
- prev_block_check_cb, pager),
- efl_pack_end(box, efl_added));
-
- efl_add(EFL_UI_CHECK_CLASS, box,
- efl_ui_widget_style_set(efl_added, "toggle"),
- efl_text_set(efl_added, "Next Block"),
- efl_ui_check_selected_set(efl_added, next),
- efl_event_callback_add(efl_added, EFL_UI_CHECK_EVENT_CHANGED,
- next_block_check_cb, pager),
- efl_pack_end(box, efl_added));
+ c = efl_add(EFL_UI_CHECK_CLASS, box);
+ efl_ui_widget_style_set(c, "toggle");
+ efl_text_set(c, "Prev Block");
+ efl_ui_check_selected_set(c, prev);
+ efl_event_callback_add(c, EFL_UI_CHECK_EVENT_SELECTED_CHANGED,
+ prev_block_check_cb, pager);
+ efl_pack_end(box, c);
+
+ c = efl_add(EFL_UI_CHECK_CLASS, box);
+ efl_ui_widget_style_set(c, "toggle");
+ efl_text_set(c, "Next Block");
+ efl_ui_check_selected_set(c, next);
+ efl_event_callback_add(c, EFL_UI_CHECK_EVENT_SELECTED_CHANGED,
+ next_block_check_cb, pager);
+ efl_pack_end(box, c);
}
static void loop_cb(void *data EINA_UNUSED,
efl_event_callback_add(efl_added, EFL_UI_EVENT_CLICKED,
back_btn_cb, navi));
- box = efl_add(EFL_UI_BOX_CLASS, navi,
+ box = efl_add(EFL_UI_RADIO_BOX_CLASS, navi,
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE),
elm_naviframe_item_push(navi, "Loop", btn, NULL,
efl_added, NULL));
- rd = efl_add(EFL_UI_RADIO_CLASS, box,
- efl_ui_radio_state_value_set(efl_added, EFL_UI_PAGER_LOOP_DISABLED),
- efl_text_set(efl_added, "Disabled"),
- efl_gfx_hint_weight_set(efl_added, 1, 0),
- efl_event_callback_add(efl_added, EFL_UI_RADIO_EVENT_CHANGED,
- loop_radio_cb, pager),
- efl_pack(box, efl_added));
-
- rd = efl_add(EFL_UI_RADIO_CLASS, box,
- efl_ui_radio_state_value_set(efl_added, EFL_UI_PAGER_LOOP_ENABLED),
- efl_ui_radio_group_add(efl_added, rd),
- efl_text_set(efl_added, "Enabled"),
- efl_gfx_hint_weight_set(efl_added, 1, 0),
- efl_event_callback_add(efl_added, EFL_UI_RADIO_EVENT_CHANGED,
- loop_radio_cb, pager),
- efl_pack(box, efl_added));
+ rd = efl_add(EFL_UI_RADIO_CLASS, box);
+ efl_ui_radio_state_value_set(rd, EFL_UI_PAGER_LOOP_DISABLED);
+ efl_text_set(rd, "Disabled");
+ efl_gfx_hint_weight_set(rd, 1, 0);
+ efl_event_callback_add(rd, EFL_UI_CHECK_EVENT_SELECTED_CHANGED,
+ loop_radio_cb, pager);
+ efl_pack(box, rd);
+
+ rd = efl_add(EFL_UI_RADIO_CLASS, box);
+ efl_ui_radio_state_value_set(rd, EFL_UI_PAGER_LOOP_ENABLED);
+ efl_text_set(rd, "Enabled");
+ efl_gfx_hint_weight_set(rd, 1, 0);
+ efl_event_callback_add(rd, EFL_UI_CHECK_EVENT_SELECTED_CHANGED,
+ loop_radio_cb, pager);
+ efl_pack(box, rd);
loop = efl_ui_pager_loop_mode_get(pager);
- efl_ui_radio_group_value_set(rd, loop);
+ efl_ui_radio_group_selected_value_set(efl_ui_radio_box_group_get(box), loop);
if (loop == EFL_UI_PAGER_LOOP_DISABLED)
{
box = efl_add(EFL_UI_BOX_CLASS, win,
efl_content_set(win, efl_added));
- efl_add(EFL_UI_CHECK_CLASS, box,
- efl_ui_check_selected_set(efl_added, elm_config_scroll_thumbscroll_enabled_get()),
- efl_text_set(efl_added, "Enable thumb scroll (temporarily"),
- efl_event_callback_add(efl_added, EFL_UI_NSTATE_EVENT_CHANGED, _check_changed, NULL),
- efl_gfx_hint_weight_set(efl_added, EVAS_HINT_EXPAND, 0),
- efl_pack(box, efl_added));
-
- check = efl_add(EFL_UI_CHECK_CLASS, box,
- efl_text_set(efl_added, "Reset content on toggle"),
- efl_gfx_hint_weight_set(efl_added, EVAS_HINT_EXPAND, 0),
- efl_pack(box, efl_added));
+ check = efl_add(EFL_UI_CHECK_CLASS, box);
+ efl_ui_check_selected_set(check, elm_config_scroll_thumbscroll_enabled_get());
+ efl_text_set(check, "Enable thumb scroll (temporarily");
+ efl_event_callback_add(check, EFL_UI_NSTATE_EVENT_CHANGED, _check_changed, NULL);
+ efl_gfx_hint_weight_set(check, EVAS_HINT_EXPAND, 0);
+ efl_pack(box, check);
+
+ check = efl_add(EFL_UI_CHECK_CLASS, box);
+ efl_text_set(check, "Reset content on toggle");
+ efl_gfx_hint_weight_set(check, EVAS_HINT_EXPAND, 0);
+ efl_pack(box, check);
btn = efl_add(EFL_UI_BUTTON_CLASS, box,
efl_text_set(efl_added, "toggle"),
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE),
elm_naviframe_item_push(navi, "Tab", btn, NULL, efl_added, NULL));
- label_check = efl_add(EFL_UI_CHECK_CLASS, box,
- efl_text_set(efl_added, "Tab Label + Page"),
- efl_ui_check_selected_set(efl_added, EINA_FALSE),
- efl_pack_end(box, efl_added));
-
- icon_check = efl_add(EFL_UI_CHECK_CLASS, box,
- efl_text_set(efl_added, "Tab Icon"),
- efl_ui_check_selected_set(efl_added, EINA_FALSE),
- efl_pack_end(box, efl_added));
+ label_check = efl_add(EFL_UI_CHECK_CLASS, box);
+ efl_text_set(label_check, "Tab Label + Page");
+ efl_ui_check_selected_set(label_check, EINA_FALSE);
+ efl_pack_end(box, label_check);
+
+ icon_check = efl_add(EFL_UI_CHECK_CLASS, box);
+ efl_text_set(icon_check, "Tab Icon");
+ efl_ui_check_selected_set(icon_check, EINA_FALSE);
+ efl_pack_end(box, icon_check);
tcd->tab_pager = tab_pager;
tcd->label_check = label_check;
} Weight_Mode;
static void
-weights_cb(void *data, const Efl_Event *event)
+weights_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
{
EFL_OPS_DEFINE(custom_layout_ops,
EFL_OBJECT_OP_FUNC(efl_pack_layout_update, _custom_layout_update));
- Weight_Mode mode = elm_radio_state_value_get(event->object);
+ Weight_Mode mode = elm_radio_state_value_get(obj);
Eo *table = data;
if (mode != CUSTOM)
chk = o = elm_radio_add(win);
elm_object_text_set(o, "No weight");
- efl_event_callback_add(o, EFL_UI_RADIO_EVENT_CHANGED, weights_cb, table);
+ evas_object_smart_callback_add(o, "changed", weights_cb, table);
efl_gfx_hint_align_set(o, 0, 0.5);
elm_radio_state_value_set(o, NONE);
efl_pack(bx, o);
o = elm_radio_add(win);
elm_object_text_set(o, "No weight + table fill");
- efl_event_callback_add(o, EFL_UI_RADIO_EVENT_CHANGED, weights_cb, table);
+ evas_object_smart_callback_add(o, "changed", weights_cb, table);
efl_gfx_hint_align_set(o, 0, 0.5);
elm_radio_state_value_set(o, NONE_BUT_FILL);
elm_radio_group_add(o, chk);
o = elm_radio_add(win);
elm_object_text_set(o, "Equal weights");
- efl_event_callback_add(o, EFL_UI_RADIO_EVENT_CHANGED, weights_cb, table);
+ evas_object_smart_callback_add(o, "changed", weights_cb, table);
efl_gfx_hint_align_set(o, 0, 0.5);
elm_radio_state_value_set(o, EQUAL);
elm_radio_group_add(o, chk);
o = elm_radio_add(win);
elm_object_text_set(o, "One weight only");
- efl_event_callback_add(o, EFL_UI_RADIO_EVENT_CHANGED, weights_cb, table);
+ evas_object_smart_callback_add(o, "changed", weights_cb, table);
efl_gfx_hint_align_set(o, 0, 0.5);
elm_radio_state_value_set(o, ONE);
elm_radio_group_add(o, chk);
o = elm_radio_add(win);
elm_object_text_set(o, "Two weights");
- efl_event_callback_add(o, EFL_UI_RADIO_EVENT_CHANGED, weights_cb, table);
+ evas_object_smart_callback_add(o, "changed", weights_cb, table);
efl_gfx_hint_align_set(o, 0, 0.5);
elm_radio_state_value_set(o, TWO);
elm_radio_group_add(o, chk);
o = elm_radio_add(win);
elm_object_text_set(o, "Custom layout");
- efl_event_callback_add(o, EFL_UI_RADIO_EVENT_CHANGED, weights_cb, table);
+ evas_object_smart_callback_add(o, "changed", weights_cb, table);
efl_gfx_hint_align_set(o, 0, 0.5);
elm_radio_state_value_set(o, CUSTOM);
elm_radio_group_add(o, chk);
efl_gfx_entity_visible_set(hbox, EINA_TRUE);
elm_box_pack_end(box, hbox);
- chk = elm_check_add(win);
- elm_object_text_set(chk, "Ellipsis");
+ chk = efl_add(EFL_UI_CHECK_CLASS, win);
+ efl_text_set(chk, "Ellipsis");
elm_check_state_set(chk, efl_ui_textpath_ellipsis_get(txtpath));
- efl_event_callback_add(chk, EFL_UI_CHECK_EVENT_CHANGED, _ellipsis_changed_cb, txtpath);
+ efl_event_callback_add(chk, EFL_UI_CHECK_EVENT_SELECTED_CHANGED, _ellipsis_changed_cb, txtpath);
elm_box_pack_end(hbox, chk);
efl_gfx_entity_visible_set(chk, EINA_TRUE);
- chk = elm_check_add(win);
- elm_object_text_set(chk, "Clockwise");
- efl_event_callback_add(chk, EFL_UI_CHECK_EVENT_CHANGED, _direction_changed_cb, txtpath);
+ chk = efl_add(EFL_UI_CHECK_CLASS, win);
+ efl_text_set(chk, "Clockwise");
+ efl_event_callback_add(chk, EFL_UI_CHECK_EVENT_SELECTED_CHANGED, _direction_changed_cb, txtpath);
elm_box_pack_end(hbox, chk);
efl_gfx_entity_visible_set(chk, EINA_TRUE);
dir_chk = chk;
- chk = elm_check_add(win);
- elm_object_text_set(chk, "Short text");
- efl_event_callback_add(chk, EFL_UI_CHECK_EVENT_CHANGED, _short_text_changed_cb, txtpath);
+ chk = efl_add(EFL_UI_CHECK_CLASS, win);
+ efl_text_set(chk, "Short text");
+ efl_event_callback_add(chk, EFL_UI_CHECK_EVENT_SELECTED_CHANGED, _short_text_changed_cb, txtpath);
elm_box_pack_end(hbox, chk);
efl_gfx_entity_visible_set(chk, EINA_TRUE);
_select_radio_changed(void *data, const Efl_Event *ev)
{
Eo *list = data;
- efl_ui_select_mode_set(list, efl_ui_radio_state_value_get(ev->object));
+ efl_ui_select_mode_set(list, efl_ui_radio_group_selected_value_get(ev->object));
}
static void
-_anim_radio_changed(void *data EINA_UNUSED, const Efl_Event *ev)
+_anim_radio_changed(void *data, const Efl_Event *ev EINA_UNUSED)
{
- priv_d.anim = efl_ui_radio_state_value_get(ev->object);
+ priv_d.anim = efl_ui_radio_group_selected_value_get(data);
}
static void
Eo *win, *list;
Eo *wbox, *ibox, *bbox, *rbox;
Eo *item, *check, *txt;
- Eo *radio, *select_radio, *anim_radio;
+ Eo *radio;
Eo *slider, *scrl_btn;
int i;
char buf[256];
efl_text_set(txt, "Select Mode");
efl_pack_end(wbox, txt);
- bbox = efl_add(EFL_UI_BOX_CLASS, wbox);
+ bbox = efl_add(EFL_UI_RADIO_BOX_CLASS, wbox);
efl_ui_layout_orientation_set(bbox, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL);
efl_gfx_hint_weight_set(bbox, EFL_GFX_HINT_EXPAND, 0.05);
- select_radio = radio = efl_add(EFL_UI_RADIO_CLASS, wbox);
+ radio = efl_add(EFL_UI_RADIO_CLASS, wbox);
efl_text_set(radio, "SINGLE");
efl_ui_radio_state_value_set(radio, EFL_UI_SELECT_MODE_SINGLE);
- efl_event_callback_add(radio, EFL_UI_RADIO_EVENT_CHANGED, _select_radio_changed, list);
efl_pack_end(bbox, radio);
radio = efl_add(EFL_UI_RADIO_CLASS, wbox);
efl_text_set(radio, "SINGLE_ALWAYS");
efl_ui_radio_state_value_set(radio, EFL_UI_SELECT_MODE_SINGLE_ALWAYS);
- efl_ui_radio_group_add(radio, select_radio);
- efl_event_callback_add(radio, EFL_UI_RADIO_EVENT_CHANGED, _select_radio_changed, list);
efl_pack_end(bbox, radio);
radio = efl_add(EFL_UI_RADIO_CLASS, wbox);
efl_text_set(radio, "MULTI");
efl_ui_radio_state_value_set(radio, EFL_UI_SELECT_MODE_MULTI);
- efl_ui_radio_group_add(radio, select_radio);
- efl_event_callback_add(radio, EFL_UI_RADIO_EVENT_CHANGED, _select_radio_changed, list);
efl_pack_end(bbox, radio);
radio = efl_add(EFL_UI_RADIO_CLASS, wbox);
efl_text_set(radio, "NONE");
efl_ui_radio_state_value_set(radio, EFL_UI_SELECT_MODE_NONE);
- efl_ui_radio_group_add(radio, select_radio);
- efl_event_callback_add(radio, EFL_UI_RADIO_EVENT_CHANGED, _select_radio_changed, list);
efl_pack_end(bbox, radio);
efl_pack_end(wbox, bbox);
+ efl_event_callback_add(bbox, EFL_UI_RADIO_GROUP_EVENT_VALUE_CHANGED, _select_radio_changed, list);
/* scroll mode */
txt = efl_add(EFL_UI_TEXT_CLASS, wbox);
efl_ui_layout_orientation_set(bbox, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL);
efl_gfx_hint_weight_set(bbox, EFL_GFX_HINT_EXPAND, 0.05);
- rbox = efl_add(EFL_UI_BOX_CLASS, bbox);
+ rbox = efl_add(EFL_UI_RADIO_BOX_CLASS, bbox);
efl_ui_layout_orientation_set(rbox, EFL_UI_LAYOUT_ORIENTATION_VERTICAL);
- anim_radio = radio = efl_add(EFL_UI_RADIO_CLASS, rbox);
+ radio = efl_add(EFL_UI_RADIO_CLASS, rbox);
efl_gfx_hint_align_set(radio, 0.5, 0.5);
efl_text_set(radio, "ANIMATION OFF");
efl_ui_radio_state_value_set(radio, 0);
- efl_event_callback_add(radio, EFL_UI_RADIO_EVENT_CHANGED, _anim_radio_changed, NULL);
efl_pack_end(rbox, radio);
radio = efl_add(EFL_UI_RADIO_CLASS, rbox);
efl_gfx_hint_align_set(radio, 0.5, 0.5);
efl_text_set(radio, "ANIMATION ON");
efl_ui_radio_state_value_set(radio, 1);
- efl_ui_radio_group_add(radio, anim_radio);
- efl_event_callback_add(radio, EFL_UI_RADIO_EVENT_CHANGED, _anim_radio_changed, NULL);
efl_pack_end(rbox, radio);
efl_pack_end(bbox, rbox);
+ efl_event_callback_add(rbox, EFL_UI_RADIO_GROUP_EVENT_VALUE_CHANGED, _anim_radio_changed, rbox);
rbox = efl_add(EFL_UI_BOX_CLASS, bbox);
efl_ui_layout_orientation_set(rbox, EFL_UI_LAYOUT_ORIENTATION_VERTICAL);
win.text_set("Radio Example");
win.autohide_set(true);
- efl::ui::Box bx(instantiate, win);
+ efl::ui::Radio_Box bx(instantiate, win);
bx.orientation_set(EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL);
win.content_set(bx);
radio.content_set(ic);
bx.pack_end(radio);
- auto cb_val = std::bind([] (efl::ui::Radio &obj)
- { std::cout << "val is now: " << obj.group_value_get() << std::endl; },
+ auto cb_val = std::bind([bx] (efl::ui::Radio &obj EINA_UNUSED)
+ { std::cout << "val is now: " << bx.selected_value_get() << std::endl; },
std::placeholders::_1);
efl::eolian::event_add(efl::ui::Nstate::changed_event, radio, cb_val);
efl::ui::Radio radio2(instantiate, win);
radio2.text_set("Radio 2");
radio2.state_value_set(2);
- radio2.group_add(group);
efl::ui::Image ic2(instantiate, win);
ic2.icon_set("file");
efl::ui::Radio radio3(instantiate, win);
radio3.text_set("Radio 3");
radio3.state_value_set(3);
- radio3.group_add(group);
bx.pack_end(radio3);
efl::eolian::event_add(efl::ui::Nstate::changed_event, radio3, cb_val);
efl::ui::Radio radio4(instantiate, win);
radio4.text_set("Radio 4");
radio4.state_value_set(4);
- radio4.group_add(group);
bx.pack_end(radio4);
efl::eolian::event_add(efl::ui::Nstate::changed_event, radio4, cb_val);
}
#include <Efl_Config.h>
#include <Elementary_Options.h>
-/* FIXME: wtf? */
-#ifndef EFL_UI_RADIO_EVENT_CHANGED
-# define EFL_UI_RADIO_EVENT_CHANGED EFL_UI_NSTATE_EVENT_CHANGED
-#endif
/* Standard headers for standard system calls etc. */
#include <stdio.h>
#include <stdlib.h>
#include <elm_focus.h>
#include <Efl.h>
-/* FIXME: wtf? */
-#ifndef EFL_UI_RADIO_EVENT_CHANGED
-# define EFL_UI_RADIO_EVENT_CHANGED EFL_UI_NSTATE_EVENT_CHANGED
-#endif
# include <efl_ui.eot.h>
//define focus manager earlier since focus object and manager is circular
typedef Eo Efl_Ui_Focus_Manager;
{
ELM_RADIO_DATA_GET(obj, sd);
- if (sd->group->value == sd->value) return;
-
- if ((!_elm_config->access_mode) ||
- (_elm_access_2nd_click_timeout(obj)))
+ if (elm_widget_is_legacy(obj))
{
- sd->group->value = sd->value;
- if (sd->group->valuep) *(sd->group->valuep) = sd->group->value;
+ //in legacy, group is handeled by the widget
+ if (sd->group->value == sd->value) return;
- _state_set_all(sd, EINA_TRUE);
+ if ((!_elm_config->access_mode) ||
+ (_elm_access_2nd_click_timeout(obj)))
+ {
+ sd->group->value = sd->value;
+ if (sd->group->valuep) *(sd->group->valuep) = sd->group->value;
- if (_elm_config->access_mode)
- _elm_access_say(E_("State: On"));
- efl_event_callback_legacy_call
- (obj, EFL_UI_RADIO_EVENT_CHANGED, NULL);
+ _state_set_all(sd, EINA_TRUE);
+ if (_elm_config->access_mode)
+ _elm_access_say(E_("State: On"));
+ }
+ }
+ else
+ {
+ //in new API, we just toggle the state of the widget, rest will be automatically handled
+ efl_ui_check_selected_set(obj, !efl_ui_check_selected_get(obj));
}
}
elm_layout_signal_callback_add
(obj, "efl,action,radio,toggle", "*", _radio_on_cb, obj);
- pd->group = calloc(1, sizeof(Group));
- pd->group->radios = eina_list_append(pd->group->radios, obj);
+ if (elm_widget_is_legacy(obj))
+ {
+ pd->group = calloc(1, sizeof(Group));
+ pd->group->radios = eina_list_append(pd->group->radios, obj);
+ }
elm_layout_sizing_eval(obj);
EOLIAN static void
_efl_ui_radio_efl_object_destructor(Eo *obj EINA_UNUSED, Efl_Ui_Radio_Data *pd)
{
- pd->group->radios = eina_list_remove(pd->group->radios, obj);
- if (!pd->group->radios) free(pd->group);
-
- efl_destructor(efl_super(obj, MY_CLASS));
-}
-
-EOLIAN static void
-_efl_ui_radio_group_add(Eo *obj, Efl_Ui_Radio_Data *sd, Evas_Object *group)
-{
- ELM_RADIO_DATA_GET(group, sdg);
-
- if (!sdg)
- {
- if (eina_list_count(sd->group->radios) == 1) return;
- sd->group->radios = eina_list_remove(sd->group->radios, obj);
- sd->group = calloc(1, sizeof(Group));
- sd->group->radios = eina_list_append(sd->group->radios, obj);
- }
- else if (sd->group == sdg->group)
- return;
- else
+ if (elm_widget_is_legacy(obj))
{
- sd->group->radios = eina_list_remove(sd->group->radios, obj);
- if (!sd->group->radios) free(sd->group);
- sd->group = sdg->group;
- sd->group->radios = eina_list_append(sd->group->radios, obj);
+ pd->group->radios = eina_list_remove(pd->group->radios, obj);
+ if (!pd->group->radios) free(pd->group);
}
- if (sd->value == sd->group->value) efl_ui_check_selected_set(obj, EINA_TRUE);
- else efl_ui_check_selected_set(obj, EINA_FALSE);
+
+ efl_destructor(efl_super(obj, MY_CLASS));
}
EOLIAN static void
_efl_ui_radio_state_value_set(Eo *obj, Efl_Ui_Radio_Data *sd, int value)
{
sd->value = value;
- if (sd->value == sd->group->value) efl_ui_check_selected_set(obj, EINA_TRUE);
- else efl_ui_check_selected_set(obj, EINA_FALSE);
+ if (elm_widget_is_legacy(obj))
+ {
+ if (sd->value == sd->group->value) efl_ui_check_selected_set(obj, EINA_TRUE);
+ else efl_ui_check_selected_set(obj, EINA_FALSE);
+ }
}
EOLIAN static int
return sd->value;
}
-EOLIAN static void
-_efl_ui_radio_group_value_set(Eo *obj EINA_UNUSED, Efl_Ui_Radio_Data *sd, int value)
-{
- if (value == sd->group->value) return;
- sd->group->value = value;
- if (sd->group->valuep) *(sd->group->valuep) = sd->group->value;
- _state_set_all(sd, EINA_FALSE);
-}
-
-EOLIAN static int
-_efl_ui_radio_group_value_get(const Eo *obj EINA_UNUSED, Efl_Ui_Radio_Data *sd)
-{
- return sd->group->value;
-}
-
-EOLIAN static void
-_efl_ui_radio_value_pointer_set(Eo *obj EINA_UNUSED, Efl_Ui_Radio_Data *sd, int *valuep)
-{
- if (valuep)
- {
- sd->group->valuep = valuep;
- if (*(sd->group->valuep) != sd->group->value)
- {
- sd->group->value = *(sd->group->valuep);
- _state_set_all(sd, EINA_FALSE);
- }
- }
- else sd->group->valuep = NULL;
-}
-
-EOLIAN static Evas_Object*
-_efl_ui_radio_selected_object_get(const Eo *obj EINA_UNUSED, Efl_Ui_Radio_Data *sd)
-{
- Eina_List *l;
- Evas_Object *child;
-
- EINA_LIST_FOREACH(sd->group->radios, l, child)
- {
- ELM_RADIO_DATA_GET(child, sdc);
-
- if (sdc->value == sd->group->value) return child;
- }
-
- return NULL;
-}
-
EOLIAN static Eina_Bool
_efl_ui_radio_efl_ui_widget_on_access_activate(Eo *obj, Efl_Ui_Radio_Data *_pd EINA_UNUSED, Efl_Ui_Activate act)
{
EAPI void
elm_radio_value_set(Evas_Object *obj, int value)
{
- efl_ui_radio_group_value_set(obj, value);
+ EINA_SAFETY_ON_FALSE_RETURN(elm_widget_is_legacy(obj));
+ ELM_RADIO_DATA_GET(obj, sd);
+
+ if (value == sd->group->value) return;
+ sd->group->value = value;
+ if (sd->group->valuep) *(sd->group->valuep) = sd->group->value;
+ _state_set_all(sd, EINA_FALSE);
}
EAPI int
elm_radio_value_get(const Evas_Object *obj)
{
- return efl_ui_radio_group_value_get(obj);
+ EINA_SAFETY_ON_FALSE_RETURN_VAL(elm_widget_is_legacy(obj), 0);
+ ELM_RADIO_DATA_GET(obj, sd);
+ return sd->group->value;
+}
+
+EAPI void
+elm_radio_value_pointer_set(Efl_Ui_Radio *obj, int *valuep)
+{
+ EINA_SAFETY_ON_FALSE_RETURN(elm_widget_is_legacy(obj));
+ ELM_RADIO_DATA_GET(obj, sd);
+
+ if (valuep)
+ {
+ sd->group->valuep = valuep;
+ if (*(sd->group->valuep) != sd->group->value)
+ {
+ sd->group->value = *(sd->group->valuep);
+ _state_set_all(sd, EINA_FALSE);
+ }
+ }
+ else sd->group->valuep = NULL;
+}
+
+EAPI Efl_Canvas_Object *
+elm_radio_selected_object_get(const Efl_Ui_Radio *obj)
+{
+ EINA_SAFETY_ON_FALSE_RETURN_VAL(elm_widget_is_legacy(obj), NULL);
+ ELM_RADIO_DATA_GET(obj, sd);
+
+ Eina_List *l;
+ Evas_Object *child;
+
+ EINA_LIST_FOREACH(sd->group->radios, l, child)
+ {
+ ELM_RADIO_DATA_GET(child, sdc);
+
+ if (sdc->value == sd->group->value) return child;
+ }
+
+ return NULL;
+}
+
+EAPI void
+elm_radio_group_add(Efl_Ui_Radio *obj, Efl_Ui_Radio *group)
+{
+ EINA_SAFETY_ON_FALSE_RETURN(elm_widget_is_legacy(obj));
+ EINA_SAFETY_ON_FALSE_RETURN(elm_widget_is_legacy(group));
+ ELM_RADIO_DATA_GET(group, sdg);
+ ELM_RADIO_DATA_GET(obj, sd);
+
+ if (!sdg)
+ {
+ if (eina_list_count(sd->group->radios) == 1) return;
+ sd->group->radios = eina_list_remove(sd->group->radios, obj);
+ sd->group = calloc(1, sizeof(Group));
+ sd->group->radios = eina_list_append(sd->group->radios, obj);
+ }
+ else if (sd->group == sdg->group)
+ return;
+ else
+ {
+ sd->group->radios = eina_list_remove(sd->group->radios, obj);
+ if (!sd->group->radios) free(sd->group);
+ sd->group = sdg->group;
+ sd->group->radios = eina_list_append(sd->group->radios, obj);
+ }
+ if (sd->value == sd->group->value) efl_ui_check_selected_set(obj, EINA_TRUE);
+ else efl_ui_check_selected_set(obj, EINA_FALSE);
}
#include "efl_ui_radio_legacy_eo.c"
{
return efl_ui_radio_state_value_get(obj);
}
-
-EAPI void
-elm_radio_value_pointer_set(Efl_Ui_Radio *obj, int *valuep)
-{
- efl_ui_radio_value_pointer_set(obj, valuep);
-}
-
-EAPI Efl_Canvas_Object *
-elm_radio_selected_object_get(const Efl_Ui_Radio *obj)
-{
- return efl_ui_radio_selected_object_get(obj);
-}
-
-EAPI void
-elm_radio_group_add(Efl_Ui_Radio *obj, Efl_Ui_Radio *group)
-{
- efl_ui_radio_group_add(obj, group);
-}
{
int value;
Group *group;
-
- Eina_Bool state : 1;
};
/**
*
* @{
*/
-
-#define EFL_UI_CHECK_EVENT_CHANGED EFL_UI_NSTATE_EVENT_CHANGED
-
#ifndef EFL_NOLEGACY_API_SUPPORT
#include "elm_check_legacy.h"
#endif
}
static void
-_item_clicked_cb(void *data, const Efl_Event *event EINA_UNUSED)
+_item_clicked_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
{
Elm_Dayselector_Item_Data *it = data;
- efl_event_callback_legacy_call(WIDGET(it), EFL_UI_CHECK_EVENT_CHANGED, (void *)it->day);
+ evas_object_smart_callback_call(WIDGET(it), "changed", event_info);
}
static Elm_Dayselector_Item_Data *
snprintf(buf, sizeof(buf), "day%d,visible", _item_location_get(sd, it));
elm_layout_signal_emit(obj, buf, "elm");
- efl_event_callback_add
- (VIEW(it), EFL_UI_CHECK_EVENT_CHANGED, _item_clicked_cb, it);
+ evas_object_smart_callback_add(VIEW(it), "changed", _item_clicked_cb, it);
evas_object_event_callback_add
(VIEW(it), EVAS_CALLBACK_DEL, _item_del_cb, obj);
if (!content) return NULL;
sd->items = eina_list_remove(sd->items, it);
- efl_event_callback_del(content, EFL_UI_CHECK_EVENT_CHANGED, _item_clicked_cb, it);
+ evas_object_smart_callback_del_full(content, "changed", _item_clicked_cb, it);
evas_object_event_callback_del(content, EVAS_CALLBACK_DEL, _item_del_cb);
elm_object_signal_callback_del
};
static void
-_item_changed_cb(void *data, const Efl_Event *event)
+_item_changed_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
{
Elm_Prefs_Item_Changed_Cb prefs_it_changed_cb = data;
- prefs_it_changed_cb(event->object);
+ prefs_it_changed_cb(obj);
}
static Evas_Object *
{
Evas_Object *obj = elm_check_add(prefs);
- efl_event_callback_add
- (obj, EFL_UI_CHECK_EVENT_CHANGED, _item_changed_cb, cb);
+ evas_object_smart_callback_add(obj, "changed", _item_changed_cb, cb);
elm_check_state_set(obj, spec.b.def);
return obj;