efl
201 строка · 7.5 Кб
1#ifdef HAVE_CONFIG_H2# include "elementary_config.h"3#endif4
5#include <Efl_Ui.h>6#include <Elementary.h>7#include "efl_ui_suite.h"8
9static void10_startfinish_event_cb(void *data, const Efl_Event *ev EINA_UNUSED)11{
12int *called = data;13(*called)++;14/* start/finish always come in pairs */15if (*called == 2) ecore_main_loop_quit();16}
17
18EFL_START_TEST(efl_ui_test_scroller_events)19{
20Eo *sc, *sc2, *sc3, *bx, *bx2, *gd, *gd2;21int i, j, called = 0, called2 = 0, called3 = 0;22Eo *win = win_add();23efl_gfx_entity_size_set(win, EINA_SIZE2D(500, 500));24
25
26sc = efl_add(EFL_UI_SCROLLER_CLASS, win,27efl_event_callback_add(efl_added, EFL_UI_EVENT_SCROLL_STARTED, _startfinish_event_cb, &called),28efl_event_callback_add(efl_added, EFL_UI_EVENT_SCROLL_FINISHED, _startfinish_event_cb, &called),29efl_gfx_entity_size_set(efl_added, EINA_SIZE2D(500, 500))30);31
32bx = efl_add(EFL_UI_BOX_CLASS, sc,33efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_VERTICAL),34efl_gfx_hint_weight_set(efl_added, EVAS_HINT_EXPAND, 0),35efl_gfx_hint_align_set(efl_added, 0.5, 0),36efl_gfx_hint_fill_set(efl_added, EINA_TRUE, EINA_FALSE),37efl_content_set(sc, efl_added));38
39efl_add(EFL_UI_SLIDER_CLASS, bx,40efl_gfx_hint_size_min_set(efl_added, EINA_SIZE2D(160, 0)),41efl_pack(bx, efl_added));42
43for (i = 0; i < 3; i++)44{45efl_add(EFL_UI_BUTTON_CLASS, bx,46efl_text_set(efl_added, "Vertical"),47efl_gfx_hint_weight_set(efl_added, EVAS_HINT_EXPAND, 0.0),48efl_gfx_hint_fill_set(efl_added, EINA_TRUE, EINA_FALSE),49//efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED, _bt_clicked, NULL),50efl_pack(bx, efl_added));51}52
53sc2 = efl_add(EFL_UI_SCROLLER_CLASS, bx,54efl_ui_scrollable_match_content_set(efl_added, EINA_FALSE, EINA_TRUE),55efl_event_callback_add(efl_added, EFL_UI_EVENT_SCROLL_STARTED, _startfinish_event_cb, &called2),56efl_event_callback_add(efl_added, EFL_UI_EVENT_SCROLL_FINISHED, _startfinish_event_cb, &called2),57efl_pack(bx, efl_added));58
59bx2 = efl_add(EFL_UI_BOX_CLASS, sc2,60efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL),61efl_content_set(sc2, efl_added));62
63for (i = 0; i < 10; i++)64{65efl_add(EFL_UI_BUTTON_CLASS, bx2,66efl_text_set(efl_added, "... Horizontal scrolling ..."),67//efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED, _bt_clicked, NULL),68efl_pack(bx2, efl_added));69}70
71for (i = 0; i < 3; i++)72{73efl_add(EFL_UI_BUTTON_CLASS, bx,74efl_text_set(efl_added, "Vertical"),75efl_gfx_hint_weight_set(efl_added, EVAS_HINT_EXPAND, 0.0),76efl_gfx_hint_fill_set(efl_added, EINA_TRUE, EINA_FALSE),77//efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED, _bt_clicked, NULL),78efl_pack(bx, efl_added));79}80
81gd = efl_add(EFL_UI_TABLE_CLASS, bx,82efl_gfx_hint_weight_set(efl_added, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND),83efl_gfx_hint_align_set(efl_added, 0.5, 0),84efl_pack(bx, efl_added));85
86efl_add(EFL_CANVAS_RECTANGLE_CLASS, win,87efl_gfx_color_set(efl_added, 0, 0, 0, 0),88efl_gfx_hint_size_min_set(efl_added, EINA_SIZE2D(200, 120)),89efl_pack_table(gd, efl_added, 0, 0, 1, 1));90
91sc3 = efl_add(EFL_UI_SCROLLER_CLASS, win,92efl_gfx_hint_weight_set(efl_added, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND),93efl_gfx_hint_fill_set(efl_added, EINA_TRUE, EINA_TRUE),94efl_event_callback_add(efl_added, EFL_UI_EVENT_SCROLL_STARTED, _startfinish_event_cb, &called3),95efl_event_callback_add(efl_added, EFL_UI_EVENT_SCROLL_FINISHED, _startfinish_event_cb, &called3),96efl_pack_table(gd, efl_added, 0, 0, 1, 1));97
98gd2 = efl_add(EFL_UI_TABLE_CLASS, sc3,99efl_content_set(sc3, efl_added));100
101for (j = 0; j < 4; j++)102{103for (i = 0; i < 4; i++)104{105efl_add(EFL_UI_BUTTON_CLASS, win,106efl_text_set(efl_added, "Both"),107//efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED, _bt_clicked, NULL),108efl_pack_table(gd2, efl_added, i, j, 1, 1));109}110}111
112for (i = 0; i < 10; i++)113{114efl_add(EFL_UI_BUTTON_CLASS, bx,115efl_text_set(efl_added, "Vertical"),116efl_gfx_hint_weight_set(efl_added, EVAS_HINT_EXPAND, 0.0),117efl_gfx_hint_fill_set(efl_added, EINA_TRUE, EINA_FALSE),118//efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED, _bt_clicked, NULL),119efl_pack(bx, efl_added));120}121get_me_to_those_events(sc);122/* this should only trigger the inner scroller */123wheel_object(sc3, 0, 1);124ecore_main_loop_begin();125ck_assert_int_eq(called3, 2);126ck_assert_int_eq(called2, 0);127ck_assert_int_eq(called, 0);128called3 = 0;129
130/* this should only trigger the horizontal scroller */131wheel_object(sc2, 1, 1);132ecore_main_loop_begin();133ck_assert_int_eq(called3, 0);134ck_assert_int_eq(called2, 2);135ck_assert_int_eq(called, 0);136called2 = 0;137
138/* this should only trigger the outer scroller */139wheel_object_at(sc, 250, 400, 0, 1);140ecore_main_loop_begin();141ck_assert_int_eq(called3, 0);142ck_assert_int_eq(called2, 0);143ck_assert_int_eq(called, 2);144}
145EFL_END_TEST
146
147EFL_START_TEST(efl_ui_test_scroller_scrollbar)148{
149Eo *sc;150
151Eo *win = win_add();152Eina_Bool hbar_visible = EINA_FALSE, vbar_visible = EINA_FALSE;153efl_gfx_entity_size_set(win, EINA_SIZE2D(500, 500));154
155sc = efl_add(EFL_UI_SCROLLER_CLASS, win,156efl_ui_scrollbar_bar_mode_set(efl_added, EFL_UI_SCROLLBAR_MODE_AUTO, EFL_UI_SCROLLBAR_MODE_AUTO),157efl_content_set(win, efl_added));158
159/*Scrollbar auto mode test.*/160efl_loop_iterate(efl_main_loop_get());161
162efl_ui_scrollbar_bar_visibility_get(sc, &hbar_visible, &vbar_visible);163ck_assert(hbar_visible == EINA_FALSE);164ck_assert(vbar_visible == EINA_FALSE);165
166/*Scrollbar auto mode test.*/167efl_add(EFL_CANVAS_RECTANGLE_CLASS, evas_object_evas_get(sc),168efl_gfx_entity_size_set(efl_added, EINA_SIZE2D(5000, 5000)),169efl_content_set(sc, efl_added));170
171efl_loop_iterate(efl_main_loop_get());172
173efl_ui_scrollbar_bar_visibility_get(sc, &hbar_visible, &vbar_visible);174ck_assert(hbar_visible == EINA_TRUE);175ck_assert(vbar_visible == EINA_TRUE);176
177/*Scrollbar off mode test.*/178efl_ui_scrollbar_bar_mode_set(sc, EFL_UI_SCROLLBAR_MODE_OFF, EFL_UI_SCROLLBAR_MODE_OFF);179
180efl_loop_iterate(efl_main_loop_get());181
182efl_ui_scrollbar_bar_visibility_get(sc, &hbar_visible, &vbar_visible);183ck_assert(hbar_visible == EINA_FALSE);184ck_assert(vbar_visible == EINA_FALSE);185
186/*Scrollbar on mode test.*/187efl_ui_scrollbar_bar_mode_set(sc, EFL_UI_SCROLLBAR_MODE_ON, EFL_UI_SCROLLBAR_MODE_ON);188
189efl_loop_iterate(efl_main_loop_get());190
191efl_ui_scrollbar_bar_visibility_get(sc, &hbar_visible, &vbar_visible);192ck_assert(hbar_visible == EINA_TRUE);193ck_assert(vbar_visible == EINA_TRUE);194}
195EFL_END_TEST
196
197void efl_ui_test_scroller(TCase *tc)198{
199tcase_add_test(tc, efl_ui_test_scroller_events);200tcase_add_test(tc, efl_ui_test_scroller_scrollbar);201}
202