Subversion Repositories Kolibri OS

Rev

Rev 6359 | Rev 6371 | 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
29
 
30
	; init 'File' menu
31
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_New, 0x71
32
	stdcall [ksubmenu_add], [main_menu_file], eax
33
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_Open, 0x72
34
	stdcall [ksubmenu_add], [main_menu_file], eax
35
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_Save, 0x73
36
	stdcall [ksubmenu_add], [main_menu_file], eax
37
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_SaveAs, 0x74
38
	stdcall [ksubmenu_add], [main_menu_file], eax
39
	stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
40
	stdcall [ksubmenu_add], [main_menu_file], eax
41
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_Exit, 0x75
42
	stdcall [ksubmenu_add], [main_menu_file], eax
43
 
44
	; add 'File' menu to main
45
	stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_File, [main_menu_file]
46
	stdcall [ksubmenu_add], [main_menu], eax
47
 
48
	; init 'Edit' menu
49
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Edit_Undo, 0x61
50
	stdcall [ksubmenu_add], [main_menu_edit], eax
51
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Edit_Redo, 0x62
52
	stdcall [ksubmenu_add], [main_menu_edit], eax
53
	stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
54
	stdcall [ksubmenu_add], [main_menu_edit], eax
55
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Edit_Copy, 0x63
56
	stdcall [ksubmenu_add], [main_menu_edit], eax
57
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Edit_Paste, 0x64
58
	stdcall [ksubmenu_add], [main_menu_edit], eax
59
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Edit_Cut, 0x65
60
	stdcall [ksubmenu_add], [main_menu_edit], eax
61
	stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
62
	stdcall [ksubmenu_add], [main_menu_edit], eax
63
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Edit_ClS, 0x66
64
	stdcall [ksubmenu_add], [main_menu_edit], eax
65
 
66
	; add 'Edit' menu to main
67
	stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Edit, [main_menu_edit]
68
	stdcall [ksubmenu_add], [main_menu], eax
69
 
70
	; init 'Edit' menu
71
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Pencil, 0x51
72
	stdcall [ksubmenu_add], [main_menu_instr], eax
6362 IgorA 73
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Brush, 0x52
74
	stdcall [ksubmenu_add], [main_menu_instr], eax
75
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Spray, 0x53
76
	stdcall [ksubmenu_add], [main_menu_instr], eax
77
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Lastik, 0x54
78
	stdcall [ksubmenu_add], [main_menu_instr], eax
79
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Flood_fill, 0x55
80
	stdcall [ksubmenu_add], [main_menu_instr], eax
81
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Pipetka, 0x56
82
	stdcall [ksubmenu_add], [main_menu_instr], eax
83
	stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
84
	stdcall [ksubmenu_add], [main_menu_instr], eax
85
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Line, 0x57
86
	stdcall [ksubmenu_add], [main_menu_instr], eax
87
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Rectangle, 0x58
88
	stdcall [ksubmenu_add], [main_menu_instr], eax
89
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Circle, 0x59
90
	stdcall [ksubmenu_add], [main_menu_instr], eax
91
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Ellips, 0x5a
92
	stdcall [ksubmenu_add], [main_menu_instr], eax
93
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Hard_contour, 0x5b
94
	stdcall [ksubmenu_add], [main_menu_instr], eax
6359 IgorA 95
 
96
	; add 'Instruments' menu to main
97
	stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Instr, [main_menu_instr]
98
	stdcall [ksubmenu_add], [main_menu], eax
99
 
100
	ret
101
 
102
put_main_menu:
103
	stdcall [kmainmenu_draw], [main_menu]
104
ret
105
 
106
button_handler_main_menu:
6362 IgorA 107
	menu_set 0x71, 7,1
108
	menu_set 0x72, 7,2
109
	menu_set 0x73, 7,3
110
	menu_set 0x74, 7,4
111
	menu_set 0x75, 7,5
112
	menu_set 0x61, 6,1
113
	menu_set 0x62, 6,2
114
	menu_set 0x63, 6,3
115
	menu_set 0x64, 6,4
116
	menu_set 0x65, 6,5
117
	menu_set 0x66, 6,6
118
	menu_set 0x51, 5,1
119
	menu_set 0x52, 5,2
120
	menu_set 0x53, 5,3
121
	menu_set 0x54, 5,4
122
	menu_set 0x55, 5,5
123
	menu_set 0x56, 5,6
124
	menu_set 0x57, 5,7
125
	menu_set 0x58, 5,8
126
	menu_set 0x59, 5,9
127
	menu_set 0x5a, 5,10
128
	menu_set 0x5b, 5,11
6359 IgorA 129
.end_handler:
130
ret
131
 
132
main_menu dd 0
133
main_menu_file  dd 0
134
main_menu_edit dd 0
135
main_menu_instr dd 0
136
 
137
sz_main_menu_File        db 'File', 0
138
sz_main_menu_File_New    db 'New', 0
139
sz_main_menu_File_Open   db 'Open', 0
140
sz_main_menu_File_Save   db 'Save', 0
141
sz_main_menu_File_SaveAs db 'Save as', 0
142
sz_main_menu_File_Exit   db 'Exit', 0
143
 
144
sz_main_menu_Edit       db 'Edit', 0
145
sz_main_menu_Edit_Undo  db 'Undo', 0
146
sz_main_menu_Edit_Redo  db 'Redo', 0
147
sz_main_menu_Edit_Copy  db 'Copy', 0
148
sz_main_menu_Edit_Paste db 'Paste', 0
149
sz_main_menu_Edit_Cut   db 'Cut', 0
150
sz_main_menu_Edit_ClS   db 'Clear screen', 0
151
 
152
sz_main_menu_Instr       db 'Instruments', 0
6362 IgorA 153
sz_main_menu_Instr_Pencil db 'Pencil', 0
154
sz_main_menu_Instr_Brush db 'Brush', 0
155
sz_main_menu_Instr_Spray db 'Spray', 0
156
sz_main_menu_Instr_Lastik db 'Lastik', 0
157
sz_main_menu_Instr_Flood_fill db 'Flood fill', 0
158
sz_main_menu_Instr_Pipetka db 'Pipetka', 0
159
sz_main_menu_Instr_Line db 'Line', 0
160
sz_main_menu_Instr_Rectangle db 'Rectangle', 0
161
sz_main_menu_Instr_Circle db 'Circle', 0
162
sz_main_menu_Instr_Ellips db 'Ellips', 0
163
sz_main_menu_Instr_Hard_contour db 'Hard contour', 0