1 #define LIST_LOGO_WIDTH 100
2 #define LIST_LOGO_HEIGHT 80
4 static void gui_list_draw_item(const char *text
, const char *logo
, void(*callback
)(void*, Evas
*, Evas_Object
*, void *),
5 void *data
, int x
, int y
) {
7 Evas_Object
*ebox
, *elogo
, *etext
;
9 elogo
= evas_object_image_add(evas
);
10 evas_object_image_file_set(elogo
, logo
, NULL
);
11 evas_object_image_fill_set(elogo
, 0, 0, LIST_LOGO_WIDTH
, LIST_LOGO_HEIGHT
);
12 evas_object_resize(elogo
, LIST_LOGO_WIDTH
, LIST_LOGO_HEIGHT
);
13 evas_object_show(elogo
);
15 etext
= evas_object_text_add(evas
);
16 evas_object_text_font_set(etext
, FONT
, FONT_SIZE
);
17 evas_object_text_text_set(etext
, text
);
18 evas_object_show(etext
);
20 ebox
= evas_object_box_add(evas
);
21 evas_object_box_align_set(ebox
, 0, 0.5);
22 evas_object_box_padding_set(ebox
, 10, 10);
23 evas_object_move(ebox
, x
, y
);
24 evas_object_resize(ebox
, SCREEN_WIDTH
, LIST_LOGO_HEIGHT
);
25 evas_object_box_append(ebox
, elogo
);
26 evas_object_box_append(ebox
, etext
);
27 evas_object_event_callback_add(ebox
, EVAS_CALLBACK_MOUSE_UP
, callback
, data
);
29 evas_object_show(ebox
);
32 static void gui_list_select_item(Evas_Object
*item
) {
34 Evas_Coord x
, y
, w
, h
;
35 evas_object_geometry_get(item
, &x
, &y
, &w
, &h
);
36 eline
= evas_object_line_add(evas
);
37 evas_object_line_xy_set(eline
, x
, y
, x
+w
, y
);
38 evas_object_show(eline
);
39 eline
= evas_object_line_add(evas
);
40 evas_object_line_xy_set(eline
, x
, y
, x
, y
+h
);
41 evas_object_show(eline
);
42 eline
= evas_object_line_add(evas
);
43 evas_object_line_xy_set(eline
, x
+w
, y
, x
+w
, y
+h
);
44 evas_object_show(eline
);
45 eline
= evas_object_line_add(evas
);
46 evas_object_line_xy_set(eline
, x
, y
+h
, x
+w
, y
+h
);
47 evas_object_show(eline
);
50 static void gui_list(Eina_List
*systems
) {
55 EINA_LIST_FOREACH(systems
, l
, s
) {
56 gui_list_draw_item(s
->dev
, s
->logo
, bootitem_clicked
, s
, 0, y
);
57 y
+= LIST_LOGO_HEIGHT
;
59 /* add pre defined menu entries */
60 for (i
= 0; i
< countof(menu
); i
++) {
61 gui_list_draw_item(menu
[i
].text
, menu
[i
].logo
, menu
[i
].callback
, NULL
, 0, y
);
62 y
+= LIST_LOGO_HEIGHT
;