2 * Tested interface: AtkObject
4 * Tested AtkObject: EailGenlist
6 * Description: Test whether accessible object is successfully registered
7 * in GObject type system and is visible in AtkObject tree. Test
8 * accessible children availability.
10 * Test input: accessible object representing EailGenlist
12 * Expected test result: test should return 0 (success)
15 #include <Elementary.h>
18 #include "eail_test_utils.h"
20 INIT_TEST("EailGenlist")
22 #define EAIL_TYPE_FOR_LIST_ITEM "EailItem"
25 static Evas_Object *glob_genlist = NULL;
26 static Elm_Genlist_Item_Class *_itc_group = NULL;
27 static int nitems = 0;
29 Elm_Object_Item *glob_test_item = NULL;
32 _do_test(AtkObject *aobj)
36 g_assert(ATK_IS_OBJECT(aobj));
38 g_assert(atk_object_get_role(aobj) == ATK_ROLE_LIST);
40 child_amount = atk_object_get_n_accessible_children(aobj);
41 g_assert(N_ITEMS == child_amount);
43 eailu_test_atk_focus(aobj, TRUE);
45 eailu_test_code_called = 1;
49 _item_label_get(void *data, Evas_Object *obj, const char *part)
51 time_t t = (time_t)ecore_time_unix_get();
53 int i = (int)(long)data;
55 localtime_r(&t, &timeinfo);
57 if (!strcmp(part, "elm.text"))
58 g_snprintf(buf, sizeof(buf), "Item # %i", i);
62 strftime(buf, sizeof(buf), "realized at %c", &timeinfo);
71 _item_content_get(void *data, Evas_Object *obj, const char *part)
73 Evas_Object *ic = elm_icon_add(obj);
75 if (!strcmp(part, "elm.swallow.icon"))
76 elm_icon_standard_set(ic, "clock");
78 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
83 _group_label_get(void *data, Evas_Object *obj, const char *part)
86 int i = (int)(long)data;
88 g_snprintf(buf, sizeof(buf), "Group %d (item #%d)", i / 7, i);
94 _group_content_get(void *data, Evas_Object *obj, const char *part)
96 Evas_Object *ic = elm_icon_add(obj);
98 if (!strcmp(part, "elm.swallow.icon"))
99 elm_icon_standard_set(ic, "home");
101 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
106 _item_sel_cb(void *data, Evas_Object *obj, void *event_info)
108 // printf("sel item data [%p] on genlist obj [%p], item pointer [%p]\n",
109 // data, obj, event_info);
113 _init_genlist(Evas_Object *win)
115 Evas_Object *box, *entry;
116 static Elm_Genlist_Item_Class *_itc = NULL;
121 _itc = elm_genlist_item_class_new();
122 _itc->item_style = "default";
123 _itc->func.text_get = _item_label_get;
124 _itc->func.content_get = _item_content_get;
125 _itc->func.state_get = NULL;
126 _itc->func.del = NULL;
131 _itc_group = elm_genlist_item_class_new();
132 _itc_group->item_style = "group_index";
133 _itc_group->func.text_get = _group_label_get;
134 _itc_group->func.content_get = _group_content_get;
135 _itc_group->func.state_get = NULL;
136 _itc_group->func.del = NULL;
139 box = elm_box_add(win);
140 evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
141 elm_win_resize_object_add(win, box);
142 evas_object_show(box);
144 glob_genlist = elm_genlist_add(win);
146 evas_object_size_hint_weight_set
147 (glob_genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
148 evas_object_size_hint_align_set
149 (glob_genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
150 elm_box_pack_end(box, glob_genlist);
151 evas_object_show(glob_genlist);
153 entry = elm_entry_add(win);
154 elm_entry_single_line_set(entry, EINA_TRUE);
155 evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, 0.0);
156 evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
157 evas_object_show(entry);
160 /* filling genlist */
161 for (i = 0; i < N_ITEMS; i++)
163 Elm_Object_Item *gli = NULL, *glg = NULL;
167 glg = gli = elm_genlist_item_append(glob_genlist, _itc_group,
168 (void *) (long) nitems++,
169 NULL, ELM_GENLIST_ITEM_GROUP,
170 _item_sel_cb, NULL );
171 elm_genlist_item_select_mode_set(
172 gli, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
176 gli = elm_genlist_item_append(glob_genlist, _itc,
177 (void *) (long) nitems++, glg,
178 ELM_GENLIST_ITEM_NONE,
179 _item_sel_cb, NULL );
183 glob_test_item = gli;
189 elm_main(int argc, char **argv)
193 win = eailu_create_test_window_with_glib_init(_on_done, _on_focus_in);
196 /* and show the window */
197 evas_object_show(win);