Rev 6489 | Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
6481 | punk_joker | 1 | #include |
2 | #include |
||
3 | |||
4 | int main() |
||
5 | { |
||
6 | /* Load all libraries, initialize global tables like system color table and |
||
7 | operations table. kolibri_gui_init() will EXIT with mcall -1 if it fails |
||
8 | to do it's job. This is all you need to call and all libraries and GUI |
||
9 | elements can be used after a successful call to this function |
||
10 | */ |
||
11 | kolibri_gui_init(); |
||
12 | kolibri_kmenu_init(); |
||
13 | /* Set gui_event to REDRAW so that window is drawn in first iteration */ |
||
14 | unsigned int gui_event = KOLIBRI_EVENT_REDRAW; |
||
15 | oskey_t key; |
||
16 | |||
17 | kolibri_window *main_window = kolibri_new_window(50, 50, 400, 200, "kmenu example"); |
||
18 | |||
19 | kmenu_init(NULL); |
||
20 | |||
21 | void *sub_menu1 = ksubmenu_new(); |
||
22 | ksubmenu_add(sub_menu1, kmenuitem_new(0, "Open", 101)); |
||
23 | ksubmenu_add(sub_menu1, kmenuitem_new(0, "Save", 102)); |
||
24 | ksubmenu_add(sub_menu1, kmenuitem_new(2, "", 0)); |
||
25 | ksubmenu_add(sub_menu1, kmenuitem_new(0, "Exit", 103)); |
||
26 | |||
27 | void *sub_menu2 = ksubmenu_new(); |
||
28 | ksubmenu_add(sub_menu2, kmenuitem_new(0, "Find", 201)); |
||
29 | ksubmenu_add(sub_menu2, kmenuitem_new(0, "Replace", 202)); |
||
30 | |||
31 | void *sub_menu22 = ksubmenu_new(); |
||
32 | ksubmenu_add(sub_menu22, kmenuitem_new(0, "cp1251", 211)); |
||
33 | ksubmenu_add(sub_menu22, kmenuitem_new(0, "UTF-8", 212)); |
||
34 | ksubmenu_add(sub_menu2, kmenuitem__submenu_new(1, "Encoding", sub_menu22)); |
||
35 | |||
36 | void *main_menu = ksubmenu_new(); |
||
37 | ksubmenu_add(main_menu, kmenuitem__submenu_new(1, "File", sub_menu1)); |
||
38 | ksubmenu_add(main_menu, kmenuitem__submenu_new(1, "Edit", sub_menu2)); |
||
39 | |||
40 | extern volatile unsigned press_key; |
||
41 | |||
42 | do /* Start of main activity loop */ |
||
43 | { |
||
44 | if(gui_event == KOLIBRI_EVENT_REDRAW) |
||
45 | { |
||
46 | kolibri_handle_event_redraw(main_window); |
||
47 | kmainmenu_draw(main_menu); |
||
48 | } |
||
49 | else if(gui_event == KOLIBRI_EVENT_KEY) |
||
50 | { |
||
51 | key = get_key(); |
||
52 | switch (key.code) |
||
53 | { |
||
54 | } |
||
55 | press_key = key.val; |
||
56 | |||
57 | kolibri_handle_event_key(main_window); |
||
58 | } |
||
59 | else if(gui_event == KOLIBRI_EVENT_BUTTON) |
||
60 | { |
||
61 | unsigned int pressed_button = kolibri_button_get_identifier(); |
||
62 | switch (pressed_button) |
||
63 | { |
||
64 | case 101: |
||
65 | debug_board_write_str("File->Open\n"); |
||
66 | break; |
||
67 | case 102: |
||
68 | debug_board_write_str("File->Save\n"); |
||
69 | break; |
||
70 | case 103: |
||
71 | debug_board_write_str("File->Exit\n"); |
||
72 | break; |
||
73 | case 201: |
||
74 | debug_board_write_str("Edit->Find\n"); |
||
75 | break; |
||
76 | case 202: |
||
77 | debug_board_write_str("Edit->Replace\n"); |
||
78 | break; |
||
79 | case 211: |
||
80 | debug_board_write_str("Edit->Encoding->cp1251\n"); |
||
81 | break; |
||
82 | case 212: |
||
83 | debug_board_write_str("Edit->Encoding->UTF-8\n"); |
||
84 | break; |
||
85 | case BUTTON_CLOSE: |
||
86 | kolibri_exit(); |
||
87 | } |
||
88 | } |
||
89 | else if(gui_event == KOLIBRI_EVENT_MOUSE) |
||
90 | { |
||
91 | kolibri_handle_event_mouse(main_window); |
||
92 | kmainmenu_dispatch_cursorevent(main_menu); |
||
93 | } |
||
94 | |||
95 | } while((gui_event = get_os_event())); /* End of main activity loop */ |
||
96 | |||
97 | /* kolibri_quit(); */ |
||
98 | |||
99 | return 0; |
||
100 | } |