Subversion Repositories Kolibri OS

Rev

Rev 6362 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
6359 IgorA 1
KMENUITEM_NORMAL equ 0
2
KMENUITEM_SUBMENU equ 1
3
KMENUITEM_SEPARATOR equ 2
4
 
5
init_main_menu:
6
	stdcall [kmenu_init], syscolors
7
 
8
	stdcall [ksubmenu_new]
9
	mov [main_menu], eax
10
 
11
	stdcall [ksubmenu_new]
12
	mov [main_menu_file], eax
13
	stdcall [ksubmenu_new]
14
	mov [main_menu_edit], eax
15
	stdcall [ksubmenu_new]
16
	mov [main_menu_instr], eax
17
 
18
	; init 'File' menu
19
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_New, 0x71
20
	stdcall [ksubmenu_add], [main_menu_file], eax
21
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_Open, 0x72
22
	stdcall [ksubmenu_add], [main_menu_file], eax
23
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_Save, 0x73
24
	stdcall [ksubmenu_add], [main_menu_file], eax
25
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_SaveAs, 0x74
26
	stdcall [ksubmenu_add], [main_menu_file], eax
27
	stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
28
	stdcall [ksubmenu_add], [main_menu_file], eax
29
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_Exit, 0x75
30
	stdcall [ksubmenu_add], [main_menu_file], eax
31
 
32
	; add 'File' menu to main
33
	stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_File, [main_menu_file]
34
	stdcall [ksubmenu_add], [main_menu], eax
35
 
36
	; init 'Edit' menu
37
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Edit_Undo, 0x61
38
	stdcall [ksubmenu_add], [main_menu_edit], eax
39
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Edit_Redo, 0x62
40
	stdcall [ksubmenu_add], [main_menu_edit], eax
41
	stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
42
	stdcall [ksubmenu_add], [main_menu_edit], eax
43
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Edit_Copy, 0x63
44
	stdcall [ksubmenu_add], [main_menu_edit], eax
45
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Edit_Paste, 0x64
46
	stdcall [ksubmenu_add], [main_menu_edit], eax
47
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Edit_Cut, 0x65
48
	stdcall [ksubmenu_add], [main_menu_edit], eax
49
	stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
50
	stdcall [ksubmenu_add], [main_menu_edit], eax
51
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Edit_ClS, 0x66
52
	stdcall [ksubmenu_add], [main_menu_edit], eax
53
 
54
	; add 'Edit' menu to main
55
	stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Edit, [main_menu_edit]
56
	stdcall [ksubmenu_add], [main_menu], eax
57
 
58
	; init 'Edit' menu
59
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Pencil, 0x51
60
	stdcall [ksubmenu_add], [main_menu_instr], eax
61
 
62
	; add 'Instruments' menu to main
63
	stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Instr, [main_menu_instr]
64
	stdcall [ksubmenu_add], [main_menu], eax
65
 
66
	ret
67
 
68
put_main_menu:
69
	stdcall [kmainmenu_draw], [main_menu]
70
ret
71
 
72
button_handler_main_menu:
73
	cmp eax, 0x71
74
	jne @f
75
		mov [number_panel], 7
76
		mov [number_menu], 1
77
		jmp TakeInstruments
78
@@:
79
	cmp eax, 0x72
80
	jne @f
81
		mov [number_panel], 7
82
		mov [number_menu], 2
83
		jmp TakeInstruments
84
@@:
85
	cmp eax, 0x73
86
	jne @f
87
		mov [number_panel], 7
88
		mov [number_menu], 3
89
		jmp TakeInstruments
90
@@:
91
	cmp eax, 0x74
92
	jne @f
93
		mov [number_panel], 7
94
		mov [number_menu], 4
95
		jmp TakeInstruments
96
@@:
97
	cmp eax, 0x75
98
	jne @f
99
		mov [number_panel], 7
100
		mov [number_menu], 5
101
		jmp TakeInstruments
102
@@:
103
	cmp eax, 0x61
104
	jne @f
105
		mov [number_panel], 6
106
		mov [number_menu], 1
107
		jmp TakeInstruments
108
@@:
109
	cmp eax, 0x62
110
	jne @f
111
		mov [number_panel], 6
112
		mov [number_menu], 2
113
		jmp TakeInstruments
114
@@:
115
	cmp eax, 0x63
116
	jne @f
117
		mov [number_panel], 6
118
		mov [number_menu], 3
119
		jmp TakeInstruments
120
@@:
121
	cmp eax, 0x64
122
	jne @f
123
		mov [number_panel], 6
124
		mov [number_menu], 4
125
		jmp TakeInstruments
126
@@:
127
	cmp eax, 0x65
128
	jne @f
129
		mov [number_panel], 6
130
		mov [number_menu], 5
131
		jmp TakeInstruments
132
@@:
133
	cmp eax, 0x66
134
	jne @f
135
		mov [number_panel], 6
136
		mov [number_menu], 6
137
		jmp TakeInstruments
138
@@:
139
	cmp eax, 0x51
140
	jne @f
141
		mov [number_panel], 5
142
		mov [number_menu], 1
143
		jmp TakeInstruments
144
@@:
145
.end_handler:
146
ret
147
 
148
main_menu dd 0
149
main_menu_file  dd 0
150
main_menu_edit dd 0
151
main_menu_instr dd 0
152
 
153
sz_main_menu_File        db 'File', 0
154
sz_main_menu_File_New    db 'New', 0
155
sz_main_menu_File_Open   db 'Open', 0
156
sz_main_menu_File_Save   db 'Save', 0
157
sz_main_menu_File_SaveAs db 'Save as', 0
158
sz_main_menu_File_Exit   db 'Exit', 0
159
 
160
sz_main_menu_Edit       db 'Edit', 0
161
sz_main_menu_Edit_Undo  db 'Undo', 0
162
sz_main_menu_Edit_Redo  db 'Redo', 0
163
sz_main_menu_Edit_Copy  db 'Copy', 0
164
sz_main_menu_Edit_Paste db 'Paste', 0
165
sz_main_menu_Edit_Cut   db 'Cut', 0
166
sz_main_menu_Edit_ClS   db 'Clear screen', 0
167
 
168
sz_main_menu_Instr       db 'Instruments', 0
169
sz_main_menu_Instr_Pencil db 'Pencil', 0