1 static void gui_grid_draw_item(const char *logo
, void(*callback
)(void*, Evas
*, Evas_Object
*, void *),
2 void *data
, int x
, int y
) {
4 Evas_Object
*elogo
= evas_object_image_add(evas
);
5 evas_object_image_file_set(elogo
, logo
, NULL
);
6 evas_object_image_fill_set(elogo
, 0, 0, GRID_LOGO_WIDTH
, GRID_LOGO_HEIGHT
);
7 evas_object_move(elogo
, x
, y
);
8 evas_object_resize(elogo
, GRID_LOGO_WIDTH
, GRID_LOGO_HEIGHT
);
9 evas_object_show(elogo
);
11 evas_object_event_callback_add(elogo
, EVAS_CALLBACK_MOUSE_UP
, callback
, data
);
14 static void gui_grid(Eina_List
*systems
) {
15 /* Divide the screen into 6ths */
17 eline
= evas_object_line_add(evas
);
18 evas_object_line_xy_set(eline
, SCREEN_WIDTH
/2, 0, SCREEN_WIDTH
/2, SCREEN_HEIGHT
);
19 evas_object_show(eline
);
20 eline
= evas_object_line_add(evas
);
21 evas_object_line_xy_set(eline
, 0, SCREEN_HEIGHT
/3, SCREEN_WIDTH
, SCREEN_HEIGHT
/3);
22 evas_object_show(eline
);
23 eline
= evas_object_line_add(evas
);
24 evas_object_line_xy_set(eline
, 0, 2*(SCREEN_HEIGHT
/3), SCREEN_WIDTH
, 2*(SCREEN_HEIGHT
/3) );
25 evas_object_show(eline
);
28 unsigned int i
= 0, x
, y
;
31 EINA_LIST_FOREACH(systems
, l
, s
) {
32 x
= (i
%2 == 0) ? 20 : 260;
33 y
= 16 + ((SCREEN_HEIGHT
/3) * (i
/2));
34 gui_grid_draw_item(s
->logo
, gui_bootitem_clicked
, s
, x
, y
);
38 for (i
= 0; i
< countof(menu
); i
++) {
39 x
= ((5-i
)%2 == 0) ? 20 : 260;
40 y
= 16 + ((SCREEN_HEIGHT
/3) * ((5-i
)/2));
41 gui_grid_draw_item(menu
[i
].logo
, menu
[i
].callback
, menu
[i
].data
, x
, y
);