Subversion Repositories Kolibri OS

Rev

Rev 6371 | Details | Compare with Previous | 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
 
6362 IgorA 5
macro menu_set code, m_group, m_number
6
{
7
local no_set
8
 
9
cmp eax, code
10
jne no_set
11
	mov [number_panel], m_group
12
	mov [number_menu], m_number
13
	jmp TakeInstruments
14
no_set:
15
}
16
 
6359 IgorA 17
init_main_menu:
18
	stdcall [kmenu_init], syscolors
19
 
20
	stdcall [ksubmenu_new]
21
	mov [main_menu], eax
22
 
23
	stdcall [ksubmenu_new]
24
	mov [main_menu_file], eax
25
	stdcall [ksubmenu_new]
26
	mov [main_menu_edit], eax
27
	stdcall [ksubmenu_new]
28
	mov [main_menu_instr], eax
6371 IgorA 29
	stdcall [ksubmenu_new]
30
	mov [main_menu_filters], eax
6359 IgorA 31
 
32
	; init 'File' menu
33
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_New, 0x71
34
	stdcall [ksubmenu_add], [main_menu_file], eax
35
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_Open, 0x72
36
	stdcall [ksubmenu_add], [main_menu_file], eax
37
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_Save, 0x73
38
	stdcall [ksubmenu_add], [main_menu_file], eax
39
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_SaveAs, 0x74
40
	stdcall [ksubmenu_add], [main_menu_file], eax
41
	stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
42
	stdcall [ksubmenu_add], [main_menu_file], eax
43
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_Exit, 0x75
44
	stdcall [ksubmenu_add], [main_menu_file], eax
45
 
46
	; add 'File' menu to main
47
	stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_File, [main_menu_file]
48
	stdcall [ksubmenu_add], [main_menu], eax
49
 
50
	; init 'Edit' menu
51
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Edit_Undo, 0x61
52
	stdcall [ksubmenu_add], [main_menu_edit], eax
53
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Edit_Redo, 0x62
54
	stdcall [ksubmenu_add], [main_menu_edit], eax
55
	stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
56
	stdcall [ksubmenu_add], [main_menu_edit], eax
57
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Edit_Copy, 0x63
58
	stdcall [ksubmenu_add], [main_menu_edit], eax
59
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Edit_Paste, 0x64
60
	stdcall [ksubmenu_add], [main_menu_edit], eax
61
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Edit_Cut, 0x65
62
	stdcall [ksubmenu_add], [main_menu_edit], eax
63
	stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
64
	stdcall [ksubmenu_add], [main_menu_edit], eax
65
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Edit_ClS, 0x66
66
	stdcall [ksubmenu_add], [main_menu_edit], eax
6385 IgorA 67
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Edit_SelectAll, 0x67
68
	stdcall [ksubmenu_add], [main_menu_edit], eax
6359 IgorA 69
 
70
	; add 'Edit' menu to main
71
	stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Edit, [main_menu_edit]
72
	stdcall [ksubmenu_add], [main_menu], eax
73
 
6371 IgorA 74
	; init 'Instruments' menu
6359 IgorA 75
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Pencil, 0x51
76
	stdcall [ksubmenu_add], [main_menu_instr], eax
6362 IgorA 77
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Brush, 0x52
78
	stdcall [ksubmenu_add], [main_menu_instr], eax
79
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Spray, 0x53
80
	stdcall [ksubmenu_add], [main_menu_instr], eax
81
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Lastik, 0x54
82
	stdcall [ksubmenu_add], [main_menu_instr], eax
83
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Flood_fill, 0x55
84
	stdcall [ksubmenu_add], [main_menu_instr], eax
85
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Pipetka, 0x56
86
	stdcall [ksubmenu_add], [main_menu_instr], eax
87
	stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
88
	stdcall [ksubmenu_add], [main_menu_instr], eax
89
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Line, 0x57
90
	stdcall [ksubmenu_add], [main_menu_instr], eax
91
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Rectangle, 0x58
92
	stdcall [ksubmenu_add], [main_menu_instr], eax
93
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Circle, 0x59
94
	stdcall [ksubmenu_add], [main_menu_instr], eax
95
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Ellips, 0x5a
96
	stdcall [ksubmenu_add], [main_menu_instr], eax
