Subversion Repositories Kolibri OS

Rev

Rev 6362 | Go to most recent revision | 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
67
 
68
	; add 'Edit' menu to main
69
	stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Edit, [main_menu_edit]
70
	stdcall [ksubmenu_add], [main_menu], eax
71
 
6371 IgorA 72
	; init 'Instruments' menu
6359 IgorA 73
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Pencil, 0x51
74
	stdcall [ksubmenu_add], [main_menu_instr], eax
6362 IgorA 75
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Brush, 0x52
76
	stdcall [ksubmenu_add], [main_menu_instr], eax
77
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Spray, 0x53
78
	stdcall [ksubmenu_add], [main_menu_instr], eax
79
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Lastik, 0x54
80
	stdcall [ksubmenu_add], [main_menu_instr], eax
81
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Flood_fill, 0x55
82
	stdcall [ksubmenu_add], [main_menu_instr], eax
83
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Pipetka, 0x56
84
	stdcall [ksubmenu_add], [main_menu_instr], eax
85
	stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
86
	stdcall [ksubmenu_add], [main_menu_instr], eax
87
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Line, 0x57
88
	stdcall [ksubmenu_add], [main_menu_instr], eax
89
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Rectangle, 0x58
90
	stdcall [ksubmenu_add], [main_menu_instr], eax
91
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Circle, 0x59
92
	stdcall [ksubmenu_add], [main_menu_instr], eax
93
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Ellips, 0x5a
94
	stdcall [ksubmenu_add], [main_menu_instr], eax
95
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Hard_contour, 0x5b
96
	stdcall [ksubmenu_add], [main_menu_instr], eax
6359 IgorA 97
 
98
	; add 'Instruments' menu to main
99
	stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Instr, [main_menu_instr]
100
	stdcall [ksubmenu_add], [main_menu], eax
101
 
6371 IgorA 102
	; init 'Reflection' menu
103
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Filters_ReflectionLR, 0x41
104
	stdcall [ksubmenu_add], [main_menu_filters], eax
105
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Filters_ReflectionTB, 0x42
106
	stdcall [ksubmenu_add], [main_menu_filters], eax
107
 
108
	; add 'Reflection' menu to main
109
	stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Filters, [main_menu_filters]
110
	stdcall [ksubmenu_add], [main_menu], eax
6359 IgorA 111
	ret
112
 
113
put_main_menu:
114
	stdcall [kmainmenu_draw], [main_menu]
115
ret
116
 
117
button_handler_main_menu:
6362 IgorA 118
	menu_set 0x71, 7,1
119
	menu_set 0x72, 7,2
120
	menu_set 0x73, 7,3
121
	menu_set 0x74, 7,4
122
	menu_set 0x75, 7,5
123
	menu_set 0x61, 6,1
124
	menu_set 0x62, 6,2
125
	menu_set 0x63, 6,3
126
	menu_set 0x64, 6,4
127
	menu_set 0x65, 6,5
128
	menu_set 0x66, 6,6
129
	menu_set 0x51, 5,1
130
	menu_set 0x52, 5,2
131
	menu_set 0x53, 5,3
132
	menu_set 0x54, 5,4
133
	menu_set 0x55, 5,5
134
	menu_set 0x56, 5,6
135
	menu_set 0x57, 5,7
136
	menu_set 0x58, 5,8
137
	menu_set 0x59, 5,9
138
	menu_set 0x5a, 5,10
139
	menu_set 0x5b, 5,11
6371 IgorA 140
	menu_set 0x41, 4,1
141
	menu_set 0x42, 4,2
6359 IgorA 142
.end_handler:
143
ret
144
 
145
main_menu dd 0
146
main_menu_file  dd 0
147
main_menu_edit dd 0
148
main_menu_instr dd 0
6371 IgorA 149
main_menu_filters dd 0
6359 IgorA 150
 
151
sz_main_menu_File        db 'File', 0
152
sz_main_menu_File_New    db 'New', 0
153
sz_main_menu_File_Open   db 'Open', 0
154
sz_main_menu_File_Save   db 'Save', 0
155
sz_main_menu_File_SaveAs db 'Save as', 0
156
sz_main_menu_File_Exit   db 'Exit', 0
157
 
158
sz_main_menu_Edit       db 'Edit', 0
159
sz_main_menu_Edit_Undo  db 'Undo', 0
160
sz_main_menu_Edit_Redo  db 'Redo', 0
161
sz_main_menu_Edit_Copy  db 'Copy', 0
162
sz_main_menu_Edit_Paste db 'Paste', 0
163
sz_main_menu_Edit_Cut   db 'Cut', 0
164
sz_main_menu_Edit_ClS   db 'Clear screen', 0
165
 
166
sz_main_menu_Instr       db 'Instruments', 0
6362 IgorA 167
sz_main_menu_Instr_Pencil db 'Pencil', 0
168
sz_main_menu_Instr_Brush db 'Brush', 0
169
sz_main_menu_Instr_Spray db 'Spray', 0
170
sz_main_menu_Instr_Lastik db 'Lastik', 0
171
sz_main_menu_Instr_Flood_fill db 'Flood fill', 0
172
sz_main_menu_Instr_Pipetka db 'Pipetka', 0
173
sz_main_menu_Instr_Line db 'Line', 0
174
sz_main_menu_Instr_Rectangle db 'Rectangle', 0
175
sz_main_menu_Instr_Circle db 'Circle', 0
176
sz_main_menu_Instr_Ellips db 'Ellips', 0
6371 IgorA 177
sz_main_menu_Instr_Hard_contour db 'Hard contour', 0
178
 
179
sz_main_menu_Filters      db 'Filters', 0
180
sz_main_menu_Filters_ReflectionLR db 'Reflection |', 0
181
sz_main_menu_Filters_ReflectionTB db 'Reflection -', 0