Binary files qi-bootmenu-0.2-orig/.config.h.swp and qi-bootmenu-0.2/.config.h.swp differ diff -ruN qi-bootmenu-0.2-orig/config.h qi-bootmenu-0.2/config.h --- qi-bootmenu-0.2-orig/config.h 2011-07-07 14:49:12.000000000 +0200 +++ qi-bootmenu-0.2/config.h 2011-07-07 14:54:25.000000000 +0200 @@ -23,6 +23,14 @@ /* static menu entries */ MenuItem menu[] = { + /* entry format: + * + * { Label, path of icon, callback, argument } + */ + + { "Welcome to qi-bootmenu!", NULL, NULL, NULL }, + { "Please return device to IT.", NULL, NULL, NULL }, + { "NAND Flash", DEFAULT_LOGO, boot_nand, "/dev/mtdblock6" }, { "Power Off", "/usr/share/qi-bootmenu/poweroff.png", poweroff, NULL }, }; @@ -31,6 +39,8 @@ #define LIST_FONT_SELECTED_COLOR RGB(255, 102, 0) #define LIST_LOGO_WIDTH 100 #define LIST_LOGO_HEIGHT 80 +/* height of a line without logo */ +#define LIST_TEXT_HEIGHT 40 #include "gui-list.c" diff -ruN qi-bootmenu-0.2-orig/gui-list.c qi-bootmenu-0.2/gui-list.c --- qi-bootmenu-0.2-orig/gui-list.c 2011-07-07 14:49:12.000000000 +0200 +++ qi-bootmenu-0.2/gui-list.c 2011-07-07 14:53:55.000000000 +0200 @@ -1,14 +1,21 @@ static void gui_list_draw_item(const char *text, const char *logo, void(*callback)(void*, Evas*, Evas_Object*, void *), void *data, int x, int y) { - Evas_Object *ebox, *elogo, *etext, *erect; + Evas_Object *ebox, *elogo = NULL, *etext, *erect; + unsigned int line_height = LIST_TEXT_HEIGHT; + + /* logo (if any) */ + if (logo) { + line_height = LIST_LOGO_HEIGHT; + elogo = evas_object_image_add(evas); + evas_object_image_file_set(elogo, logo, NULL); + evas_object_image_fill_set(elogo, 0, 0, LIST_LOGO_WIDTH, LIST_LOGO_HEIGHT); + evas_object_resize(elogo, LIST_LOGO_WIDTH, LIST_LOGO_HEIGHT); + evas_object_show(elogo); + } - elogo = evas_object_image_add(evas); - evas_object_image_file_set(elogo, logo, NULL); - evas_object_image_fill_set(elogo, 0, 0, LIST_LOGO_WIDTH, LIST_LOGO_HEIGHT); - evas_object_resize(elogo, LIST_LOGO_WIDTH, LIST_LOGO_HEIGHT); - evas_object_show(elogo); + /* description */ etext = evas_object_text_add(evas); evas_object_text_font_set(etext, FONT, FONT_SIZE); evas_object_text_text_set(etext, text); @@ -19,16 +26,21 @@ evas_object_box_align_set(ebox, 0, 0.5); evas_object_box_padding_set(ebox, 10, 10); evas_object_move(ebox, x, y); - evas_object_resize(ebox, SCREEN_WIDTH, LIST_LOGO_HEIGHT); - evas_object_box_append(ebox, elogo); + evas_object_resize(ebox, SCREEN_WIDTH, line_height); + if (logo) { + evas_object_box_append(ebox, elogo); + } evas_object_box_append(ebox, etext); /* this is just an invisible rect to catch all mouse down events in the area */ erect = evas_object_rectangle_add(evas); evas_object_move(erect, x, y); - evas_object_resize(erect, SCREEN_WIDTH, LIST_LOGO_HEIGHT); + evas_object_resize(erect, SCREEN_WIDTH, line_height); evas_object_color_set(erect, 0, 0, 0, 0); - evas_object_event_callback_add(erect, EVAS_CALLBACK_MOUSE_DOWN, callback, data); + /* attach callback? */ + if (callback != NULL) { + evas_object_event_callback_add(erect, EVAS_CALLBACK_MOUSE_DOWN, callback, data); + } evas_object_data_set(erect, "text", etext); evas_object_show(erect);