efl_ui_radio: cleanup API

This is a bit of a giant commit. However, the problem here is that
cleaning up the API went hand in hand with rewriting most of the usages.
In the process of renewing and removing old API the following was done:
- Legacy API testcases have been ported back to smart callbacks
- EO-API testcases have been ported to efl_add syntax
- weird event #defines have been removed
- Wrong constructor usage has been removed
- Ported to the new box object introduced before
- removed legacy API from efl_ui_radio
  -> no more ptr(int) q66 will do jumps of happiness
  -> no more ununderstandable group_add methods
  -> Seperated code in blocks only for legacy, and blocks only for
non-legacy

To verify this commit, you can check all the tests that have been
touched here. Additionally, the cxx example has been adjusted

ref T7867

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9060
This commit is contained in:
Marcel Hollerbach 2019-05-29 20:06:25 +02:00
parent 8cc340e8b2
commit 89102ecbd3
21 changed files with 326 additions and 377 deletions

View File

@ -375,9 +375,12 @@ test_bg_window(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event
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
@ -402,7 +405,7 @@ test_bg_scale_type(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *e
{
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,
@ -427,59 +430,54 @@ test_bg_scale_type(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *e
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(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(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(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(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(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(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(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);
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_selected_value_set(hbox, EFL_GFX_IMAGE_SCALE_TYPE_FILL);
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));
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));
}

View File

@ -12,10 +12,10 @@ const Efl_Class *content_class[MAX_NUM_OF_CONTENT];
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);
@ -25,11 +25,11 @@ _reset_cb(void *data, const Efl_Event *ev EINA_UNUSED)
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);
@ -38,12 +38,12 @@ _color_cb(void *data, const Efl_Event *ev EINA_UNUSED)
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());
@ -53,24 +53,28 @@ _scale_type_cb(void *data, const Efl_Event *ev EINA_UNUSED)
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));
@ -89,11 +93,11 @@ _create_box_contents(Evas_Object *box)
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));
@ -110,7 +114,7 @@ _create_box_contents(Evas_Object *box)
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;
}
@ -121,7 +125,7 @@ test_part_background(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void
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;

View File

@ -399,7 +399,7 @@ active_view_size(void *data,
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);
@ -440,7 +440,7 @@ active_view_size(void *data,
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);

View File

@ -20,9 +20,9 @@ typedef enum {
} 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)
{
@ -138,9 +138,9 @@ alignv_btn_slider_cb(void *data, const Efl_Event *event)
}
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;
@ -167,17 +167,17 @@ flow_check_cb(void *data, const Efl_Event *event)
}
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);
}
@ -210,12 +210,12 @@ _custom_layout_update(Eo *pack, const void *data EINA_UNUSED)
}
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");
@ -268,7 +268,7 @@ test_ui_box(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_in
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);
@ -276,7 +276,7 @@ test_ui_box(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_in
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);
@ -285,7 +285,7 @@ test_ui_box(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_in
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);
@ -294,7 +294,7 @@ test_ui_box(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_in
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);
@ -303,7 +303,7 @@ test_ui_box(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_in
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);
@ -329,7 +329,7 @@ test_ui_box(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_in
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);
@ -337,7 +337,7 @@ test_ui_box(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_in
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);
@ -345,7 +345,7 @@ test_ui_box(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_in
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);
@ -353,7 +353,7 @@ test_ui_box(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_in
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);

View File

