efl

Форк
0
/
elm_test_hoversel.c 
158 строк · 4.5 Кб
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
#include "elm_priv.h"
10
#include "elm_widget_hoversel.h"
11

12
EFL_START_TEST(elm_hoversel_legacy_type_check)
13
{
14
   Evas_Object *win, *hoversel;
15
   const char *type;
16

17
   win = win_add(NULL, "hoversel", ELM_WIN_BASIC);
18

19
   hoversel = elm_hoversel_add(win);
20

21
   type = elm_object_widget_type_get(hoversel);
22
   ck_assert(type != NULL);
23
   ck_assert(!strcmp(type, "Elm_Hoversel"));
24

25
   type = evas_object_type_get(hoversel);
26
   ck_assert(type != NULL);
27
   ck_assert(!strcmp(type, "elm_hoversel"));
28

29
}
30
EFL_END_TEST
31

32
EFL_START_TEST(elm_atspi_role_get)
33
{
34
   Evas_Object *win, *hoversel;
35
   Efl_Access_Role role;
36

37
   win = win_add(NULL, "hoversel", ELM_WIN_BASIC);
38

39
   hoversel = elm_hoversel_add(win);
40
   role = efl_access_object_role_get(hoversel);
41

42
   ck_assert(role == EFL_ACCESS_ROLE_PUSH_BUTTON);
43

44
}
45
EFL_END_TEST
46

47
EFL_START_TEST(elm_test_hoversel_behavior)
48
{
49
   Eo *hoversel, *win = win_add();
50
   unsigned int i;
51
   const char *callbacks[] =
52
   {
53
      "expanded",
54
      "clicked",
55
      "selected",
56
      "item,focused",
57
      "item,unfocused",
58
      "dismissed",
59
   };
60
   int count[EINA_C_ARRAY_LENGTH(callbacks)] = {0};
61

62
   evas_object_resize(win, 500, 500);
63
   hoversel = elm_hoversel_add(win);
64
   evas_object_geometry_set(hoversel, 25, 25, 50, 50);
65
   elm_hoversel_hover_parent_set(hoversel, win);
66
   elm_object_text_set(hoversel, "Vertical");
67
   elm_hoversel_item_add(hoversel, "Item 1", NULL, ELM_ICON_NONE, NULL, NULL);
68
   elm_hoversel_item_add(hoversel, "Item 2", NULL, ELM_ICON_NONE, NULL, NULL);
69
   elm_hoversel_item_add(hoversel, "Item 3", NULL, ELM_ICON_NONE, NULL, NULL);
70
   elm_hoversel_item_add(hoversel, "Item 4 - Long Label Here", "close", ELM_ICON_STANDARD, NULL, NULL);
71

72
   evas_object_show(win);
73
   evas_object_show(hoversel);
74
   elm_object_focus_set(hoversel, EINA_TRUE);
75
   for (i = 0; i < EINA_C_ARRAY_LENGTH(count); i++)
76
     {
77
        evas_object_smart_callback_add(hoversel, callbacks[i],
78
                                      (void*)event_callback_single_call_int_data, &count[i]);
79
     }
80
   evas_object_smart_callback_add(hoversel, "dismissed",
81
                                      (void*)event_callback_that_quits_the_main_loop_when_called, NULL);
82
   get_me_to_those_events(win);
83
   assert_object_size_eq(hoversel, 50, 50);
84
   click_object(hoversel);
85
   get_me_to_those_events(win);
86

87
   /* expanded */
88
   ck_assert_int_eq(count[0], 1);
89
   wait_timer(0.6); // from default theme
90
   ecore_main_loop_iterate();
91

92
   ELM_HOVERSEL_DATA_GET(hoversel, sd);
93
   click_object(eina_list_data_get(elm_box_children_get(sd->bx)));
94
   get_me_to_those_events(win);
95

96
   /* clicked */
97
   ck_assert_int_eq(count[1], 1);
98
   /* selected */
99
   ck_assert_int_eq(count[2], 1);
100
   /* item,focused */
101
   ck_assert_int_eq(count[3], 1);
102
   /* item,focused */
103
   ck_assert_int_eq(count[4], 1);
104
   ecore_main_loop_begin();
105

106
   /* dismissed */
107
   ck_assert_int_eq(count[5], 1);
108
}
109
EFL_END_TEST
110

111
EFL_START_TEST(elm_test_hoversel_position)
112
{
113
   Eo *hoversel, *win = win_add();
114

115
   evas_object_resize(win, 500, 500);
116
   hoversel = elm_hoversel_add(win);
117
   evas_object_geometry_set(hoversel, 450, 450, 50, 50);
118
   elm_hoversel_hover_parent_set(hoversel, win);
119
   elm_object_text_set(hoversel, "Vertical");
120
   elm_hoversel_item_add(hoversel, "Item 1", NULL, ELM_ICON_NONE, NULL, NULL);
121
   elm_hoversel_item_add(hoversel, "Item 2", NULL, ELM_ICON_NONE, NULL, NULL);
122
   elm_hoversel_item_add(hoversel, "Item 3", NULL, ELM_ICON_NONE, NULL, NULL);
123
   elm_hoversel_item_add(hoversel, "Item 4 - Long Label Here", "close", ELM_ICON_STANDARD, NULL, NULL);
124

125
   evas_object_show(win);
126
   evas_object_show(hoversel);
127
   elm_object_focus_set(hoversel, EINA_TRUE);
128

129
   get_me_to_those_events(win);
130
   assert_object_size_eq(hoversel, 50, 50);
131
   click_object(hoversel);
132
   get_me_to_those_events(win);
133

134
   wait_timer(0.6); // from default theme
135
   ecore_main_loop_iterate();
136

137
   ELM_HOVERSEL_DATA_GET(hoversel, sd);
138
   {
139
      int x, y, w, h;
140
      Eo *item = eina_list_data_get(elm_box_children_get(sd->bx));
141
      evas_object_geometry_get(item, &x, &y, &w, &h);
142

143
      /* verify that all buttons are in-canvas */
144
      ck_assert_int_le(x + w, 500);
145
      ck_assert_int_le(y + h, 500);
146
   }
147

148
   evas_object_del(hoversel);
149
}
150
EFL_END_TEST
151

152
void elm_test_hoversel(TCase *tc)
153
{
154
   tcase_add_test(tc, elm_hoversel_legacy_type_check);
155
   tcase_add_test(tc, elm_atspi_role_get);
156
   tcase_add_test(tc, elm_test_hoversel_behavior);
157
   tcase_add_test(tc, elm_test_hoversel_position);
158
}
159

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

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

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

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