efl

Форк
0
/
elm_test_slider.c 
188 строк · 5.3 Кб
1
#ifdef HAVE_CONFIG_H
2
# include "elementary_config.h"
3
#endif
4

5
#define EFL_ACCESS_OBJECT_BETA
6
#include <Elementary.h>
7
#include "elm_suite.h"
8

9
EFL_START_TEST(elm_slider_legacy_type_check)
10
{
11
   Evas_Object *win, *slider;
12
   const char *type;
13

14
   win = win_add(NULL, "slider", ELM_WIN_BASIC);
15

16
   slider = elm_slider_add(win);
17

18
   type = elm_object_widget_type_get(slider);
19
   ck_assert(type != NULL);
20
   ck_assert(!strcmp(type, "Elm_Slider"));
21

22
   type = evas_object_type_get(slider);
23
   ck_assert(type != NULL);
24
   ck_assert(!strcmp(type, "elm_slider"));
25

26
}
27
EFL_END_TEST
28

29
EFL_START_TEST(elm_atspi_role_get)
30
{
31
   Evas_Object *win, *slider;
32
   Efl_Access_Role role;
33

34
   win = win_add(NULL, "slider", ELM_WIN_BASIC);
35

36
   slider = elm_slider_add(win);
37
   role = efl_access_object_role_get(slider);
38

39
   ck_assert(role == EFL_ACCESS_ROLE_SLIDER);
40

41
}
42
EFL_END_TEST
43

44
EFL_START_TEST(elm_slider_in_scroller)
45
{
46
   Evas_Object *win, *slider, *box, *scroller, *fslider = NULL;
47
   Evas *e;
48

49
   win = win_add(NULL, "slider", ELM_WIN_BASIC);
50
   e = evas_object_evas_get(win);
51
   evas_object_size_hint_weight_set(win, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
52

53
   scroller = elm_scroller_add(win);
54
   evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
55
   evas_object_show(scroller);
56
   elm_win_resize_object_add(win, scroller);
57

58
   box = elm_box_add(scroller);
59
   evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
60
   elm_object_content_set(scroller, box);
61
   evas_object_show(box);
62

63
   for (int i = 0; i < 20; ++i)
64
     {
65
        slider = elm_slider_add(win);
66
        evas_object_size_hint_weight_set(slider, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
67
        elm_slider_min_max_set(slider, 0, 100);
68
        evas_object_show(slider);
69
        elm_box_pack_end(box, slider);
70
        if (i == 0)
71
          fslider = slider;
72
     }
73
   elm_scroller_page_bring_in(scroller, 0, 0);
74
   evas_object_resize(win, 100, 100);
75
   evas_object_show(win);
76

77
   get_me_to_those_events(scroller);
78

79
   int x, y, w, h;
80

81
   ck_assert_int_eq(elm_object_scroll_hold_get(scroller), 0);
82
   evas_event_feed_mouse_in(e, 0, NULL);
83
   evas_object_geometry_get(fslider, &x, &y, &w, &h);
84
   evas_event_feed_mouse_move(e, x+w/2, y+h/2, 0, NULL);
85
   //ensure that the scroller is on hold
86
   ck_assert_int_eq(elm_object_scroll_hold_get(scroller), 1);
87
   evas_event_feed_mouse_move(e, x+w+w/2, y+h+h/2, 0, NULL);
88
   ck_assert_int_eq(elm_object_scroll_hold_get(scroller), 0);
89
}
90
EFL_END_TEST
91

92
static unsigned int event_counter;
93

94
static void
95
slider_changed(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
96
{
97
   event_counter++;
98
   if (event_counter == 1)
99
     evas_object_smart_callback_del(obj, "changed", slider_changed);
100
   else if (event_counter == 2)
101
     evas_object_smart_callback_del(obj, "slider,drag,start", slider_changed);
102
   else if (event_counter == 3)
103
     evas_object_smart_callback_del(obj, "slider,drag,stop", slider_changed);
104
   else if (event_counter == 4)
105
     ecore_main_loop_quit();
106
}
107

108
EFL_START_TEST(elm_slider_events)
109
{
110
   Evas_Object *win, *slider;
111
   Evas *e;
112

113
   win = win_add(NULL, "slider", ELM_WIN_BASIC);
114
   e = evas_object_evas_get(win);
115

116
   slider = elm_slider_add(win);
117
   evas_object_smart_callback_add(slider, "changed", slider_changed, NULL);
118
   evas_object_smart_callback_add(slider, "delay,changed", slider_changed, NULL);
119
   evas_object_smart_callback_add(slider, "slider,drag,start", slider_changed, NULL);
120
   evas_object_smart_callback_add(slider, "slider,drag,stop", slider_changed, NULL);
121
   evas_object_show(slider);
122
   evas_object_show(win);
123
   evas_object_resize(slider, 400, 100);
124
   evas_object_resize(win, 400, 100);
125
   edje_object_message_signal_process(elm_layout_edje_get(slider));
126
   get_me_to_those_events(slider);
127

128

129
   int x, y, w, h;
130
   int sx, sy, sw, sh;
131

132
   evas_object_geometry_get(elm_object_part_content_get(slider, "elm.swallow.bar"), &x, &y, &w, &h);
133
   evas_object_geometry_get(slider, &sx, &sy, &sw, &sh);
134
   evas_event_feed_mouse_in(e, 0, NULL);
135
   evas_event_feed_mouse_move(e, x + (w / 2), y + (h / 2), 0, NULL);
136
   evas_event_feed_mouse_down(e, 1, 0, 0, NULL);
137
   evas_event_feed_mouse_move(e, sx + (sw / 2), sy + (sh / 2), 0, NULL);
138
   evas_event_feed_mouse_up(e, 1, 0, 0, NULL);
139
   ecore_main_loop_begin();
140
   ck_assert_int_eq(event_counter, 4);
141
}
142
EFL_END_TEST
143

144
EFL_START_TEST(elm_slider_indicator_format_set_get_p)
145
{
146
   Evas_Object *win, *slider;
147
   const char *fmt;
148

149
   win = win_add(NULL, "slider", ELM_WIN_BASIC);
150
   slider = elm_slider_add(win);
151
   elm_slider_indicator_format_set(slider, "%1.0f");
152
   fmt = elm_slider_indicator_format_get(slider);
153

154
   ck_assert(fmt != NULL);
155
   ck_assert(!strcmp(fmt, "%1.0f"));
156
}
157
EFL_END_TEST
158

159
EFL_START_TEST(elm_slider_indicator_format_get_n)
160
{
161
   const char *fmt;
162

163
   fmt = elm_slider_indicator_format_get(NULL);
164

165
   ck_assert(fmt == NULL);
166
}
167
EFL_END_TEST
168

169
EFL_START_TEST(elm_slider_unit_format_get_n)
170
{
171
   const char *fmt;
172

173
   fmt = elm_slider_unit_format_get(NULL);
174

175
   ck_assert(fmt == NULL);
176
}
177
EFL_END_TEST
178

179
void elm_test_slider(TCase *tc)
180
{
181
   tcase_add_test(tc, elm_slider_legacy_type_check);
182
   tcase_add_test(tc, elm_slider_in_scroller);
183
   tcase_add_test(tc, elm_slider_events);
184
   tcase_add_test(tc, elm_atspi_role_get);
185
   tcase_add_test(tc, elm_slider_indicator_format_set_get_p);
186
   tcase_add_test(tc, elm_slider_indicator_format_get_n);
187
   tcase_add_test(tc, elm_slider_unit_format_get_n);
188
}
189

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.