elm_test: add comparable "simple" scroller tests
authorMike Blumenkrantz <zmike@samsung.com>
Tue, 16 Jul 2019 17:41:47 +0000 (13:41 -0400)
committerSangHyeon Jade Lee <sh10233.lee@samsung.com>
Tue, 23 Jul 2019 05:02:34 +0000 (14:02 +0900)
this should be roughly identical and can be more directly compared in
terms of performance (which is not good in either case)

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9334

src/bin/elementary/test.c
src/bin/elementary/test_scroller.c
src/bin/elementary/test_ui_scroller.c

index 3835a63..0b2904d 100644 (file)
@@ -181,6 +181,7 @@ void test_scroller4(void *data, Evas_Object *obj, void *event_info);
 void test_scroller5(void *data, Evas_Object *obj, void *event_info);
 void test_scroller6(void *data, Evas_Object *obj, void *event_info);
 void test_scroller7(void *data, Evas_Object *obj, void *event_info);
+void test_scroller_simple(void *data, Evas_Object *obj, void *event_info);
 void test_efl_ui_scroller(void *data, Evas_Object *obj, void *event_info);
 void test_efl_ui_scroller2(void *data, Evas_Object *obj, void *event_info);
 void test_spinner(void *data, Evas_Object *obj, void *event_info);
@@ -1093,7 +1094,9 @@ add_tests:
    ADD_TEST(NULL, "Scroller", "Scroller on Popup", test_scroller5);
    ADD_TEST(NULL, "Scroller", "Scroller 6", test_scroller6);
    ADD_TEST(NULL, "Scroller", "Scroller 7", test_scroller7);
+   ADD_TEST(NULL, "Scroller", "Scroller Simple", test_scroller_simple);
    ADD_TEST_EO(NULL, "Scroller", "Efl.Ui.Scroller", test_efl_ui_scroller);
+   ADD_TEST_EO(NULL, "Scroller", "Efl.Ui.Scroller Simple", test_efl_ui_scroller2);
 
    //------------------------------//
    // FIXME: add frame test
index 3861e92..1626564 100644 (file)
@@ -691,6 +691,64 @@ test_scroller2(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event
      }
 }
 
+static void
+_scroll_anim_start(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
+{
+   int x, y;
+   elm_scroller_region_get(obj, &x, &y, NULL, NULL);
+   printf("scroll start: %p x: %d y: %d\n", obj, x, y);
+}
+
+static void
+_scroll_anim_stop(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
+{
+   int x, y;
+   elm_scroller_region_get(obj, &x, &y, NULL, NULL);
+   printf("scroll stop: %p x: %d y: %d\n", obj, x, y);
+}
+
+void
+test_scroller_simple(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
+{
+   Evas_Object *win, *bt, *bx, *sc;
+   int i;
+
+
+   win = elm_win_util_standard_add("scroller2", "Scroller Simple");
+   elm_win_autodel_set(win, EINA_TRUE);
+
+   bx = elm_box_add(win);
+   evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, 0);
+   evas_object_size_hint_align_set(bx, 0.5, 0);
+
+   /* { */
+   sc = elm_scroller_add(win);
+   evas_object_smart_callback_add(sc, "scroll,anim,start", _scroll_anim_start, NULL);
+   evas_object_smart_callback_add(sc, "scroll,anim,stop", _scroll_anim_stop, NULL);
+   evas_object_size_hint_weight_set(sc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   evas_object_size_hint_align_set(sc, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_scroller_bounce_set(sc, EINA_TRUE, EINA_TRUE);
+   evas_object_show(sc);
+   evas_object_show(bx);
+
+   elm_object_content_set(sc, bx);
+   elm_win_resize_object_add(win, sc);
+   /* } */
+
+   for (i = 0; i < 2000; i++)
+     {
+        bt = elm_button_add(win);
+        elm_object_text_set(bt, "Vertical");
+        evas_object_smart_callback_add(bt, "clicked", _click_through, NULL);
+        evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
+        evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, 0.5);
+        elm_box_pack_end(bx, bt);
+        evas_object_show(bt);
+     }
+   evas_object_resize(win, 320, 400);
+   evas_object_show(win);
+}
+
 static Ecore_Timer *_timer = NULL;
 static int _append = 0;
 static int _count = 0;
index fc47d07..8460273 100644 (file)
@@ -129,3 +129,39 @@ test_efl_ui_scroller(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void
                 efl_pack(bx, efl_added));
       }
 }
+
+void
+test_efl_ui_scroller2(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
+{
+   Eo *win, *sc, *bx;
+   int i;
+
+   win = efl_add_ref(EFL_UI_WIN_CLASS, NULL,
+                 efl_ui_win_type_set(efl_added, EFL_UI_WIN_TYPE_BASIC),
+                 efl_text_set(efl_added, "Efl Ui Scroller Simple"),
+                 efl_ui_win_autodel_set(efl_added, EINA_TRUE));
+   efl_gfx_entity_size_set(win, EINA_SIZE2D(320, 400));
+
+   sc = efl_add(EFL_UI_SCROLLER_CLASS, win,
+                efl_gfx_hint_weight_set(efl_added, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND),
+                efl_event_callback_add(efl_added, EFL_UI_EVENT_SCROLL_START, _scroll_start_cb, NULL),
+                efl_event_callback_add(efl_added, EFL_UI_EVENT_SCROLL_STOP, _scroll_stop_cb, NULL),
+                efl_content_set(win, efl_added));
+
+   bx = efl_add(EFL_UI_BOX_CLASS, sc,
+                efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_VERTICAL),
+                efl_gfx_hint_weight_set(efl_added, EVAS_HINT_EXPAND, 0),
+                efl_gfx_hint_align_set(efl_added, 0.5, 0),
+                efl_gfx_hint_fill_set(efl_added, EINA_TRUE, EINA_FALSE),
+                efl_content_set(sc, efl_added));
+
+   for (i = 0; i < 2000; i++)
+      {
+        efl_add(EFL_UI_BUTTON_CLASS, bx,
+                efl_text_set(efl_added, "Vertical"),
+                efl_gfx_hint_weight_set(efl_added, EVAS_HINT_EXPAND, 0.0),
+                efl_gfx_hint_fill_set(efl_added, EINA_TRUE, EINA_FALSE),
+                efl_event_callback_add(efl_added, EFL_UI_EVENT_CLICKED, _bt_clicked, NULL),
+                efl_pack(bx, efl_added));
+      }
+}