97
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Hard_contour, 0x5b
98
	stdcall [ksubmenu_add], [main_menu_instr], eax
6359 IgorA 99
 
100
	; add 'Instruments' menu to main
101
	stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Instr, [main_menu_instr]
102
	stdcall [ksubmenu_add], [main_menu], eax
103
 
6371 IgorA 104
	; init 'Reflection' menu
105
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Filters_ReflectionLR, 0x41
106
	stdcall [ksubmenu_add], [main_menu_filters], eax
107
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Filters_ReflectionTB, 0x42
108
	stdcall [ksubmenu_add], [main_menu_filters], eax
109
 
110
	; add 'Reflection' menu to main
111
	stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Filters, [main_menu_filters]
112
	stdcall [ksubmenu_add], [main_menu], eax
6359 IgorA 113
	ret
114
 
115
put_main_menu:
116
	stdcall [kmainmenu_draw], [main_menu]
117
ret
118
 
119
button_handler_main_menu:
6362 IgorA 120
	menu_set 0x71, 7,1
121
	menu_set 0x72, 7,2
122
	menu_set 0x73, 7,3
123
	menu_set 0x74, 7,4
124
	menu_set 0x75, 7,5
125
	menu_set 0x61, 6,1
126
	menu_set 0x62, 6,2
127
	menu_set 0x63, 6,3
128
	menu_set 0x64, 6,4
129
	menu_set 0x65, 6,5
130
	menu_set 0x66, 6,6
6385 IgorA 131
	menu_set 0x67, 6,7
6362 IgorA 132
	menu_set 0x51, 5,1
133
	menu_set 0x52, 5,2
134
	menu_set 0x53, 5,3
135
	menu_set 0x54, 5,4
136
	menu_set 0x55, 5,5
137
	menu_set 0x56, 5,6
138
	menu_set 0x57, 5,7
139
	menu_set 0x58, 5,8
140
	menu_set 0x59, 5,9
141
	menu_set 0x5a, 5,10
142
	menu_set 0x5b, 5,11
6371 IgorA 143
	menu_set 0x41, 4,1
144
	menu_set 0x42, 4,2
6359 IgorA 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
6371 IgorA 152
main_menu_filters dd 0
6359 IgorA 153
 
154
sz_main_menu_File        db 'File', 0
155
sz_main_menu_File_New    db 'New', 0
156
sz_main_menu_File_Open   db 'Open', 0
157
sz_main_menu_File_Save   db 'Save', 0
158
sz_main_menu_File_SaveAs db 'Save as', 0
159
sz_main_menu_File_Exit   db 'Exit', 0
160
 
161
sz_main_menu_Edit       db 'Edit', 0
162
sz_main_menu_Edit_Undo  db 'Undo', 0
163
sz_main_menu_Edit_Redo  db 'Redo', 0
164
sz_main_menu_Edit_Copy  db 'Copy', 0
165
sz_main_menu_Edit_Paste db 'Paste', 0
166
sz_main_menu_Edit_Cut   db 'Cut', 0
167
sz_main_menu_Edit_ClS   db 'Clear screen', 0
6385 IgorA 168
sz_main_menu_Edit_SelectAll db 'Select all', 0
6359 IgorA 169
 
170
sz_main_menu_Instr       db 'Instruments', 0
6362 IgorA 171
sz_main_menu_Instr_Pencil db 'Pencil', 0
172
sz_main_menu_Instr_Brush db 'Brush', 0
173
sz_main_menu_Instr_Spray db 'Spray', 0
174
sz_main_menu_Instr_Lastik db 'Lastik', 0
175
sz_main_menu_Instr_Flood_fill db 'Flood fill', 0
176
sz_main_menu_Instr_Pipetka db 'Pipetka', 0
177
sz_main_menu_Instr_Line db 'Line', 0
178
sz_main_menu_Instr_Rectangle db 'Rectangle', 0
179
sz_main_menu_Instr_Circle db 'Circle', 0
180
sz_main_menu_Instr_Ellips db 'Ellips', 0
6371 IgorA 181
sz_main_menu_Instr_Hard_contour db 'Hard contour', 0
182
 
183
sz_main_menu_Filters      db 'Filters', 0
184
sz_main_menu_Filters_ReflectionLR db 'Reflection |', 0
185
sz_main_menu_Filters_ReflectionTB db 'Reflection -', 0