Add static NAND Flash menu entry
[qi-bootmenu/guyou.git] / gui.c
blob35efcb6a0f2420e97737b1a6b3bde11a1412913e
1 static void gui_show_error(const char *errstr, ...) {
2 va_list ap;
4 va_start(ap, errstr);
6 if (gui->error)
7 gui->error(errstr, ap);
9 vfprintf(stderr, errstr, ap);
10 va_end(ap);
13 static void poweroff(void *data, Evas *evas, Evas_Object *item, void *event) {
14 if (gui->select)
15 gui->select(item);
16 system("poweroff");
19 static void boot_nand(void *data, Evas *evas, Evas_Object *item, void *event) {
21 if (gui->select)
22 gui->select(item);
24 BootItem *nand = scan_partition((const char *)data);
25 if (!nand) {
26 gui_show_error("No kernel found in NAND Flash.\n");
27 return;
30 boot_kernel(nand);
33 static void gui_bootitem_clicked(void *data, Evas *evas, Evas_Object *item, void *event) {
34 if (gui->select)
35 gui->select(item);
36 boot_kernel((BootItem*)data);
37 /* XXX: shouldn't be reached, display an error message? */
40 static bool gui_init(){
41 if (!ecore_init() || !ecore_evas_init())
42 return false;
44 /* XXX: fixed dimensions */
45 ee = ecore_evas_new(NULL, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, NULL);
47 if (!ee)
48 return false;
50 ecore_evas_title_set(ee, APPNAME);
51 ecore_evas_borderless_set(ee, 0);
52 ecore_evas_show(ee);
54 evas = ecore_evas_get(ee);
55 if (!evas)
56 return false;
58 evas_font_path_append(evas, FONT_PATH);
60 return true;