Rev 1343 | Rev 1449 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1343 | Rev 1390 | ||
---|---|---|---|
1 | ;Îãðîìíàÿ áëàãîäàðíîñòü Maxxxx32, Diamond, Heavyiron |
1 | ;Îãðîìíàÿ áëàãîäàðíîñòü Maxxxx32, Diamond, Heavyiron |
2 | ;è äðóãèì ïðîãðàììèñòàì, à òàêæå |
2 | ;è äðóãèì ïðîãðàììèñòàì, à òàêæå |
3 | ;Òåïëîâó Àëåêñåþ ( |
3 | ;Òåïëîâó Àëåêñåþ ( |
4 | 4 | ||
5 | 5 | ||
6 | use32 |
6 | use32 |
7 | org 0x0 |
7 | org 0x0 |
8 | db 'MENUET01' ;èäåíòèô. èñïîëíÿåìîãî ôàéëà âñåãäà 8 áàéò |
8 | db 'MENUET01' ;èäåíòèô. èñïîëíÿåìîãî ôàéëà âñåãäà 8 áàéò |
9 | dd 0x01 |
9 | dd 0x01 |
10 | dd start |
10 | dd start |
11 | dd i_end ; ðàçìåð ïðèëîæåíèÿ |
11 | dd i_end ; ðàçìåð ïðèëîæåíèÿ |
12 | dd mem |
12 | dd mem |
13 | dd stacktop |
13 | dd stacktop |
14 | dd file_name;buf_cmd_lin |
14 | dd file_name;buf_cmd_lin |
15 | dd sys_path |
15 | dd sys_path |
16 | 16 | ||
17 | MAX_COLOR_WORD_LEN equ 40 |
17 | MAX_COLOR_WORD_LEN equ 40 |
18 | maxChars equ 100002 ;(...+2) |
18 | maxChars equ 100002 ;(...+2) |
19 | BUF_SIZE equ 1000 ;bufer for copy|paste |
19 | BUF_SIZE equ 1000 ;bufer for copy|paste |
20 | maxColWords equ 10000 |
20 | maxColWords equ 10000 |
21 | 21 | ||
22 | 22 | ||
23 | include '../../macros.inc' |
23 | include '../../macros.inc' |
24 | ;include '../../develop/libraries/box_lib/load_lib.mac' |
24 | include '../../develop/libraries/box_lib/load_lib.mac' |
25 | include 'load_lib.mac' ;include old file |
- | |
26 | include '../../develop/libraries/box_lib/trunk/tree_list.mac' |
25 | include '../../develop/libraries/box_lib/trunk/tree_list.mac' |
27 | include '../../develop/libraries/box_lib/trunk/editbox.mac' |
26 | include '../../develop/libraries/box_lib/trunk/editbox.mac' |
28 | 27 | ||
29 | include 'lang.inc' |
28 | include 'lang.inc' |
30 | include 't_data.inc' |
29 | include 't_data.inc' |
31 | include 'strlen.inc' |
30 | include 'strlen.inc' |
32 | include 't_work.inc' ;text work functions |
31 | include 't_work.inc' ;text work functions |
33 | include 't_draw.inc' ;draw main window functions |
32 | include 't_draw.inc' ;draw main window functions |
34 | include 't_button.inc' |
33 | include 't_button.inc' |
35 | 34 | ||
36 | @use_library |
35 | @use_library |
37 | 36 | ||
38 | start: |
37 | start: |
39 | mov eax,48 |
38 | mov eax,48 |
40 | mov ebx,3 |
39 | mov ebx,3 |
41 | mov ecx,sc |
40 | mov ecx,sc |
42 | mov edx,sizeof.system_colors |
41 | mov edx,sizeof.system_colors |
43 | mcall |
42 | mcall |
44 | 43 | ||
45 | m2m [wScr.bckg_col],[sc.work] |
44 | m2m [wScr.bckg_col],[sc.work] |
46 | m2m [wScr.frnt_col],[sc.work_button] |
45 | m2m [wScr.frnt_col],[sc.work_button] |
47 | m2m [wScr.line_col],[sc.work_button_text] |
46 | m2m [wScr.line_col],[sc.work_button_text] |
48 | 47 | ||
49 | m2m [hScr.bckg_col],[sc.work] |
48 | m2m [hScr.bckg_col],[sc.work] |
50 | m2m [hScr.frnt_col],[sc.work_button] |
49 | m2m [hScr.frnt_col],[sc.work_button] |
51 | m2m [hScr.line_col],[sc.work_button_text] |
50 | m2m [hScr.line_col],[sc.work_button_text] |
52 | 51 | ||
53 | 52 | ||
54 | mcall 68,11 |
53 | mcall 68,11 |
55 | or eax,eax |
54 | or eax,eax |
56 | jz button.exit |
55 | jz button.exit |
57 | 56 | ||
58 | mcall 66,1,1 ;scan code |
57 | mcall 66,1,1 ;scan code |
59 | ;mcall 26,2,1,conv_tabl |
58 | ;mcall 26,2,1,conv_tabl |
60 | 59 | ||
61 | mov ecx,sizeof.symbol*maxChars |
60 | mov ecx,sizeof.symbol*maxChars |
62 | call mem_Alloc |
61 | call mem_Alloc |
63 | mov [tex],eax |
62 | mov [tex],eax |
64 | mov [tex_1],eax |
63 | mov [tex_1],eax |
65 | add [tex_1],sizeof.symbol |
64 | add [tex_1],sizeof.symbol |
66 | mov [tex_end],eax |
65 | mov [tex_end],eax |
67 | add [tex_end],sizeof.symbol*maxChars |
66 | add [tex_end],sizeof.symbol*maxChars |
68 | 67 | ||
69 | mcall 40,0x27 |
68 | mcall 40,0x27 |
70 | 69 | ||
71 | call Clear |
70 | call Clear |
72 | 71 | ||
73 | ;------------------------------------------------- |
72 | ;------------------------------------------------- |
74 | mov ecx,maxColWords*sizeof.TexColViv |
73 | mov ecx,maxColWords*sizeof.TexColViv+40 |
75 | add ecx,40 |
74 | ;add ecx,40 |
76 | call mem_Alloc |
75 | call mem_Alloc |
77 | mov [options_file],eax |
76 | mov [options_file],eax |
78 | mov [options_file_end],eax |
77 | mov [options_file_end],eax |
79 | add [options_file_end],maxColWords*sizeof.TexColViv |
78 | add [options_file_end],maxColWords*sizeof.TexColViv |
80 | add [options_file_end],40 |
79 | add [options_file_end],40 |
81 | 80 | ||
82 | ;------------------------------------------------- |
81 | ;------------------------------------------------- |
83 | ; init bmp file |
82 | ; init bmp file |
84 | mov ecx,1200*18 |
83 | mov ecx,1200*18 |
85 | call mem_Alloc |
84 | call mem_Alloc |
86 | mov [bmp_icon],eax |
85 | mov [bmp_icon],eax |
87 | 86 | ||
88 | mov esi,file_name |
87 | mov esi,file_name |
89 | call strlen |
88 | call strlen |
90 | mov ecx,eax |
89 | mov ecx,eax |
91 | mov edi,buf_cmd_lin |
90 | mov edi,buf_cmd_lin |
92 | rep movsb |
91 | rep movsb |
93 | 92 | ||
94 | copy_path fn_icon,sys_path,file_name |
93 | copy_path fn_icon,sys_path,file_name,0x0 |
95 | 94 | ||
96 | mov eax,70 ;load icon file |
95 | mov eax,70 ;load icon file |
97 | mov [run_file_70.func_n], 0 |
96 | mov [run_file_70.func_n], 0 |
98 | mov [run_file_70.param1], 54 |
97 | mov [run_file_70.param1], 54 |
99 | mov [run_file_70.param2], 0 |
98 | mov [run_file_70.param2], 0 |
100 | mov [run_file_70.param3], 1200*18 |
99 | mov [run_file_70.param3], 1200*18 |
101 | m2m [run_file_70.param4], [bmp_icon] |
100 | m2m [run_file_70.param4], [bmp_icon] |
102 | mov [run_file_70.rezerv], 0 |
101 | mov [run_file_70.rezerv], 0 |
103 | mov [run_file_70.name], file_name |
102 | mov [run_file_70.name], file_name |
104 | mov ebx,run_file_70 |
103 | mov ebx,run_file_70 |
105 | int 0x40 |
104 | int 0x40 |
106 | 105 | ||
107 | cmp ebx,-1 |
106 | cmp ebx,-1 |
108 | mov [err_ini0],1 |
107 | mov [err_ini0],1 |
109 | je @f ;if open file |
108 | je @f ;if open file |
110 | mov [err_ini0],0 |
109 | mov [err_ini0],0 |
111 | @@: |
110 | @@: |
112 | 111 | ||
113 | load_libraries l_libs_start,load_lib_end |
112 | load_libraries l_libs_start,load_lib_end |
114 | 113 | ||
115 | ;¯à®¢¥àª ᪮«ìª® ã¤ ç® § £ã§¨« áì è «¨¡ |
114 | ;¯à®¢¥àª ᪮«ìª® ã¤ ç® § £ã§¨« áì è «¨¡ |
116 | mov ebp,lib0 |
115 | mov ebp,lib0 |
117 | cmp dword [ebp+ll_struc_size-4],0 |
116 | cmp dword [ebp+ll_struc_size-4],0 |
118 | jz @f |
117 | jz @f |
119 | mcall -1 ;exit not correct |
118 | mcall -1 ;exit not correct |
120 | @@: |
119 | @@: |
121 | mov ebp,lib1 ; |
120 | mov ebp,lib1 ; |
122 | cmp dword [ebp+ll_struc_size-4],0 |
121 | cmp dword [ebp+ll_struc_size-4],0 |
123 | jz @f |
122 | jz @f |
124 | mcall -1 ;exit not correct |
123 | mcall -1 ;exit not correct |
125 | @@: |
124 | @@: |
126 | 125 | ||
127 | 126 | ||
128 | ;--------------------------------------------------------------------- |
127 | ;--------------------------------------------------------------------- |
129 | push dword tree1 |
128 | push dword tree1 |
130 | call dword[tl_data_init] |
129 | call dword[tl_data_init] |
131 | ;--------------------------------------------------------------------- |
130 | ;--------------------------------------------------------------------- |
132 | ; ÷èòàåì bmp ôàéë ñ êóðñîðàìè è ëèíèÿìè |
131 | ; ÷èòàåì bmp ôàéë ñ êóðñîðàìè è ëèíèÿìè |
133 | copy_path fn_icon_tl_sys,sys_path,file_name |
132 | copy_path fn_icon_tl_sys,sys_path,file_name,0x0 |
134 | 133 | ||
135 | mov ecx,3*256*13 |
134 | mov ecx,3*256*13 |
136 | call mem_Alloc |
135 | call mem_Alloc |
137 | mov dword[tree1.data_img_sys],eax |
136 | mov dword[tree1.data_img_sys],eax |
138 | 137 | ||
139 | ;mov [run_file_70.func_n], 0 |
138 | ;mov [run_file_70.func_n], 0 |
140 | ;mov [run_file_70.param1], 54 |
139 | ;mov [run_file_70.param1], 54 |
141 | ;mov [run_file_70.param2], 0 |
140 | ;mov [run_file_70.param2], 0 |
142 | mov [run_file_70.param3], 3*256*13 |
141 | mov [run_file_70.param3], 3*256*13 |
143 | mov [run_file_70.param4], eax |
142 | mov [run_file_70.param4], eax |
144 | ;mov [run_file_70.rezerv], 0 |
143 | ;mov [run_file_70.rezerv], 0 |
145 | ;mov [run_file_70.name], file_name |
144 | ;mov [run_file_70.name], file_name |
146 | 145 | ||
147 | mov eax,70 ;load icon file |
146 | mov eax,70 ;load icon file |
148 | mov ebx,run_file_70 |
147 | mov ebx,run_file_70 |
149 | int 0x40 |
148 | int 0x40 |
150 | cmp ebx,0 |
149 | cmp ebx,0 |
151 | jg @f |
150 | jg @f |
152 | mov dword[tree1.data_img_sys],0 |
151 | mov dword[tree1.data_img_sys],0 |
153 | @@: |
152 | @@: |
154 | ;--------------------------------------------------------------------- |
153 | ;--------------------------------------------------------------------- |
155 | ; ÷èòàåì bmp ôàéë ñ èêîíêàìè óçëîâ |
154 | ; ÷èòàåì bmp ôàéë ñ èêîíêàìè óçëîâ |
156 | copy_path fn_icon_tl_nod,sys_path,file_name |
155 | copy_path fn_icon_tl_nod,sys_path,file_name,0x0 |
157 | 156 | ||
158 | mov ecx,3*256*2 |
157 | mov ecx,3*256*2 |
159 | call mem_Alloc |
158 | call mem_Alloc |
160 | mov dword[tree1.data_img],eax |
159 | mov dword[tree1.data_img],eax |
161 | 160 | ||
162 | ; mov [run_file_70.func_n], 0 |
161 | ; mov [run_file_70.func_n], 0 |
163 | ; mov [run_file_70.param1], 54 |
162 | ; mov [run_file_70.param1], 54 |
164 | ; mov [run_file_70.param2], 0 |
163 | ; mov [run_file_70.param2], 0 |
165 | mov [run_file_70.param3], 3*256*2 |
164 | mov [run_file_70.param3], 3*256*2 |
166 | mov [run_file_70.param4], eax |
165 | mov [run_file_70.param4], eax |
167 | ; mov [run_file_70.rezerv], 0 |
166 | ; mov [run_file_70.rezerv], 0 |
168 | ; mov [run_file_70.name], file_name |
167 | ; mov [run_file_70.name], file_name |
169 | 168 | ||
170 | mov eax,70 ;load icon file |
169 | mov eax,70 ;load icon file |
171 | mov ebx,run_file_70 |
170 | mov ebx,run_file_70 |
172 | int 0x40 |
171 | int 0x40 |
173 | cmp ebx,0 |
172 | cmp ebx,0 |
174 | jg @f |
173 | jg @f |
175 | mov dword[tree1.data_img],0 |
174 | mov dword[tree1.data_img],0 |
176 | @@: |
175 | @@: |
177 | ;------------------------------------------------------------------------------ |
176 | ;------------------------------------------------------------------------------ |
178 | copy_path fn_syntax_dir,sys_path,file_name ;áåðåì ïóòü ê ïàïêå ñ ôàéëàìè ñèíòàêñèñà |
177 | copy_path fn_syntax_dir,sys_path,file_name,0x0 ;áåðåì ïóòü ê ïàïêå ñ ôàéëàìè ñèíòàêñèñà |
179 | mov eax,70 |
178 | mov eax,70 |
180 | mov ebx,tree_file_struct |
179 | mov ebx,tree_file_struct |
181 | int 0x40 |
180 | int 0x40 |
182 | 181 | ||
183 | cmp ebx,-1 |
182 | cmp ebx,-1 |
184 | je .end_dir_init |
183 | je .end_dir_init |
185 | 184 | ||
186 | mov eax,dir_mem |
185 | mov eax,dir_mem |
187 | add eax,32+4+1+3+4*6+8 |
186 | add eax,32+4+1+3+4*6+8 |
188 | mov ecx,ebx |
187 | mov ecx,ebx |
189 | @@: |
188 | @@: |
190 | cmp byte[eax],'.' ;ôèëüòðóåì ôàéëû ñ èìåíàìè '.' è '..' |
189 | cmp byte[eax],'.' ;ôèëüòðóåì ôàéëû ñ èìåíàìè '.' è '..' |
191 | je .filter |
190 | je .filter |
192 | push dword tree1 |
191 | push dword tree1 |
193 | push dword 0x10000 ;1*2^16 - ãäå 1 íîìåð èêîíêè ñ êíèãîé |
192 | push dword 0x10000 ;1*2^16 - ãäå 1 íîìåð èêîíêè ñ êíèãîé |
194 | push dword eax |
193 | push dword eax |
195 | call dword[tl_node_add] |
194 | call dword[tl_node_add] |
196 | 195 | ||
197 | push dword tree1 |
196 | push dword tree1 |
198 | call dword[tl_cur_next] |
197 | call dword[tl_cur_next] |
199 | .filter: |
198 | .filter: |
200 | add eax,304 |
199 | add eax,304 |
201 | loop @b |
200 | loop @b |
202 | .end_dir_init: |
201 | .end_dir_init: |
203 | 202 | ||
204 | ; push dword tree1 |
203 | ; push dword tree1 |
205 | ; push dword 0 |
204 | ; push dword 0 |
206 | ; push dword file_name |
205 | ; push dword file_name |
207 | ; call dword[tl_node_add] |
206 | ; call dword[tl_node_add] |
208 | 207 | ||
209 | 208 | ||
210 | ;--- load color option file --- |
209 | ;--- load color option file --- |
211 | call InitColText |
210 | call InitColText |
212 | 211 | ||
213 | ;--- get cmd line --- |
212 | ;--- get cmd line --- |
214 | cmp byte[buf_cmd_lin+3],0 ;buf_cmd_lin |
213 | cmp byte[buf_cmd_lin+3],0 ;buf_cmd_lin |
215 | je @f ;if file names exist |
214 | je @f ;if file names exist |
216 | mov esi,buf_cmd_lin |
215 | mov esi,buf_cmd_lin |
217 | call strlen ;eax=strlen |
216 | call strlen ;eax=strlen |
218 | mov [edit1.size],eax |
217 | mov [edit1.size],eax |
219 | call but_OpenFile |
218 | call but_OpenFile |
220 | @@: |
219 | @@: |
221 | 220 | ||
222 | 221 | ||
223 | red_win: |
222 | red_win: |
224 | mcall 12,1 |
223 | mcall 12,1 |
225 | 224 | ||
226 | xor eax,eax |
225 | xor eax,eax |
227 | mov ebx,10*65536+485 |
226 | mov ebx,10*65536+485 |
228 | mov ecx,10*65536+280 |
227 | mov ecx,10*65536+280 |
229 | mov edx,[sc.work] |
228 | mov edx,[sc.work] |
230 | or edx,0x73000000 |
229 | or edx,0x73000000 |
231 | mov edi,hed |
230 | mov edi,hed |
232 | mcall |
231 | mcall |
233 | 232 | ||
234 | mcall 9,procinfo,-1 |
233 | mcall 9,procinfo,-1 |
235 | call EvSize |
234 | call EvSize |
236 | 235 | ||
237 | mov eax,13 ;rect |
236 | mov eax,13 ;rect |
238 | xor ebx,ebx |
237 | xor ebx,ebx |
239 | xor ecx,ecx |
238 | xor ecx,ecx |
240 | mov bx,word [procinfo.client_box.width] |
239 | mov bx,word [procinfo.client_box.width] |
241 | inc bx |
240 | inc bx |
242 | mov cx,word [wndMain.top] |
241 | mov cx,word [wndMain.top] |
243 | mcall |
242 | mcall |
244 | 243 | ||
245 | push dword edit1 |
244 | push dword edit1 |
246 | call [edit_box_draw] |
245 | call [edit_box_draw] |
247 | 246 | ||
248 | ; draw for Menu 1 |
247 | ; draw for Menu 1 |
249 | push dword menu_data_1 |
248 | push dword menu_data_1 |
250 | call [menu_bar_draw] |
249 | call [menu_bar_draw] |
251 | 250 | ||
252 | call draw_but_toolbar |
251 | call draw_but_toolbar |
253 | 252 | ||
254 | cmp [err_ini0],1 |
253 | cmp [err_ini0],1 |
255 | jne @f |
254 | jne @f |
256 | mov eax,4 |
255 | mov eax,4 |
257 | mov ebx,[wndMain.left] |
256 | mov ebx,[wndMain.left] |
258 | add ebx,[recMain.left] |
257 | add ebx,[recMain.left] |
259 | shl ebx,16 |
258 | shl ebx,16 |
260 | add ebx,[wndMain.top] |
259 | add ebx,[wndMain.top] |
261 | add ebx,[recMain.top] |
260 | add ebx,[recMain.top] |
262 | mov ecx,0x80ff0000 |
261 | mov ecx,0x80ff0000 |
263 | mov edx,txtErrIni0 |
262 | mov edx,txtErrIni0 |
264 | int 0x40 |
263 | int 0x40 |
265 | 264 | ||
266 | add ebx,10 ;move <--y--> |
265 | add ebx,10 ;move <--y--> |
267 | mov ecx,0x80ff0080 |
266 | mov ecx,0x80ff0080 |
268 | mov edx,file_name |
267 | mov edx,file_name |
269 | int 0x40 |
268 | int 0x40 |
270 | @@: |
269 | @@: |
271 | 270 | ||
272 | cmp [err_ini0],1 |
271 | cmp [err_ini0],1 |
273 | je @f |
272 | je @f |
274 | call draw_main_win |
273 | call draw_main_win |
275 | @@: |
274 | @@: |
276 | 275 | ||
277 | cmp [err_opn],1 |
276 | cmp [err_opn],1 |
278 | jne @f |
277 | jne @f |
279 | ;mov eax,4 |
278 | ;mov eax,4 |
280 | mov ebx,10*65536+35 |
279 | mov ebx,10*65536+35 |
281 | mov ecx,0x80ff0000 |
280 | mov ecx,0x80ff0000 |
282 | mov edx,txtErrOpen |
281 | mov edx,txtErrOpen |
283 | mcall |
282 | mcall |
284 | @@: |
283 | @@: |
285 | 284 | ||
286 | mcall 12,2 |
285 | mcall 12,2 |
287 | 286 | ||
288 | still: |
287 | still: |
289 | mov eax,10 |
288 | mov eax,10 |
290 | mcall |
289 | mcall |
291 | 290 | ||
292 | cmp al,1 ;èçì. ïîëîæåíèå îêíà |
291 | cmp al,1 ;èçì. ïîëîæåíèå îêíà |
293 | jz red_win |
292 | jz red_win |
294 | cmp al,2 |
293 | cmp al,2 |
295 | jz key |
294 | jz key |
296 | cmp al,3 |
295 | cmp al,3 |
297 | jz button |
296 | jz button |
298 | cmp al,6 |
297 | cmp al,6 |
299 | jz mouse |
298 | jz mouse |
300 | 299 | ||
301 | jmp still |
300 | jmp still |
302 | 301 | ||
303 | 302 | ||
304 | 303 | ||
305 | mouse: |
304 | mouse: |
306 | push dword edit1 |
305 | push dword edit1 |
307 | call [edit_box_mouse] |
306 | call [edit_box_mouse] |
308 | 307 | ||
309 | test word [edit1.flags],10b;ed_focus ; ¥á«¨ ¥ ¢ 䮪ãá¥, ¢ë室¨¬ |
308 | test word [edit1.flags],10b;ed_focus ; ¥á«¨ ¥ ¢ 䮪ãá¥, ¢ë室¨¬ |
310 | jne still |
309 | jne still |
311 | 310 | ||
312 | ;----------------------------------------------- |
311 | ;----------------------------------------------- |
313 | cmp [hScr.delta2],0 |
312 | cmp [hScr.delta2],0 |
314 | jne .horizontal |
313 | jne .horizontal |
315 | .vertical: |
314 | .vertical: |
316 | mov eax,[wScr.max_area] |
315 | mov eax,[wScr.max_area] |
317 | cmp eax,[wScr.cur_area] |
316 | cmp eax,[wScr.cur_area] |
318 | jbe .horizontal |
317 | jbe .horizontal |
319 | ; mouse event for Vertical ScrollBar |
318 | ; mouse event for Vertical ScrollBar |
320 | push dword wScr |
319 | push dword wScr |
321 | call [scrollbar_ver_mouse] |
320 | call [scrollbar_ver_mouse] |
322 | mov eax,wScr.redraw |
321 | mov eax,wScr.redraw |
323 | xor ebx,ebx |
322 | xor ebx,ebx |
324 | cmp [eax],ebx |
323 | cmp [eax],ebx |
325 | je @f |
324 | je @f |
326 | mov [eax],ebx |
325 | mov [eax],ebx |
327 | 326 | ||
328 | call draw_main_win |
327 | call draw_main_win |
329 | ;call mouse_wnd_main |
328 | ;call mouse_wnd_main |
330 | jmp still |
329 | jmp still |
331 | @@: |
330 | @@: |
332 | cmp [wScr.delta2],0 |
331 | cmp [wScr.delta2],0 |
333 | jne still |
332 | jne still |
334 | .horizontal: |
333 | .horizontal: |
335 | mov eax,[hScr.max_area] |
334 | mov eax,[hScr.max_area] |
336 | cmp eax,[hScr.cur_area] |
335 | cmp eax,[hScr.cur_area] |
337 | jbe .other |
336 | jbe .other |
338 | ; mouse event for Horizontal ScrollBar |
337 | ; mouse event for Horizontal ScrollBar |
339 | push dword hScr |
338 | push dword hScr |
340 | call [scrollbar_hor_mouse] |
339 | call [scrollbar_hor_mouse] |
341 | mov eax,hScr.redraw |
340 | mov eax,hScr.redraw |
342 | xor ebx,ebx |
341 | xor ebx,ebx |
343 | cmp [eax],ebx |
342 | cmp [eax],ebx |
344 | je .other |
343 | je .other |
345 | mov [eax],ebx |
344 | mov [eax],ebx |
346 | call draw_main_win |
345 | call draw_main_win |
347 | jmp still |
346 | jmp still |
348 | .other: |
347 | .other: |
349 | cmp [wScr.delta2],0 |
348 | cmp [wScr.delta2],0 |
350 | jne still |
349 | jne still |
351 | cmp [hScr.delta2],0 |
350 | cmp [hScr.delta2],0 |
352 | jne still |
351 | jne still |
353 | 352 | ||
354 | call mouse_wnd_main |
353 | call mouse_wnd_main |
355 | 354 | ||
356 | cmp byte[panel_id],TE_PANEL_FIND ;if not panel |
355 | cmp byte[panel_id],TE_PANEL_FIND ;if not panel |
357 | jne @f |
356 | jne @f |
358 | push dword edit2 |
357 | push dword edit2 |
359 | call [edit_box_mouse] |
358 | call [edit_box_mouse] |
360 | @@: |
359 | @@: |
361 | cmp byte[panel_id],TE_PANEL_SYNTAX ;if not panel |
360 | cmp byte[panel_id],TE_PANEL_SYNTAX ;if not panel |
362 | jne .menu_bar_1 ;@f |
361 | jne .menu_bar_1 ;@f |
363 | push dword tree1 |
362 | push dword tree1 |
364 | call [tl_mouse] |
363 | call [tl_mouse] |
365 | ;----------------------------------------------- |
364 | ;----------------------------------------------- |
366 | .menu_bar_1: |
365 | .menu_bar_1: |
367 | mov [menu_data_1.get_mouse_flag],1 |
366 | mov [menu_data_1.get_mouse_flag],1 |
368 | ; mouse event for Menu 1 |
367 | ; mouse event for Menu 1 |
369 | push dword menu_data_1 |
368 | push dword menu_data_1 |
370 | call [menu_bar_mouse] |
369 | call [menu_bar_mouse] |
371 | cmp [menu_data_1.click],dword 1 |
370 | cmp [menu_data_1.click],dword 1 |
372 | jne .mnu_1 |
371 | jne .mnu_1 |
373 | cmp [menu_data_1.cursor_out],dword 4 |
372 | cmp [menu_data_1.cursor_out],dword 4 |
374 | je button.exit |
373 | je button.exit |
375 | cmp [menu_data_1.cursor_out],dword 3 |
374 | cmp [menu_data_1.cursor_out],dword 3 |
376 | jne @f |
375 | jne @f |
377 | call but_SaveFile |
376 | call but_SaveFile |
378 | @@: |
377 | @@: |
379 | cmp [menu_data_1.cursor_out],dword 2 |
378 | cmp [menu_data_1.cursor_out],dword 2 |
380 | jne @f |
379 | jne @f |
381 | call but_OpenFile |
380 | call but_OpenFile |
382 | @@: |
381 | @@: |
383 | cmp [menu_data_1.cursor_out],dword 1 |
382 | cmp [menu_data_1.cursor_out],dword 1 |
384 | jne @f |
383 | jne @f |
385 | call but_NewFile |
384 | call but_NewFile |
386 | @@: |
385 | @@: |
387 | ;cmp [menu_data_1.cursor_out],dword 0 |
386 | ;cmp [menu_data_1.cursor_out],dword 0 |
388 | ;jne @f |
387 | ;jne @f |
389 | .mnu_1: |
388 | .mnu_1: |
390 | jmp still |
389 | jmp still |
391 | ;--------------------------------------------------------------------- |
390 | ;--------------------------------------------------------------------- |
392 | 391 | ||
393 | KeyConvertToASCII: |
392 | KeyConvertToASCII: |
394 | mov ebx,conv_tabl ;convert scan to ascii |
393 | mov ebx,conv_tabl ;convert scan to ascii |
395 | ror ax,8 |
394 | ror ax,8 |
396 | xor ah,ah |
395 | xor ah,ah |
397 | add bx,ax |
396 | add bx,ax |
398 | mov ah,byte[ebx] |
397 | mov ah,byte[ebx] |
399 | ret |
398 | ret |
400 | 399 | ||
401 | key: |
400 | key: |
402 | mov ecx,1 |
401 | mov ecx,1 |
403 | mcall 66,3 |
402 | mcall 66,3 |
404 | xor ebx,ebx |
403 | xor ebx,ebx |
405 | test al,0x03 ;[Shift] |
404 | test al,0x03 ;[Shift] |
406 | jz @f |
405 | jz @f |
407 | inc cl |
406 | inc cl |
408 | or ebx,KM_SHIFT |
407 | or ebx,KM_SHIFT |
409 | @@: |
408 | @@: |
410 | test al,0x0c ;[Ctrl] |
409 | test al,0x0c ;[Ctrl] |
411 | jz @f |
410 | jz @f |
412 | or ebx,KM_CTRL |
411 | or ebx,KM_CTRL |
413 | @@: |
412 | @@: |
414 | test al,0x30 ;[Alt] |
413 | test al,0x30 ;[Alt] |
415 | jz @f |
414 | jz @f |
416 | or ebx,KM_ALT |
415 | or ebx,KM_ALT |
417 | @@: |
416 | @@: |
418 | test al,0x80 ;[NumLock] |
417 | test al,0x80 ;[NumLock] |
419 | jz @f |
418 | jz @f |
420 | or ebx,KM_NUMLOCK |
419 | or ebx,KM_NUMLOCK |
421 | @@: |
420 | @@: |
422 | 421 | ||
423 | mov [keyUpr],ebx |
422 | mov [keyUpr],ebx |
424 | mcall 26,2,,conv_tabl |
423 | mcall 26,2,,conv_tabl |
425 | mcall 2 |
424 | mcall 2 |
426 | 425 | ||
427 | ; push dword tree1 ;??? |
426 | ; push dword tree1 ;??? |
428 | ; call [tl_key] ;??? |
427 | ; call [tl_key] ;??? |
429 | 428 | ||
430 | test word [edit1.flags],10b;ed_focus ; ¥á«¨ ¥ ¢ 䮪ãá¥, ¢ë室¨¬ |
429 | test word [edit1.flags],10b;ed_focus ; ¥á«¨ ¥ ¢ 䮪ãá¥, ¢ë室¨¬ |
431 | je @f |
430 | je @f |
432 | cmp ah,0x80 ;if key up |
431 | cmp ah,0x80 ;if key up |
433 | ja still |
432 | ja still |
434 | cmp ah,42 ;[Shift] (left) |
433 | cmp ah,42 ;[Shift] (left) |
435 | je still |
434 | je still |
436 | cmp ah,54 ;[Shift] (right) |
435 | cmp ah,54 ;[Shift] (right) |
437 | je still |
436 | je still |
438 | cmp ah,56 ;[Alt] |
437 | cmp ah,56 ;[Alt] |
439 | je still |
438 | je still |
440 | cmp ah,29 ;[Ctrl] |
439 | cmp ah,29 ;[Ctrl] |
441 | je still |
440 | je still |
442 | cmp ah,69 ;[Pause Break] |
441 | cmp ah,69 ;[Pause Break] |
443 | je still |
442 | je still |
444 | ; cmp [keyUpr],0 |
443 | ; cmp [keyUpr],0 |
445 | ; jne still |
444 | ; jne still |
446 | 445 | ||
447 | call KeyConvertToASCII |
446 | call KeyConvertToASCII |
448 | 447 | ||
449 | push dword edit1 |
448 | push dword edit1 |
450 | call [edit_box_key] |
449 | call [edit_box_key] |
451 | jmp still |
450 | jmp still |
452 | @@: |
451 | @@: |
453 | 452 | ||
454 | test word [edit2.flags],10b;ed_focus ; ¥á«¨ ¥ ¢ 䮪ãá¥, ¢ë室¨¬ |
453 | test word [edit2.flags],10b;ed_focus ; ¥á«¨ ¥ ¢ 䮪ãá¥, ¢ë室¨¬ |
455 | je @f |
454 | je @f |
456 | cmp ah,0x80 ;if key up |
455 | cmp ah,0x80 ;if key up |
457 | ja still |
456 | ja still |
458 | cmp ah,42 ;[Shift] (left) |
457 | cmp ah,42 ;[Shift] (left) |
459 | je still |
458 | je still |
460 | cmp ah,54 ;[Shift] (right) |
459 | cmp ah,54 ;[Shift] (right) |
461 | je still |
460 | je still |
462 | cmp ah,56 ;[Alt] |
461 | cmp ah,56 ;[Alt] |
463 | je still |
462 | je still |
464 | cmp ah,29 ;[Ctrl] |
463 | cmp ah,29 ;[Ctrl] |
465 | je still |
464 | je still |
466 | cmp ah,69 ;[Pause Break] |
465 | cmp ah,69 ;[Pause Break] |
467 | je still |
466 | je still |
468 | ; cmp [keyUpr],0 |
467 | ; cmp [keyUpr],0 |
469 | ; jne still |
468 | ; jne still |
470 | 469 | ||
471 | call KeyConvertToASCII |
470 | call KeyConvertToASCII |
472 | push dword edit2 |
471 | push dword edit2 |
473 | call [edit_box_key] |
472 | call [edit_box_key] |
474 | jmp still |
473 | jmp still |
475 | @@: |
474 | @@: |
476 | 475 | ||
477 | cmp ah,KEY_F1 ;[F1] |
476 | cmp ah,KEY_F1 ;[F1] |
478 | jne @f |
477 | jne @f |
479 | call ShowHelpF1 |
478 | call ShowHelpF1 |
480 | jmp still |
479 | jmp still |
481 | @@: |
480 | @@: |
482 | cmp ah,KEY_F3 ;[F3] |
481 | cmp ah,KEY_F3 ;[F3] |
483 | jne @f |
482 | jne @f |
484 | call but_FindText |
483 | call but_FindText |
485 | jmp still |
484 | jmp still |
486 | @@: |
485 | @@: |
487 | 486 | ||
488 | test [keyUpr],KM_CTRL ;Ctrl+... |
487 | test [keyUpr],KM_CTRL ;Ctrl+... |
489 | jz .key_Ctrl |
488 | jz .key_Ctrl |
490 | 489 | ||
491 | cmp ah,24 ;Ctrl+O |
490 | cmp ah,24 ;Ctrl+O |
492 | jne @f |
491 | jne @f |
493 | call but_OpenFile |
492 | call but_OpenFile |
494 | @@: |
493 | @@: |
495 | cmp ah,33 ;Ctrl+F |
494 | cmp ah,33 ;Ctrl+F |
496 | jne @f |
495 | jne @f |
497 | cmp byte[panel_id],TE_PANEL_FIND |
496 | cmp byte[panel_id],TE_PANEL_FIND |
498 | je @f |
497 | je @f |
499 | call but_find |
498 | call but_find |
500 | @@: |
499 | @@: |
501 | cmp ah,44 ;Ctrl+Z |
500 | cmp ah,44 ;Ctrl+Z |
502 | je but_undo |
501 | je but_undo |
503 | cmp ah,46 ;Ctrl+C |
502 | cmp ah,46 ;Ctrl+C |
504 | jne @f |
503 | jne @f |
505 | call but_Copy |
504 | call but_Copy |
506 | @@: |
505 | @@: |
507 | cmp ah,47 ;Ctrl+V |
506 | cmp ah,47 ;Ctrl+V |
508 | je but_paste |
507 | je but_paste |
509 | cmp ah,49 ;Ctrl+N |
508 | cmp ah,49 ;Ctrl+N |
510 | jne @f |
509 | jne @f |
511 | call but_NewFile |
510 | call but_NewFile |
512 | @@: |
511 | @@: |
513 | cmp ah,199 ;Ctrl+Home |
512 | cmp ah,199 ;Ctrl+Home |
514 | jne @f |
513 | jne @f |
515 | call but_CtrlHome |
514 | call but_CtrlHome |
516 | @@: |
515 | @@: |
517 | ;jmp still |
516 | ;jmp still |
518 | .key_Ctrl: |
517 | .key_Ctrl: |
519 | 518 | ||
520 | test [keyUpr],KM_SHIFT ;Shift+... |
519 | test [keyUpr],KM_SHIFT ;Shift+... |
521 | jz .key_Shift |
520 | jz .key_Shift |
522 | cmp ah,72 ;Shift+Up |
521 | cmp ah,72 ;Shift+Up |
523 | jne @f |
522 | jne @f |
524 | call sel_KeyUp |
523 | call sel_KeyUp |
525 | @@: |
524 | @@: |
526 | cmp ah,75 ;Shift+Left |
525 | cmp ah,75 ;Shift+Left |
527 | jne @f |
526 | jne @f |
528 | call sel_KeyLeft |
527 | call sel_KeyLeft |
529 | @@: |
528 | @@: |
530 | cmp ah,77 ;Shift+Right |
529 | cmp ah,77 ;Shift+Right |
531 | jne @f |
530 | jne @f |
532 | call sel_KeyRight |
531 | call sel_KeyRight |
533 | @@: |
532 | @@: |
534 | cmp ah,80 ;Shift+Down |
533 | cmp ah,80 ;Shift+Down |
535 | jne @f |
534 | jne @f |
536 | call sel_KeyDown |
535 | call sel_KeyDown |
537 | @@: |
536 | @@: |
538 | ;mov [dragk],1 ;íà÷èíàåì âûäåëåíèå îò êëàâèàòóðû |
537 | ;mov [dragk],1 ;íà÷èíàåì âûäåëåíèå îò êëàâèàòóðû |
539 | jmp .key_MoveCur |
538 | jmp .key_MoveCur |
540 | .key_Shift: |
539 | .key_Shift: |
541 | ;------------------------------------------------- |
540 | ;------------------------------------------------- |
542 | cmp ah,72 ;178 ;Up |
541 | cmp ah,72 ;178 ;Up |
543 | jne @f |
542 | jne @f |
544 | push dx |
543 | push dx |
545 | call draw_cursor_sumb |
544 | call draw_cursor_sumb |
546 | call CurMoveUp |
545 | call CurMoveUp |
547 | cmp dl,8 |
546 | cmp dl,8 |
548 | jne .no_red_0 |
547 | jne .no_red_0 |
549 | call OnInitialUpdate |
548 | call OnInitialUpdate |
550 | call draw_main_win |
549 | call draw_main_win |
551 | pop dx |
550 | pop dx |
552 | jmp @f |
551 | jmp @f |
553 | .no_red_0: |
552 | .no_red_0: |
554 | call draw_main_cursor |
553 | call draw_main_cursor |
555 | pop dx |
554 | pop dx |
556 | mov [dragk],0 ;çàêàí÷èâàåì âûäåëåíèå îò êëàâèàòóðû |
555 | mov [dragk],0 ;çàêàí÷èâàåì âûäåëåíèå îò êëàâèàòóðû |
557 | @@: |
556 | @@: |
558 | cmp ah,80 ;177 ;Down |
557 | cmp ah,80 ;177 ;Down |
559 | jne @f |
558 | jne @f |
560 | push dx |
559 | push dx |
561 | call draw_cursor_sumb |
560 | call draw_cursor_sumb |
562 | call CurMoveDown |
561 | call CurMoveDown |
563 | cmp dl,8 |
562 | cmp dl,8 |
564 | jne .no_red_1 |
563 | jne .no_red_1 |
565 | call OnInitialUpdate |
564 | call OnInitialUpdate |
566 | call draw_main_win |
565 | call draw_main_win |
567 | pop dx |
566 | pop dx |
568 | jmp @f |
567 | jmp @f |
569 | .no_red_1: |
568 | .no_red_1: |
570 | call draw_main_cursor |
569 | call draw_main_cursor |
571 | pop dx |
570 | pop dx |
572 | mov [dragk],0 ;çàêàí÷èâàåì âûäåëåíèå îò êëàâèàòóðû |
571 | mov [dragk],0 ;çàêàí÷èâàåì âûäåëåíèå îò êëàâèàòóðû |
573 | @@: |
572 | @@: |
574 | cmp ah,75 ;176 ;Left |
573 | cmp ah,75 ;176 ;Left |
575 | jne @f |
574 | jne @f |
576 | push dx |
575 | push dx |
577 | call draw_cursor_sumb |
576 | call draw_cursor_sumb |
578 | call CurMoveLeft |
577 | call CurMoveLeft |
579 | cmp dl,8 |
578 | cmp dl,8 |
580 | jne .no_red_2 |
579 | jne .no_red_2 |
581 | call OnInitialUpdate |
580 | call OnInitialUpdate |
582 | call draw_main_win |
581 | call draw_main_win |
583 | pop dx |
582 | pop dx |
584 | jmp @f |
583 | jmp @f |
585 | .no_red_2: |
584 | .no_red_2: |
586 | call draw_main_cursor |
585 | call draw_main_cursor |
587 | pop dx |
586 | pop dx |
588 | mov [dragk],0 ;çàêàí÷èâàåì âûäåëåíèå îò êëàâèàòóðû |
587 | mov [dragk],0 ;çàêàí÷èâàåì âûäåëåíèå îò êëàâèàòóðû |
589 | @@: |
588 | @@: |
590 | cmp ah,77 ;179 ;Right |
589 | cmp ah,77 ;179 ;Right |
591 | jne @f |
590 | jne @f |
592 | push dx |
591 | push dx |
593 | call draw_cursor_sumb |
592 | call draw_cursor_sumb |
594 | call CurMoveRight |
593 | call CurMoveRight |
595 | cmp dl,8 |
594 | cmp dl,8 |
596 | jne .no_red_3 |
595 | jne .no_red_3 |
597 | call OnInitialUpdate |
596 | call OnInitialUpdate |
598 | call draw_main_win |
597 | call draw_main_win |
599 | pop dx |
598 | pop dx |
600 | jmp @f |
599 | jmp @f |
601 | .no_red_3: |
600 | .no_red_3: |
602 | call draw_main_cursor |
601 | call draw_main_cursor |
603 | pop dx |
602 | pop dx |
604 | mov [dragk],0 ;çàêàí÷èâàåì âûäåëåíèå îò êëàâèàòóðû |
603 | mov [dragk],0 ;çàêàí÷èâàåì âûäåëåíèå îò êëàâèàòóðû |
605 | @@: |
604 | @@: |
606 | cmp ah,71 ;180 ;Home |
605 | cmp ah,71 ;180 ;Home |
607 | jne @f |
606 | jne @f |
608 | push dx |
607 | push dx |
609 | call draw_cursor_sumb |
608 | call draw_cursor_sumb |
610 | call CurMoveX_FirstChar |
609 | call CurMoveX_FirstChar |
611 | cmp dl,8 |
610 | cmp dl,8 |
612 | jne .no_red_4 |
611 | jne .no_red_4 |
613 | call OnInitialUpdate |
612 | call OnInitialUpdate |
614 | call draw_main_win |
613 | call draw_main_win |
615 | pop dx |
614 | pop dx |
616 | jmp @f |
615 | jmp @f |
617 | .no_red_4: |
616 | .no_red_4: |
618 | call draw_main_cursor |
617 | call draw_main_cursor |
619 | pop dx |
618 | pop dx |
620 | mov [dragk],0 ;çàêàí÷èâàåì âûäåëåíèå îò êëàâèàòóðû |
619 | mov [dragk],0 ;çàêàí÷èâàåì âûäåëåíèå îò êëàâèàòóðû |
621 | @@: |
620 | @@: |
622 | cmp ah,79 ;181 ;End |
621 | cmp ah,79 ;181 ;End |
623 | jne @f |
622 | jne @f |
624 | push dx |
623 | push dx |
625 | call draw_cursor_sumb |
624 | call draw_cursor_sumb |
626 | call CurMoveX_LastChar |
625 | call CurMoveX_LastChar |
627 | cmp dl,8 |
626 | cmp dl,8 |
628 | jne .no_red_5 |
627 | jne .no_red_5 |
629 | call OnInitialUpdate |
628 | call OnInitialUpdate |
630 | call draw_main_win |
629 | call draw_main_win |
631 | pop dx |
630 | pop dx |
632 | jmp @f |
631 | jmp @f |
633 | .no_red_5: |
632 | .no_red_5: |
634 | call draw_main_cursor |
633 | call draw_main_cursor |
635 | pop dx |
634 | pop dx |
636 | mov [dragk],0 ;çàêàí÷èâàåì âûäåëåíèå îò êëàâèàòóðû |
635 | mov [dragk],0 ;çàêàí÷èâàåì âûäåëåíèå îò êëàâèàòóðû |
637 | @@: |
636 | @@: |
638 | cmp ah,73 ;184 ;PageUp |
637 | cmp ah,73 ;184 ;PageUp |
639 | jne @f |
638 | jne @f |
640 | push dx |
639 | push dx |
641 | call CurMovePageUp |
640 | call CurMovePageUp |
642 | cmp dl,0 |
641 | cmp dl,0 |
643 | pop dx |
642 | pop dx |
644 | je @f |
643 | je @f |
645 | call OnInitialUpdate |
644 | call OnInitialUpdate |
646 | call draw_main_win |
645 | call draw_main_win |
647 | @@: |
646 | @@: |
648 | cmp ah,81 ;183 ;PageDown |
647 | cmp ah,81 ;183 ;PageDown |
649 | jne @f |
648 | jne @f |
650 | push dx |
649 | push dx |
651 | call CurMovePageDown |
650 | call CurMovePageDown |
652 | cmp dl,0 |
651 | cmp dl,0 |
653 | pop dx |
652 | pop dx |
654 | je @f |
653 | je @f |
655 | call OnInitialUpdate |
654 | call OnInitialUpdate |
656 | call draw_main_win |
655 | call draw_main_win |
657 | mov [dragk],0 ;çàêàí÷èâàåì âûäåëåíèå îò êëàâèàòóðû |
656 | mov [dragk],0 ;çàêàí÷èâàåì âûäåëåíèå îò êëàâèàòóðû |
658 | @@: |
657 | @@: |
659 | ;------------------------------------------------- |
658 | ;------------------------------------------------- |
660 | cmp [keyUpr],0 |
659 | cmp [keyUpr],0 |
661 | jne still |
660 | jne still |
662 | .key_MoveCur: |
661 | .key_MoveCur: |
663 | 662 | ||
664 | cmp ah,69 ;[Pause Break] |
663 | cmp ah,69 ;[Pause Break] |
665 | je still |
664 | je still |
666 | cmp ah,120 ;[Fn] |
665 | cmp ah,120 ;[Fn] |
667 | je still |
666 | je still |
668 | cmp ah,0x80 ;if key up |
667 | cmp ah,0x80 ;if key up |
669 | ja still |
668 | ja still |
670 | call KeyConvertToASCII |
669 | call KeyConvertToASCII |
671 | 670 | ||
672 | ;mov [dragk],0 ;çàêàí÷èâàåì âûäåëåíèå îò êëàâèàòóðû |
671 | ;mov [dragk],0 ;çàêàí÷èâàåì âûäåëåíèå îò êëàâèàòóðû |
673 | 672 | ||
674 | push ebx |
673 | push ebx |
675 | xor ebx,ebx |
674 | xor ebx,ebx |
676 | mov bl,ah |
675 | mov bl,ah |
677 | add ebx,EvChar ;add char to text |
676 | add ebx,EvChar ;add char to text |
678 | cmp byte [ebx],1 |
677 | cmp byte [ebx],1 |
679 | jne @f |
678 | jne @f |
680 | push esi edi |
679 | push esi edi |
681 | call SetUndo |
680 | call SetUndo |
682 | mov bx,0x0101 |
681 | mov bx,0x0101 |
683 | call SelTextDel |
682 | call SelTextDel |
684 | mov esi,1 |
683 | mov esi,1 |
685 | mov byte [key_new],ah |
684 | mov byte [key_new],ah |
686 | mov edi,dword key_new |
685 | mov edi,dword key_new |
687 | cmp [curMod],1 |
686 | cmp [curMod],1 |
688 | je .no_ins_mod |
687 | je .no_ins_mod |
689 | call TextDel |
688 | call TextDel |
690 | xor bl,1 |
689 | xor bl,1 |
691 | .no_ins_mod: |
690 | .no_ins_mod: |
692 | call TextAdd |
691 | call TextAdd |
693 | call draw_but_toolbar |
692 | call draw_but_toolbar |
694 | cmp byte [key_new],13 |
693 | cmp byte [key_new],13 |
695 | jne .dr_m_win |
694 | jne .dr_m_win |
696 | call draw_main_win |
695 | call draw_main_win |
697 | jmp .dr_cur_l |
696 | jmp .dr_cur_l |
698 | .dr_m_win: |
697 | .dr_m_win: |
699 | call draw_cur_line |
698 | call draw_cur_line |
700 | .dr_cur_l: |
699 | .dr_cur_l: |
701 | pop edi esi |
700 | pop edi esi |
702 | @@: |
701 | @@: |
703 | pop ebx |
702 | pop ebx |
704 | 703 | ||
705 | cmp ah,8 ;[<-] |
704 | cmp ah,8 ;[<-] |
706 | jne @f |
705 | jne @f |
707 | push ax bx |
706 | push ax bx |
708 | call SetUndo |
707 | call SetUndo |
709 | 708 | ||
710 | mov bx,0x0001 |
709 | mov bx,0x0001 |
711 | call SelTextDel |
710 | call SelTextDel |
712 | cmp al,1 |
711 | cmp al,1 |
713 | je .del_one_b |
712 | je .del_one_b |
714 | call TextDel |
713 | call TextDel |
715 | .del_one_b: |
714 | .del_one_b: |
716 | call draw_but_toolbar |
715 | call draw_but_toolbar |
717 | call draw_main_win |
716 | call draw_main_win |
718 | pop bx ax |
717 | pop bx ax |
719 | @@: |
718 | @@: |
720 | 719 | ||
721 | cmp ah,182 ;Delete |
720 | cmp ah,182 ;Delete |
722 | jne @f |
721 | jne @f |
723 | push ax bx |
722 | push ax bx |
724 | call SetUndo |
723 | call SetUndo |
725 | 724 | ||
726 | mov bx,0x0101 |
725 | mov bx,0x0101 |
727 | call SelTextDel |
726 | call SelTextDel |
728 | cmp al,1 |
727 | cmp al,1 |
729 | je .del_one_d |
728 | je .del_one_d |
730 | call TextDel |
729 | call TextDel |
731 | .del_one_d: |
730 | .del_one_d: |
732 | call draw_but_toolbar |
731 | call draw_but_toolbar |
733 | call draw_main_win |
732 | call draw_main_win |
734 | pop bx ax |
733 | pop bx ax |
735 | @@: |
734 | @@: |
736 | 735 | ||
737 | cmp ah,185 ;Ins |
736 | cmp ah,185 ;Ins |
738 | jne @f |
737 | jne @f |
739 | call draw_cursor_sumb |
738 | call draw_cursor_sumb |
740 | xor [curMod],1 |
739 | xor [curMod],1 |
741 | call draw_main_cursor |
740 | call draw_main_cursor |
742 | @@: |
741 | @@: |
743 | 742 | ||
744 | jmp still |
743 | jmp still |
745 | 744 | ||
746 | button: |
745 | button: |
747 | ; cmp [menu_active],1 ;åñëè íàæàëè ìåíþ, òî ñíà÷àëà ðåàêöèÿ íà ìåíþ |
746 | ; cmp [menu_active],1 ;åñëè íàæàëè ìåíþ, òî ñíà÷àëà ðåàêöèÿ íà ìåíþ |
748 | ; jne @f ;mouse.menu_bar_1 |
747 | ; jne @f ;mouse.menu_bar_1 |
749 | ; mov [menu_active],0 |
748 | ; mov [menu_active],0 |
750 | ; jmp still |
749 | ; jmp still |
751 | ; @@: |
750 | ; @@: |
752 | 751 | ||
753 | mcall 17 ;ïîëó÷èòü êîä íàæàòîé êíîïêè |
752 | mcall 17 ;ïîëó÷èòü êîä íàæàòîé êíîïêè |
754 | cmp ah,3 |
753 | cmp ah,3 |
755 | jne @f |
754 | jne @f |
756 | call but_NewFile |
755 | call but_NewFile |
757 | @@: |
756 | @@: |
758 | cmp ah,4 |
757 | cmp ah,4 |
759 | jne @f |
758 | jne @f |
760 | call but_OpenFile |
759 | call but_OpenFile |
761 | @@: |
760 | @@: |
762 | cmp ah,5 |
761 | cmp ah,5 |
763 | jne @f |
762 | jne @f |
764 | call but_SaveFile |
763 | call but_SaveFile |
765 | @@: |
764 | @@: |
766 | cmp ah,6 |
765 | cmp ah,6 |
767 | jz but_select_word |
766 | jz but_select_word |
768 | cmp ah,7 |
767 | cmp ah,7 |
769 | jz but_cut |
768 | jz but_cut |
770 | cmp ah,8 |
769 | cmp ah,8 |
771 | jne @f |
770 | jne @f |
772 | call but_Copy |
771 | call but_Copy |
773 | @@: |
772 | @@: |
774 | cmp ah,9 |
773 | cmp ah,9 |
775 | jz but_paste |
774 | jz but_paste |
776 | cmp ah,10 |
775 | cmp ah,10 |
777 | jz but_find |
776 | jz but_find |
778 | cmp ah,11 |
777 | cmp ah,11 |
779 | jz but_replace |
778 | jz but_replace |
780 | cmp ah,12 |
779 | cmp ah,12 |
781 | jz but_find_key_w |
780 | jz but_find_key_w |
782 | cmp ah,13 |
781 | cmp ah,13 |
783 | jz but_sumb_upper |
782 | jz but_sumb_upper |
784 | cmp ah,14 |
783 | cmp ah,14 |
785 | jz but_sumb_lover |
784 | jz but_sumb_lover |
786 | cmp ah,15 |
785 | cmp ah,15 |
787 | jz but_reverse |
786 | jz but_reverse |
788 | cmp ah,16 |
787 | cmp ah,16 |
789 | jz but_undo |
788 | jz but_undo |
790 | cmp ah,17 |
789 | cmp ah,17 |
791 | jz but_redo |
790 | jz but_redo |
792 | cmp ah,18 |
791 | cmp ah,18 |
793 | jz but_sumb_invis |
792 | jz but_sumb_invis |
794 | cmp ah,19 |
793 | cmp ah,19 |
795 | jz but_k_words_show |
794 | jz but_k_words_show |
796 | cmp ah,20 |
795 | cmp ah,20 |
797 | jz but_synt_show |
796 | jz but_synt_show |
798 | 797 | ||
799 | cmp ah,200 |
798 | cmp ah,200 |
800 | jne @f |
799 | jne @f |
801 | call but_OpenSyntax |
800 | call but_OpenSyntax |
802 | @@: |
801 | @@: |
803 | cmp ah,201 |
802 | cmp ah,201 |
804 | jne @f |
803 | jne @f |
805 | call but_FindText |
804 | call but_FindText |
806 | @@: |
805 | @@: |
807 | 806 | ||
808 | cmp ah,1 |
807 | cmp ah,1 |
809 | jne still |
808 | jne still |
810 | .exit: |
809 | .exit: |
811 | ;push eax |
810 | ;push eax |
812 | call CanSave |
811 | call CanSave |
813 | cmp al,1 |
812 | cmp al,1 |
814 | jne @f |
813 | jne @f |
815 | push thread |
814 | push thread |
816 | push msgbox_8 |
815 | push msgbox_8 |
817 | call [mb_create] ;message: save changes in file? |
816 | call [mb_create] ;message: save changes in file? |
818 | jmp still |
817 | jmp still |
819 | @@: |
818 | @@: |
820 | mov ecx,[tex] |
819 | mov ecx,[tex] |
821 | call mem_Free |
820 | call mem_Free |
822 | mov ecx,[bmp_icon] |
821 | mov ecx,[bmp_icon] |
823 | call mem_Free |
822 | call mem_Free |
824 | mov ecx,[options_file] |
823 | mov ecx,[options_file] |
825 | call mem_Free |
824 | call mem_Free |
826 | push dword tree1 |
825 | push dword tree1 |
827 | call dword[tl_data_clear] |
826 | call dword[tl_data_clear] |
828 | mcall -1 ;âûõîä èç ïðîãðàììû |
827 | mcall -1 ;âûõîä èç ïðîãðàììû |
829 | 828 | ||
830 | 829 | ||
831 | 830 | ||
832 | txtErrOpen db '¥ ©¤¥ ä ©«, ¯à®¢¥àì⥠¯à ¢¨«ì®áâì ¨¬¥¨',0 |
831 | txtErrOpen db '¥ ©¤¥ ä ©«, ¯à®¢¥àì⥠¯à ¢¨«ì®áâì ¨¬¥¨',0 |
833 | txtErrIni0 db '¥ ®âªàë«áï ä ©« á ¨ª®ª ¬¨',0 |
832 | txtErrIni0 db '¥ ®âªàë«áï ä ©« á ¨ª®ª ¬¨',0 |
834 | err_ini0 db 0 |
833 | err_ini0 db 0 |
835 | 834 | ||
836 | edit1 edit_box 250, 220, 5, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 300, buf_cmd_lin, mouse_dd, 0 |
835 | edit1 edit_box 250, 220, 5, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 300, buf_cmd_lin, mouse_dd, 0 |
837 | edit2 edit_box TE_PANEL_WIDTH-1, 0, 20, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 300, buf_find, mouse_dd, 0 |
836 | edit2 edit_box TE_PANEL_WIDTH-1, 0, 20, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 300, buf_find, mouse_dd, 0 |
838 | 837 | ||
839 | buf_cmd_lin db 302 dup(0) |
838 | buf_cmd_lin db 302 dup(0) |
840 | buf_find db 302 dup(0) |
839 | buf_find db 302 dup(0) |
841 | 840 | ||
842 | if lang eq ru |
841 | if lang eq ru |
843 | err_message_found_lib0 db '§¢¨¨â¥ ¥ 㤠«®áì ©â¨ ¡¨¡«¨®â¥ªã box_lib.obj',0 |
842 | err_message_found_lib0 db '§¢¨¨â¥ ¥ 㤠«®áì ©â¨ ¡¨¡«¨®â¥ªã box_lib.obj',0 |
844 | head_f_i0: |
843 | head_f_i0: |
845 | head_f_l0 db '¨á⥬ ï ®è¨¡ª ',0 |
844 | head_f_l0 db '¨á⥬ ï ®è¨¡ª ',0 |
846 | err_message_import0 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ box_lib.obj',0 |
845 | err_message_import0 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ box_lib.obj',0 |
847 | err_message_found_lib1 db '§¢¨¨â¥ ¥ 㤠«®áì ©â¨ ¡¨¡«¨®â¥ªã msgbox.obj',0 |
846 | err_message_found_lib1 db '§¢¨¨â¥ ¥ 㤠«®áì ©â¨ ¡¨¡«¨®â¥ªã msgbox.obj',0 |
848 | err_message_import1 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ msgbox.obj',0 |
847 | err_message_import1 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ msgbox.obj',0 |
849 | else |
848 | else |
850 | err_message_found_lib0 db 'Sorry I cannot found library box_lib.obj',0 |
849 | err_message_found_lib0 db 'Sorry I cannot found library box_lib.obj',0 |
851 | head_f_i0: |
850 | head_f_i0: |
852 | head_f_l0 db 'System error',0 |
851 | head_f_l0 db 'System error',0 |
853 | err_message_import0 db 'Error on load import library box_lib.obj',0 |
852 | err_message_import0 db 'Error on load import library box_lib.obj',0 |
854 | err_message_found_lib1 db 'Sorry I cannot found library msgbox.obj',0 |
853 | err_message_found_lib1 db 'Sorry I cannot found library msgbox.obj',0 |
855 | ;head_f_i1: |
854 | ;head_f_i1: |
856 | ;head_f_l1 db 'System error',0 |
855 | ;head_f_l1 db 'System error',0 |
857 | err_message_import1 db 'Error on load import library msgbox.obj',0 |
856 | err_message_import1 db 'Error on load import library msgbox.obj',0 |
858 | end if |
857 | end if |
859 | 858 | ||
860 | ;library structures |
859 | ;library structures |
861 | l_libs_start: |
860 | l_libs_start: |
862 | lib0 l_libs boxlib_name, sys_path, file_name, system_dir0, err_message_found_lib0, head_f_l0, myimport,err_message_import0, head_f_i0 |
861 | lib0 l_libs boxlib_name, sys_path, file_name, system_dir0, err_message_found_lib0, head_f_l0, myimport,err_message_import0, head_f_i0 |
863 | lib1 l_libs msgbox_name, sys_path, file_name, system_dir1, err_message_found_lib1, head_f_l0, msgbox_lib_import, err_message_import1, head_f_i0 |
862 | lib1 l_libs msgbox_name, sys_path, file_name, system_dir1, err_message_found_lib1, head_f_l0, msgbox_lib_import, err_message_import1, head_f_i0 |
864 | load_lib_end: |
863 | load_lib_end: |
865 | 864 | ||
866 | 865 | ||
867 | i_end: |
866 | i_end: |
868 | align 16 |
867 | align 16 |
869 | procinfo process_information |
868 | procinfo process_information |
870 | thread: |
869 | thread: |
871 | rb 1024 |
870 | rb 1024 |
872 | stacktop: |
871 | stacktop: |
873 | sys_path: |
872 | sys_path: |
874 | rb 4096 |
873 | rb 4096 |
875 | file_name: |
874 | file_name: |
876 | rb 4096 |
875 | rb 4096 |
877 | file_name_rez: |
876 | file_name_rez: |
878 | rb 4096 |
877 | rb 4096 |
879 | file_info: |
878 | file_info: |
880 | rb 40 |
879 | rb 40 |
881 | mem:-] |
880 | mem:-] |
882 | >--y--> |
881 | >--y--> |