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