test_gengrid: Refactor gengrid test code.

- Added 'unselected' callback to reveal multiselect bug.
- Passed 'gengrid' directly instead of passing 'api' structure and using it indirectly.
- Added more box to make the GUI cleaner.
- Removed unnecessary comments and added more important comment.
This commit is contained in:
Daniel Juyung Seo 2014-04-13 01:37:38 +09:00
parent 9a5bd0a139
commit ac10d9ac6e
1 changed files with 35 additions and 27 deletions

View File

@ -193,6 +193,12 @@ grid_selected(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_
printf("Selected: %p\n", event_info); printf("Selected: %p\n", event_info);
} }
static void
grid_unselected(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info)
{
printf("Unselected: %p\n", event_info);
}
static void static void
grid_double_clicked(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info) grid_double_clicked(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info)
{ {
@ -279,18 +285,16 @@ _cleanup_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void
static void static void
always_select_mode_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) always_select_mode_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
{ {
api_data *api = data;
if (elm_check_state_get(obj)) if (elm_check_state_get(obj))
elm_gengrid_select_mode_set(api->grid, ELM_OBJECT_SELECT_MODE_ALWAYS); elm_gengrid_select_mode_set(data, ELM_OBJECT_SELECT_MODE_ALWAYS);
else else
elm_gengrid_select_mode_set(api->grid, ELM_OBJECT_SELECT_MODE_DEFAULT); elm_gengrid_select_mode_set(data, ELM_OBJECT_SELECT_MODE_DEFAULT);
} }
static void static void
multi_select_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) multi_select_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
{ {
api_data *api = data; elm_gengrid_multi_select_set(data, elm_check_state_get(obj));
elm_gengrid_multi_select_set(api->grid, elm_check_state_get(obj));
} }
static void static void
@ -314,6 +318,7 @@ create_gengrid(Evas_Object *obj, int items)
elm_config_scale_get() * 150); elm_config_scale_get() * 150);
elm_gengrid_reorder_mode_set(grid, EINA_TRUE); elm_gengrid_reorder_mode_set(grid, EINA_TRUE);
evas_object_smart_callback_add(grid, "selected", grid_selected, NULL); evas_object_smart_callback_add(grid, "selected", grid_selected, NULL);
evas_object_smart_callback_add(grid, "unselected", grid_unselected, NULL);
evas_object_smart_callback_add(grid, "clicked,double", grid_double_clicked, NULL); evas_object_smart_callback_add(grid, "clicked,double", grid_double_clicked, NULL);
evas_object_smart_callback_add(grid, "longpressed", grid_longpress, NULL); evas_object_smart_callback_add(grid, "longpressed", grid_longpress, NULL);
evas_object_smart_callback_add(grid, "moved", grid_moved, NULL); evas_object_smart_callback_add(grid, "moved", grid_moved, NULL);
@ -486,7 +491,7 @@ _btn_show_clicked_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info
void void
test_gengrid(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) test_gengrid(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{ {
Evas_Object *win, *bt, *bxx, *bx, *tg; Evas_Object *win, *bt, *bxx, *bx, *ck;
api_data *api = calloc(1, sizeof(api_data)); api_data *api = calloc(1, sizeof(api_data));
win = elm_win_util_standard_add("gengrid", "GenGrid"); win = elm_win_util_standard_add("gengrid", "GenGrid");
@ -510,33 +515,38 @@ test_gengrid(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_i
elm_box_pack_end(bxx, api->grid); elm_box_pack_end(bxx, api->grid);
evas_object_show(api->grid); evas_object_show(api->grid);
/* Gengrid Options 1 */
bx = elm_box_add(win); bx = elm_box_add(win);
elm_box_horizontal_set(bx, EINA_TRUE); elm_box_horizontal_set(bx, EINA_TRUE);
elm_box_pack_end(bxx, bx); elm_box_pack_end(bxx, bx);
evas_object_show(bx); evas_object_show(bx);
/* Gengrid Always Select Mode Test */ ck = elm_check_add(win);
tg = elm_check_add(win); evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_weight_set(tg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(ck, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_align_set(tg, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_object_text_set(ck, "Always Select Mode");
elm_object_text_set(tg, "Always Select Mode"); evas_object_smart_callback_add(ck, "changed", always_select_mode_cb,
evas_object_smart_callback_add(tg, "changed", always_select_mode_cb, api->grid);
(void *)api); elm_box_pack_end(bx, ck);
elm_box_pack_end(bx, tg); evas_object_show(ck);
evas_object_show(tg);
tg = elm_check_add(win); ck = elm_check_add(win);
evas_object_size_hint_weight_set(tg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(tg, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_align_set(ck, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(tg, "Multi Select Mode"); elm_object_text_set(ck, "Multi Select Mode");
elm_check_state_set(tg, EINA_TRUE); elm_check_state_set(ck, EINA_TRUE);
elm_gengrid_multi_select_set(api->grid, EINA_TRUE); elm_gengrid_multi_select_set(api->grid, EINA_TRUE);
evas_object_smart_callback_add(tg, "changed", multi_select_cb, evas_object_smart_callback_add(ck, "changed", multi_select_cb,
(void *)api); api->grid);
elm_box_pack_end(bx, tg); elm_box_pack_end(bx, ck);
evas_object_show(tg); evas_object_show(ck);
/* Gengrid Options 2 */
bx = elm_box_add(win);
elm_box_horizontal_set(bx, EINA_TRUE);
elm_box_pack_end(bxx, bx);
evas_object_show(bx);
/* Gengrid Clear Test */
bt = elm_button_add(win); bt = elm_button_add(win);
elm_object_text_set(bt, "Clear"); elm_object_text_set(bt, "Clear");
evas_object_smart_callback_add(bt, "clicked", clear_bt_clicked, evas_object_smart_callback_add(bt, "clicked", clear_bt_clicked,
@ -551,14 +561,12 @@ test_gengrid(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_i
elm_box_pack_end(bx, bt); elm_box_pack_end(bx, bt);
evas_object_show(bt); evas_object_show(bt);
/* Gengrid Filled Test */
bt = elm_button_add(win); bt = elm_button_add(win);
elm_object_text_set(bt, "Check Filled"); elm_object_text_set(bt, "Check Filled");
evas_object_smart_callback_add(bt, "clicked", filled_bt_clicked, NULL); evas_object_smart_callback_add(bt, "clicked", filled_bt_clicked, NULL);
elm_box_pack_end(bx, bt); elm_box_pack_end(bx, bt);
evas_object_show(bt); evas_object_show(bt);
/* Item Cursor Test */
bt = elm_button_add(win); bt = elm_button_add(win);
elm_object_text_set(bt, "Check Cursor"); elm_object_text_set(bt, "Check Cursor");
evas_object_smart_callback_add(bt, "clicked", cursor_bt_clicked, evas_object_smart_callback_add(bt, "clicked", cursor_bt_clicked,