@ -50,8 +50,9 @@ my_im_ch(void *data, const Efl_Event *ev EINA_UNUSED)
{
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",
@ -61,17 +62,18 @@ my_im_ch(void *data, const Efl_Event *ev EINA_UNUSED)
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)
{
@ -81,19 +83,10 @@ test_ui_image(void *data EINA_UNUSED, Eo *obj EINA_UNUSED, void *event_info EIN
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);
}
@ -130,8 +123,8 @@ my_im_scale_ch(void *data, const Efl_Event *ev EINA_UNUSED)
{
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",
@ -141,14 +134,15 @@ my_im_scale_ch(void *data, const Efl_Event *ev EINA_UNUSED)
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];
@ -156,7 +150,7 @@ test_ui_image_scale_type(void *data EINA_UNUSED, Eo *obj EINA_UNUSED, void *eve
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);
@ -168,18 +162,8 @@ test_ui_image_scale_type(void *data EINA_UNUSED, Eo *obj EINA_UNUSED, void *eve
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));
}
@ -307,7 +291,7 @@ _url_activate_cb(void *data, Eo *obj, void *event_info EINA_UNUSED)
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");
@ -332,6 +316,12 @@ test_remote_ui_image(void *data EINA_UNUSED, Eo *obj EINA_UNUSED, void *event_i
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);
@ -339,23 +329,15 @@ test_remote_ui_image(void *data EINA_UNUSED, Eo *obj EINA_UNUSED, void *event_i
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)
@ -374,7 +356,6 @@ test_remote_ui_image(void *data EINA_UNUSED, Eo *obj EINA_UNUSED, void *event_i
evas_object_show(o);
efl_pack(box2, o);
efl_pack(box, box2);
// set file now
_url_activate_cb(win, o, NULL);
@ -567,19 +548,17 @@ test_load_ui_image(void *data EINA_UNUSED, Eo *obj EINA_UNUSED, void *event_inf
);
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);
}
@ -614,7 +593,8 @@ _cb_prescale_radio_changed(void *data, const Efl_Event *ev)
{
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);
}
@ -624,7 +604,7 @@ test_ui_image_prescale(void *data EINA_UNUSED, Eo *obj EINA_UNUSED, void *event_
{
Eo *win, *im;
Eo *box, *hbox;
Eo *rd, *rdg;
Eo *rd;
win = win_add("image-prescale", "Image Prescale Test");
@ -634,7 +614,7 @@ test_ui_image_prescale(void *data EINA_UNUSED, Eo *obj EINA_UNUSED, void *event_
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);
@ -643,27 +623,22 @@ test_ui_image_prescale(void *data EINA_UNUSED, Eo *obj EINA_UNUSED, void *event_
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);

View File

@ -375,7 +375,7 @@ static void page_size_cb(void *data,
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);
@ -416,7 +416,7 @@ static void page_size_cb(void *data,
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);

View File

@ -359,7 +359,7 @@ static void next_block_check_cb(void *data, const Efl_Event *ev)
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);
}
@ -409,8 +409,8 @@ static void page_size_cb(void *data,
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);
@ -429,7 +429,7 @@ static void page_size_cb(void *data,
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);
@ -450,8 +450,8 @@ static void page_size_cb(void *data,
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);
@ -470,7 +470,7 @@ static void page_size_cb(void *data,
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);
@ -778,7 +778,7 @@ static void scroll_block_cb(void *data,
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,
@ -793,21 +793,21 @@ static void scroll_block_cb(void *data,
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));
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);
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, "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,
@ -825,31 +825,30 @@ 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(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(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_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)
{

View File

@ -111,17 +111,17 @@ test_ui_panel2(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event
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_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(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_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"),

View File

@ -532,15 +532,15 @@ _tab_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
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));
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(efl_added, "Tab Icon"),
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(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;

View File

@ -20,12 +20,12 @@ typedef enum {
} 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)
@ -232,7 +232,7 @@ test_ui_table(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_
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);
@ -240,7 +240,7 @@ test_ui_table(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_
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);
@ -249,7 +249,7 @@ test_ui_table(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_
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);
@ -258,7 +258,7 @@ test_ui_table(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_
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);
@ -267,7 +267,7 @@ test_ui_table(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_
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);
@ -276,7 +276,7 @@ test_ui_table(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_
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);

View File

@ -120,23 +120,23 @@ test_ui_textpath(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *eve
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);

View File

@ -70,13 +70,13 @@ static void
_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
@ -102,7 +102,7 @@ elm_main(int argc EINA_UNUSED, char **argv)
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];
@ -229,34 +229,28 @@ elm_main(int argc EINA_UNUSED, char **argv)
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);
@ -278,23 +272,21 @@ elm_main(int argc EINA_UNUSED, char **argv)
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);

View File

@ -16,7 +16,7 @@ efl_main(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
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);
@ -30,15 +30,14 @@ efl_main(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
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");
@ -49,14 +48,12 @@ efl_main(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
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);
}

View File

@ -4,10 +4,6 @@
#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>

View File

@ -147,10 +147,6 @@ EAPI extern Elm_Version *elm_version;
#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;

View File

@ -123,21 +123,27 @@ _activate(Evas_Object *obj)
{
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));
}
}
@ -220,8 +226,11 @@ _efl_ui_radio_efl_object_constructor(Eo *obj, Efl_Ui_Radio_Data *pd)
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);
@ -239,43 +248,24 @@ _efl_ui_radio_efl_object_constructor(Eo *obj, Efl_Ui_Radio_Data *pd)
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);
if (elm_widget_is_legacy(obj))
{
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
{
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);
}
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
@ -284,52 +274,6 @@ _efl_ui_radio_state_value_get(const Eo *obj EINA_UNUSED, Efl_Ui_Radio_Data *sd)
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)
{
@ -486,13 +430,86 @@ elm_radio_add(Evas_Object *parent)
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"

View File

@ -10,21 +10,3 @@ elm_radio_state_value_get(const Efl_Ui_Radio *obj)
{
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);
}

View File

@ -37,8 +37,6 @@ struct _Efl_Ui_Radio_Data
{
int value;
Group *group;
Eina_Bool state : 1;
};
/**

View File

@ -58,9 +58,6 @@
*
* @{
*/
#define EFL_UI_CHECK_EVENT_CHANGED EFL_UI_NSTATE_EVENT_CHANGED
#ifndef EFL_NOLEGACY_API_SUPPORT
#include "elm_check_legacy.h"
#endif

View File

@ -204,11 +204,11 @@ _item_signal_emit_cb(void *data,
}
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 *
@ -295,8 +295,7 @@ _elm_dayselector_content_set(Eo *obj, Elm_Dayselector_Data *sd, const char *item
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);
@ -342,7 +341,7 @@ _elm_dayselector_content_unset(Eo *obj, Elm_Dayselector_Data *sd, const char *it
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

View File

@ -7,11 +7,11 @@ static Elm_Prefs_Item_Type supported_types[] =
};
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 *
@ -23,8 +23,7 @@ elm_prefs_check_add(const Elm_Prefs_Item_Iface *iface EINA_UNUSED,
{
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;