2 * Tested interface: AtkAction
4 * Tested AtkObject: EailGenlist
6 * Description: Test AtkAction interface
8 * Test input: accessible object representing EailGenlist
10 * Expected test result: test should return 0 (success)
13 #include <Elementary.h>
16 #include "eail_test_utils.h"
18 INIT_TEST("EailGenlist")
22 static Evas_Object *glob_genlist = NULL;
23 static Elm_Genlist_Item_Class *_itc_group = NULL;
24 static int nitems = 0;
26 Elm_Object_Item *glob_test_item = NULL;
29 _do_test(AtkObject *aobj)
32 const gchar *test_desc = "test description for scroll up";
33 const gchar *result_desc;
35 g_assert(ATK_IS_ACTION(aobj));
36 n_actions = atk_action_get_n_actions(ATK_ACTION(aobj));
37 g_assert(4 == n_actions);
40 eailu_test_action_activate(ATK_ACTION(aobj), "scroll_up");
43 eailu_test_action_activate(ATK_ACTION(aobj), "scroll_down");
46 eailu_test_action_activate(ATK_ACTION(aobj), "scroll_left");
49 eailu_test_action_activate(ATK_ACTION(aobj), "scroll_right");
51 /* description test */
52 g_assert(!atk_action_get_description(ATK_ACTION(aobj), 0));
53 g_assert(atk_action_set_description(ATK_ACTION(aobj), 0, test_desc));
55 result_desc = atk_action_get_description(ATK_ACTION(aobj), 0);
56 g_assert(0 == g_strcmp0(result_desc, test_desc));
57 eailu_test_code_called = 1;
61 _item_label_get(void *data, Evas_Object *obj, const char *part)
63 time_t t = (time_t)ecore_time_unix_get();
65 int i = (int)(long)data;
67 localtime_r(&t, &timeinfo);
69 if (!strcmp(part, "elm.text"))
70 g_snprintf(buf, sizeof(buf), "Item # %i", i);
74 strftime(buf, sizeof(buf), "realized at %c", &timeinfo);
83 _item_content_get(void *data, Evas_Object *obj, const char *part)
85 Evas_Object *ic = elm_icon_add(obj);
87 if (!strcmp(part, "elm.swallow.icon"))
88 elm_icon_standard_set(ic, "clock");
90 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
95 _group_label_get(void *data, Evas_Object *obj, const char *part)
98 int i = (int)(long)data;
100 g_snprintf(buf, sizeof(buf), "Group %d (item #%d)", i / 7, i);
106 _group_content_get(void *data, Evas_Object *obj, const char *part)
108 Evas_Object *ic = elm_icon_add(obj);
110 if (!strcmp(part, "elm.swallow.icon"))
111 elm_icon_standard_set(ic, "home");
113 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
118 _item_sel_cb(void *data, Evas_Object *obj, void *event_info)
120 // printf("sel item data [%p] on genlist obj [%p], item pointer [%p]\n",
121 // data, obj, event_info);
125 _init_genlist(Evas_Object *win)
127 Evas_Object *box, *entry;
128 static Elm_Genlist_Item_Class *_itc = NULL;
133 _itc = elm_genlist_item_class_new();
134 _itc->item_style = "default";
135 _itc->func.text_get = _item_label_get;
136 _itc->func.content_get = _item_content_get;
137 _itc->func.state_get = NULL;
138 _itc->func.del = NULL;
143 _itc_group = elm_genlist_item_class_new();
144 _itc_group->item_style = "group_index";
145 _itc_group->func.text_get = _group_label_get;
146 _itc_group->func.content_get = _group_content_get;
147 _itc_group->func.state_get = NULL;
148 _itc_group->func.del = NULL;
151 box = elm_box_add(win);
152 evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
153 elm_win_resize_object_add(win, box);
154 evas_object_show(box);
156 glob_genlist = elm_genlist_add(win);
158 evas_object_size_hint_weight_set
159 (glob_genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
160 evas_object_size_hint_align_set
161 (glob_genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
162 elm_box_pack_end(box, glob_genlist);
163 evas_object_show(glob_genlist);
165 entry = elm_entry_add(win);
166 elm_entry_single_line_set(entry, EINA_TRUE);
167 evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, 0.0);
168 evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
169 evas_object_show(entry);
172 /* filling genlist */
173 for (i = 0; i < N_ITEMS; i++)
175 Elm_Object_Item *gli = NULL, *glg = NULL;
179 glg = gli = elm_genlist_item_append(glob_genlist, _itc_group,
180 (void *) (long) nitems++,
181 NULL, ELM_GENLIST_ITEM_GROUP,
182 _item_sel_cb, NULL );
183 elm_genlist_item_select_mode_set(
184 gli, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
188 gli = elm_genlist_item_append(glob_genlist, _itc,
189 (void *) (long) nitems++, glg,
190 ELM_GENLIST_ITEM_NONE,
191 _item_sel_cb, NULL );
195 glob_test_item = gli;
201 elm_main(int argc, char **argv)
205 win = eailu_create_test_window_with_glib_init(_on_done, _on_focus_in);
208 /* and show the window */
209 evas_object_show(win);