source: titan/titan/multiboot.h @ 41391

Last change on this file since 41391 was 41391, checked in by gost, 5 years ago

[titan] hd51... add multiboot menu

  • Property svn:executable set to *
File size: 1.2 KB
Line 
1#ifndef MULTIBOOT_H
2#define MULTIBOOT_H
3
4void screenmultiboot(void)
5{
6        char* tmpstr = NULL;
7        int rcret = 0;
8       
9        struct skin* screen = getscreen("multiboot");
10        struct skin* listbox = getscreennode(screen, "listbox");
11        struct skin* partitions = getscreennode(screen, "partitions");
12
13        addchoicebox(partitions, "1", "Startup_1");
14        addchoicebox(partitions, "2", "Startup_2");
15        addchoicebox(partitions, "3", "Startup_3");
16        addchoicebox(partitions, "4", "Startup_4");
17        system("cat /boot/STARTUP | cut -d' ' -f2 | cut -dl -f3 > /tmp/boot");
18        tmpstr = readsys("/tmp/boot", 1);
19        setchoiceboxselection(partitions, tmpstr);
20        free(tmpstr); tmpstr = NULL;
21       
22        drawscreen(screen, 0, 0);
23        addscreenrc(screen, listbox);
24       
25        struct skin* tmp = NULL;
26        tmp = listbox->select;
27
28        while(1)
29        {
30                addscreenrc(screen, tmp);
31                rcret = waitrc(screen, 0, 0);
32                tmp = listbox->select;
33                if(rcret == getrcconfigint("rcexit", NULL)) 
34                        break;
35                if(rcret == getrcconfigint("rcok", NULL))
36                {
37                        tmpstr = ostrcat("cp /boot/startup_", partitions->ret, 0, 0);
38                        tmpstr = ostrcat(tmpstr, " /boot/startup", 1, 0);
39                        system(tmpstr);
40                        free(tmpstr); tmpstr = NULL;
41                        break;
42                }
43        }
44        delownerrc(screen);
45        clearscreen(screen);
46}
47
48
49#endif         
50       
51       
Note: See TracBrowser for help on using the repository browser.