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