Print ${LIBS} at the beginning of the build
[qi-bootmenu.git] / gui-list.c
blobd24a06fe268477c90478c7928617f4485ae40450
1 static void gui_list_draw_item(const char *text, const char *logo, void(*callback)(void*, Evas*, Evas_Object*, void *),
2 void *data, int x, int y) {
4 Evas_Object *ebox, *elogo, *etext;
6 elogo = evas_object_image_add(evas);
7 evas_object_image_file_set(elogo, logo, NULL);
8 evas_object_image_fill_set(elogo, 0, 0, LIST_LOGO_WIDTH, LIST_LOGO_HEIGHT);
9 evas_object_resize(elogo, LIST_LOGO_WIDTH, LIST_LOGO_HEIGHT);
10 evas_object_show(elogo);
12 etext = evas_object_text_add(evas);
13 evas_object_text_font_set(etext, FONT, FONT_SIZE);
14 evas_object_text_text_set(etext, text);
15 evas_object_color_set(etext, LIST_FONT_COLOR, 255);
16 evas_object_show(etext);
18 ebox = evas_object_box_add(evas);
19 evas_object_box_align_set(ebox, 0, 0.5);
20 evas_object_box_padding_set(ebox, 10, 10);
21 evas_object_move(ebox, x, y);
22 evas_object_resize(ebox, SCREEN_WIDTH, LIST_LOGO_HEIGHT);
23 evas_object_box_append(ebox, elogo);
24 evas_object_box_append(ebox, etext);
25 evas_object_event_callback_add(ebox, EVAS_CALLBACK_MOUSE_UP, callback, data);
26 evas_object_data_set(ebox, "text", etext);
28 evas_object_show(ebox);
31 static void gui_list_select_item(Evas_Object *box) {
32 Evas_Object *text = evas_object_data_get(box, "text");
33 evas_object_color_set(text, LIST_FONT_SELECTED_COLOR, 255);
36 static void gui_list_show_error(const char *errstr, va_list ap) {
37 static Evas_Object *etext;
38 char buf[128];
40 if (!etext) {
41 Evas_Object *ebox = evas_object_box_add(evas);
42 evas_object_box_align_set(ebox, 0.5, 0.5);
43 evas_object_box_padding_set(ebox, 10, 10);
44 evas_object_move(ebox, 0, SCREEN_HEIGHT - LIST_LOGO_HEIGHT);
45 evas_object_resize(ebox, SCREEN_WIDTH, LIST_LOGO_HEIGHT);
47 etext = evas_object_text_add(evas);
48 evas_object_text_font_set(etext, FONT, FONT_SIZE);
49 evas_object_color_set(etext, LIST_FONT_COLOR, 255);
51 evas_object_box_append(ebox, etext);
52 evas_object_show(ebox);
55 vsnprintf(buf, sizeof buf, errstr, ap);
57 evas_object_text_text_set(etext, buf);
58 evas_object_show(etext);
61 static void gui_list(Eina_List *systems) {
62 Eina_List *l;
63 unsigned int i, y = 0;
64 BootItem *s;
66 EINA_LIST_FOREACH(systems, l, s) {
67 if (!strcmp(menu[0].data, s->dev))
68 menu[0].text = NULL;
69 gui_list_draw_item(s->dev, s->logo, gui_bootitem_clicked, s, 0, y);
70 y += LIST_LOGO_HEIGHT;
72 /* add pre defined menu entries */
73 for (i = 0; i < countof(menu); i++) {
74 if (!menu[i].text)
75 continue;
76 gui_list_draw_item(menu[i].text, menu[i].logo, menu[i].callback, menu[i].data, 0, y);
77 y += LIST_LOGO_HEIGHT;