Subversion Repositories Kolibri OS

Rev

Rev 7573 | Rev 7576 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1457 IgorA 1
struct symbol
2125 IgorA 2
	c db ?    ; +0 символ
3
	col db ?  ; +1 цвет
4
	perv dd ? ; +2
5
	next dd ? ; +6 указатели
6
	tc dd ?   ;+10 врем. создания
7
	td dd ?   ;+14 врем. удаления
1457 IgorA 8
ends
9
 
7573 IgorA 10
ID_BUT_0 equ 3 ;минимальный ID кнопки на панели
11
 
12
ID_BUT_NEW equ 3
13
ID_BUT_OPEN equ 4
14
ID_BUT_SAVE equ 5
15
ID_BUT_SAVE_AS equ 6
16
ID_BUT_SELECT equ 7
17
ID_BUT_CUT equ 8
18
ID_BUT_COPY equ 9
19
ID_BUT_PASTE equ 10
20
ID_BUT_FIND equ 11
21
ID_BUT_REPLACE equ 12
22
ID_BUT_KEY_WORDS equ 13
23
ID_BUT_UPPER equ 14
24
ID_BUT_LOWER equ 15
25
ID_BUT_REVERSE equ 16
26
ID_BUT_UNDO equ 17
27
ID_BUT_REDO equ 18
28
ID_BUT_INVISIBLE equ 19
29
ID_BUT_SYNTAX_LIST equ 20
30
ID_BUT_SYNTAX_MODE equ 21
31
ID_BUT_CONVERT_1251_866 equ 22
32
ID_BUT_CONVERT_866_1251 equ 23
33
 
34
macro ini_panel b_key,b_id
35
{
36
	stdcall [ini_get_int],file_name,ini_sec_window,b_key,1
37
	mov byte[panel_but+b_id-ID_BUT_0],al
38
}
39
 
1457 IgorA 40
bmp_icon dd 0
41
 
7573 IgorA 42
align 16
43
button:
44
	mcall SF_GET_BUTTON
45
	cmp ah,ID_BUT_NEW
46
	jne @f
47
		call ted_but_new_file
48
		jmp still
49
	@@:
50
	cmp ah,ID_BUT_OPEN
51
	jne @f
52
		call ted_but_open_file
53
		jmp still
54
	@@:
55
	cmp ah,ID_BUT_SAVE
56
	jne @f
57
		xor eax,eax
58
		call ted_but_save_file ;сохранение без диалога
59
		jmp still
60
	@@:
61
	cmp ah,ID_BUT_SAVE_AS
62
	jne @f
63
		xor eax,eax
64
		inc eax
65
		call ted_but_save_file ;сохранение с диалогом
66
		jmp still
67
	@@:
68
	cmp ah,ID_BUT_SELECT
69
	jne @f
70
		stdcall [ted_but_select_word], tedit0
71
		jmp still
72
	@@:
73
	cmp ah,ID_BUT_CUT
74
	jne @f
75
		stdcall [ted_but_cut], tedit0
76
		jmp still
77
	@@:
78
	cmp ah,ID_BUT_COPY
79
	jne @f
80
		stdcall [ted_but_copy], tedit0
81
		jmp still
82
	@@:
83
	cmp ah,ID_BUT_PASTE
84
	jne @f
85
		stdcall [ted_but_paste], tedit0
86
		jmp still
87
	@@:
88
	cmp ah,ID_BUT_FIND
89
	jne @f
90
		call ted_but_find
91
		jmp still
92
	@@:
93
	cmp ah,ID_BUT_REPLACE
94
	jne @f
95
		call but_replace
96
		jmp still
97
	@@:
98
	cmp ah,ID_BUT_KEY_WORDS
99
	jne @f
100
		call but_find_key_w
101
		jmp still
102
	@@:
103
	cmp ah,ID_BUT_UPPER
104
	jne @f
105
		stdcall [ted_but_sumb_upper], tedit0
106
		jmp still
107
	@@:
108
	cmp ah,ID_BUT_LOWER
109
	jne @f
110
		stdcall [ted_but_sumb_lover], tedit0
111
		jmp still
112
	@@:
113
	cmp ah,ID_BUT_REVERSE
114
	jne @f
115
		stdcall [ted_but_reverse], tedit0
116
		jmp still
117
	@@:
118
	cmp ah,ID_BUT_UNDO
119
	jne @f
120
		stdcall [ted_but_undo], tedit0
121
		jmp still
122
	@@:
123
	cmp ah,ID_BUT_REDO
124
	jne @f
125
		stdcall [ted_but_redo], tedit0
126
		jmp still
127
	@@:
128
	cmp ah,ID_BUT_INVISIBLE
129
	jne @f
130
		stdcall but_sumb_invis, tedit0
131
		jmp still
132
	@@:
133
	cmp ah,ID_BUT_SYNTAX_LIST
134
	jne @f
135
		stdcall but_use_syntax, tedit0
136
		jmp still
137
	@@:
138
	cmp ah,ID_BUT_SYNTAX_MODE
139
	jne @f
140
		stdcall but_choose_syntax, tedit0
141
		jmp still
142
	@@:
143
	cmp ah,ID_BUT_CONVERT_1251_866
144
	jne @f
145
		stdcall [ted_but_convert_by_table],tedit0,tbl_1251_866
146
		jmp still
147
	@@:
148
	cmp ah,ID_BUT_CONVERT_866_1251
149
	jne @f
150
		stdcall [ted_but_convert_by_table],tedit0,tbl_866_1251
151
		jmp still
152
	@@:
1457 IgorA 153
 
7573 IgorA 154
	cmp ah,200
155
	jne @f
156
		stdcall ted_but_open_syntax, tedit0
157
		jmp still
158
	@@:
159
	cmp ah,201
160
	jne @f
161
		stdcall [ted_but_find_next], tedit0
162
		jmp still
163
	@@:
164
 
165
	cmp ah,1
7575 IgorA 166
	jne @f
167
		call ted_Exit
168
		jmp still
169
	@@:
7573 IgorA 170
 
171
	cmp ah,199
7575 IgorA 172
	jne still
173
		call ted_Exit
7573 IgorA 174
	jmp still
7575 IgorA 175
 
176
align 4
177
ted_Exit:
7573 IgorA 178
	cmp dword[wnd_k_words_run],0
179
	je @f
180
		push ebx ecx
181
		mcall SF_SYSTEM, SSF_TERMINATE_THREAD_ID,[wnd_k_words_run]
182
		pop ecx ebx
7575 IgorA 183
		mov dword[wnd_k_words_run],0
184
		;test eax,eax
7573 IgorA 185
	@@:
186
	cmp dword[exit_code],1
187
	je @f
188
	stdcall [ted_can_save], tedit0
189
	cmp al,1
190
	jne @f
191
		stdcall [mb_create],msgbox_2,thread ;message: save buf in file?
192
		stdcall [mb_setfunctions],msgbox_2E_funct
7575 IgorA 193
		ret
7573 IgorA 194
	@@:
195
	stdcall mem.Free,[bmp_icon]
196
	cmp dword[unpac_mem],0
197
	je @f
198
		stdcall mem.Free,[unpac_mem]
199
	@@:
200
	stdcall [ted_delete], tedit0
201
	stdcall [tl_data_clear], tree1
202
	mcall SF_TERMINATE_PROCESS ;выход из программы
7575 IgorA 203
	;ret
7573 IgorA 204
 
1457 IgorA 205
;input:
206
; al = код ошибки
1456 IgorA 207
align 4
1457 IgorA 208
ted_on_init_synt_err:
2855 IgorA 209
	mov byte[msgbox_3.err],'0'
210
	add byte[msgbox_3.err],al
1457 IgorA 211
	stdcall [mb_create],msgbox_3,thread ;message: Can-t open color options file!
212
	ret
213
 
214
align 4
215
ted_but_new_file:
4991 IgorA 216
	push eax ebx
217
	stdcall [ted_can_save], tedit0
218
	cmp al,1
219
	jne @f
220
		stdcall [mb_create],msgbox_2,thread ;message: save changes in file?
221
		stdcall [mb_setfunctions],msgbox_2N_funct
222
		jmp .ret_f
223
	@@:
224
	call On_NewFile
225
	.ret_f:
5643 leency 226
		mov byte[openfile_path],0
6086 IgorA 227
		mcall SF_SET_CAPTION,1,hed
4991 IgorA 228
	pop ebx eax
229
	ret
1338 IgorA 230
 
1456 IgorA 231
align 4
1338 IgorA 232
On_NewFile:
4991 IgorA 233
	stdcall [ted_clear], tedit0,1
234
	call draw_but_toolbar
235
	stdcall [ted_draw], tedit0
7570 IgorA 236
	mov dword[openfile_path],0
4991 IgorA 237
	ret
1338 IgorA 238
 
1456 IgorA 239
align 4
1338 IgorA 240
On_SaveAndNewFile:
4991 IgorA 241
	push edi
242
	mov edi, tedit0
1456 IgorA 243
 
4991 IgorA 244
	call ted_but_save_file
245
	cmp ted_err_save,0
246
	jne @f
247
		call On_NewFile
248
	@@:
249
	pop edi
250
	ret
1338 IgorA 251
 
4991 IgorA 252
align 4
253
On_SaveAndOpenFile:
254
	push edi
255
	mov edi, tedit0
256
 
257
	call ted_but_save_file
258
	cmp ted_err_save,0
259
	jne @f
260
		call ted_but_open_file.no_msg
261
	@@:
262
	pop edi
263
	ret
264
 
265
align 4
266
On_SaveAndExit:
267
	push edi
268
	mov edi, tedit0
269
 
270
	call ted_but_save_file
271
	cmp ted_err_save,0
272
	jne @f
273
		mov dword[exit_code],1
274
	@@:
275
	pop edi
276
	ret
277
 
278
align 4
279
On_Exit:
280
	mov dword[exit_code],1
281
	ret
282
 
1457 IgorA 283
;description:
2102 IgorA 284
; функция открытия файла без окна сообщения
1456 IgorA 285
align 4
7570 IgorA 286
proc but_no_msg_OpenFile uses eax ebx esi
4308 IgorA 287
	stdcall [ted_open_file], tedit0,run_file_70,openfile_path
1457 IgorA 288
	call ted_messages_after_open_file
7570 IgorA 289
 
290
	mov esi,openfile_path
291
	call strlen
292
	add esi,eax
293
	@@: ;цикл для поиска начала имени файла
294
		dec esi
295
		cmp byte[esi],'/'
296
		je @f
297
		cmp byte[esi],0x5c ;'\'
298
		je @f
299
		cmp esi,openfile_path
300
		jg @b
301
	@@:
302
	inc esi
303
	call strlen
304
	cmp eax,255
305
	jle @f
306
		mov eax,255
307
	@@:
308
	inc eax ;для 0 в конце строки
309
	stdcall mem_cpy, filename_area,esi,eax ;копируем имя файла в диалог сохранения
1457 IgorA 310
	ret
7570 IgorA 311
endp
1456 IgorA 312
 
1457 IgorA 313
;description:
314
; функция открытия файла с возможным окном сообщения (о возможности отменить открытие)
1456 IgorA 315
align 4
1457 IgorA 316
ted_but_open_file:
1467 IgorA 317
	pushad
318
 
1457 IgorA 319
	stdcall [ted_can_save], tedit0
320
	cmp al,1
321
	jne @f
4991 IgorA 322
		stdcall [mb_create],msgbox_2,thread ;message: save changes in file?
323
		stdcall [mb_setfunctions],msgbox_2O_funct
1457 IgorA 324
		jmp .ret_f
3366 IgorA 325
	.no_msg: ;метка для вызова функции через кнопку в сообщении msgbox_5
326
		pushad
1457 IgorA 327
	@@:
1467 IgorA 328
 
1468 IgorA 329
	copy_path open_dialog_name,communication_area_default_path,file_name,0
1467 IgorA 330
	mov [OpenDialog_data.type],0
1592 IgorA 331
	stdcall [OpenDialog_Start],OpenDialog_data
1467 IgorA 332
	cmp [OpenDialog_data.status],2
333
	jne @f
1468 IgorA 334
		stdcall mem_spac, msgbox_9.fdp,100
335
		mov esi,file_name
336
		call strlen
337
		cmp eax,100
338
		jle .no_crop
339
			mov eax,100
340
		.no_crop:
7570 IgorA 341
		stdcall mem_cpy, msgbox_9.fdp,esi,eax
1467 IgorA 342
		stdcall [mb_create],msgbox_9,thread ;message: error run 'open file dialog'
343
		jmp .ret_f
344
	@@:
2817 IgorA 345
	cmp [OpenDialog_data.status],1
2632 IgorA 346
	jne .ret_f
6086 IgorA 347
		stdcall auto_open_syntax,[OpenDialog_data.openfile_path]
4308 IgorA 348
		stdcall [ted_open_file], tedit0,run_file_70,openfile_path
2817 IgorA 349
		call ted_messages_after_open_file
1457 IgorA 350
	.ret_f:
1467 IgorA 351
	popad
1457 IgorA 352
	ret
1338 IgorA 353
 
6086 IgorA 354
proc auto_open_syntax, of_path:dword
355
pushad
356
	;ищем есть ли файл подсветки для открываемого текстового файла
357
	mov esi,[of_path]
358
	call strlen
359
	mov edx,[of_path]
360
	add edx,eax
361
	.f_beg:
362
	cmp byte[edx],'.'
363
	je .found
364
		dec edx
365
		cmp edx,[of_path]
366
		jg .f_beg
367
	.found:
368
	inc edx ;edx - указатель на расширение открытого файла
369
 
370
	mov ebx,synt_auto_open
371
	.cycle_0:
372
		add ebx,32
373
		stdcall strcmp,ebx,edx ;сравниваем расширение открытого файла со значениями открытыми с ini файла
374
		test eax,eax
375
		jz .ok
376
		add ebx,32
377
		cmp byte[ebx],0
378
		jne .cycle_0
379
	jmp .end_0
380
	.ok: ;открытие файла подсветки в зависимости от найденного расширения
381
		sub ebx,32
382
		stdcall open_unpac_synt_file,ebx
383
	.end_0:
384
popad
385
	ret
386
endp
387
 
7571 IgorA 388
;input:
389
; eax если равен: 0 - сохранение без диалога, 1 - сохранение с диалогом
2102 IgorA 390
;description:
7570 IgorA 391
; функция сохранения файла
4308 IgorA 392
align 4
393
proc ted_but_save_file
7571 IgorA 394
	or eax,eax
395
	jnz .init_dlg
396
		; сохраняем без вызова диалогового окна
397
		cmp byte[openfile_path],0
398
		jne @f
7570 IgorA 399
	.init_dlg:
7571 IgorA 400
		; вызов диалогового окна для сохранения файла
401
		copy_path open_dialog_name,communication_area_default_path,file_name,0
402
		mov [OpenDialog_data.type],1
403
		stdcall [OpenDialog_Start],OpenDialog_data
404
		cmp [OpenDialog_data.status],1 ;if status==1 then save
405
		jne .end_save
7570 IgorA 406
	@@:
5918 IgorA 407
		stdcall [ted_save_file],tedit0,run_file_70,openfile_path
7570 IgorA 408
	.end_save:
4308 IgorA 409
	ret
410
endp
411
 
412
;description:
2102 IgorA 413
; копирование памяти
1468 IgorA 414
align 4
7570 IgorA 415
proc mem_cpy uses ecx esi edi, destination:dword, source:dword, len:dword
5918 IgorA 416
	cld
7571 IgorA 417
	mov esi,[source]
418
	mov edi,[destination]
419
	mov ecx,[len]
5918 IgorA 420
	rep movsb
421
	ret
1468 IgorA 422
endp
423
 
2102 IgorA 424
;description:
425
; заполнение памяти пробелами
1468 IgorA 426
align 4
5918 IgorA 427
proc mem_spac uses eax ecx edi, mem:dword, len:dword
428
	cld
429
	mov al,' '
7571 IgorA 430
	mov edi,[mem]
431
	mov ecx,[len]
5918 IgorA 432
	repne stosb
433
	ret
1468 IgorA 434
endp
435
 
1457 IgorA 436
;input:
437
; eax = код ошибки
438
; ebx = колличество прочитанных байт
1456 IgorA 439
align 4
1457 IgorA 440
ted_messages_after_open_file:
2847 IgorA 441
	push ecx edi
1457 IgorA 442
	cmp eax,0
443
	je @f
444
		cmp ax,10
445
		jl .zifra_0_9
446
			mov al,'?'
447
			sub ax,48
448
		.zifra_0_9:
449
		add ax,48
1456 IgorA 450
 
1457 IgorA 451
		mov byte[msgbox_4.err],al
452
		stdcall [mb_create],msgbox_4,thread ;message: Can-t open text file!
453
		jmp .ret_f
454
	@@:
455
	cmp ebx,-1
456
	je .ret_f
457
		;if open file
2847 IgorA 458
		mov edi,tedit0
1457 IgorA 459
		mov ecx,ted_max_chars
460
		sub ecx,2 ;ecx = максимальное число байт, для которых была выделена память
461
		cmp ebx,ecx
462
		jl .ret_f
463
			stdcall [mb_create],msgbox_1,thread
464
	.ret_f:
2847 IgorA 465
	pop edi ecx
1457 IgorA 466
	ret
1338 IgorA 467
 
1456 IgorA 468
align 4
1457 IgorA 469
ted_save_err_msg:
470
	mov byte[msgbox_6.err],al
471
	stdcall [mb_create],msgbox_6,thread ;message: Can-t save text file!
472
	ret
1456 IgorA 473
 
2102 IgorA 474
;description:
475
; функция нажатия на кнопку [Применить] в панели синтаксиса
1456 IgorA 476
align 4
2707 IgorA 477
proc ted_but_open_syntax uses eax ebx ecx edi, edit:dword
478
	mov edi,dword[edit]
479
	cmp ted_panel_id,TED_PANEL_SYNTAX
480
	jne @f
481
		stdcall dword[tl_node_get_data], tree1
5911 IgorA 482
		mov [fn_col_option],eax
6086 IgorA 483
		stdcall open_unpac_synt_file,eax
2708 IgorA 484
		cmp ebx,-1
485
		je @f
486
 
2707 IgorA 487
		call [ted_text_colored]
488
		stdcall [ted_draw],edi
489
	@@:
490
	ret
1456 IgorA 491
endp
1338 IgorA 492
 
2708 IgorA 493
;открытие и распаковка файла подсветки синтаксиса
2855 IgorA 494
;input:
6086 IgorA 495
; f_name - указатель на имя открываемого файла синтаксиса (без пути и папки info)
2708 IgorA 496
;output:
497
; ebx - число прочитанных байт из файла
2855 IgorA 498
; ecx - разрушается
2708 IgorA 499
align 4
6086 IgorA 500
proc open_unpac_synt_file uses eax edi esi, f_name:dword
501
	mov ebx,[f_name]
2855 IgorA 502
	mov edi,last_open_synt_file
503
	stdcall strcmp,ebx,edi ;сравниваем имя подключенного файла с подключенным ранее файлом
504
	test eax,eax
505
	jz @f
506
 
507
	;копируем имя подключенного файла (для избежания повторных подключений)
508
	mov esi,ebx
6086 IgorA 509
	mov ecx,32/4
2855 IgorA 510
	cld
6086 IgorA 511
	rep movsd
2855 IgorA 512
 
4308 IgorA 513
	copy_path ebx,fn_syntax_dir,syntax_path,0
514
	copy_path syntax_path,sys_path,file_name,0
2708 IgorA 515
	mov edi, tedit0
6086 IgorA 516
	mov [run_file_70.Function], SSF_READ_FILE
2708 IgorA 517
	mov [run_file_70.Position], 0
518
	mov [run_file_70.Flags], 0
519
	mov ecx, ted_syntax_file_size
520
	mov dword[run_file_70.Count], ecx
521
	m2m dword[run_file_70.Buffer], ted_syntax_file
522
	mov byte[run_file_70+20], 0
523
	mov [run_file_70.FileName], file_name
6086 IgorA 524
	mcall SF_FILE, run_file_70
2708 IgorA 525
	cmp ebx,-1
526
	jne .end_0
527
		call ted_on_init_synt_err
528
		jmp @f
529
	.end_0:
530
		mov eax,ted_syntax_file
531
		cmp dword[eax],'KPCK'
532
		jne .end_unpack
533
		cmp dword[eax+4],ecx
534
		jg @f ;если для распакованого файла не хватает выделенной памяти
535
		cmp dword[unpac_mem],0
536
		jne .end_1
537
			;выделение памяти для распаковки файла
538
			stdcall mem.Alloc,ecx
539
			mov [unpac_mem],eax
540
		.end_1:
541
		stdcall unpack,ted_syntax_file,[unpac_mem]
542
		mov edi,ted_syntax_file
543
		mov esi,[unpac_mem]
544
		mov ecx,[edi+4]
545
		cld
546
		rep movsb
547
		.end_unpack:
548
		stdcall [ted_init_syntax_file], tedit0
549
	@@:
550
	ret
6086 IgorA 551
endp
2708 IgorA 552
 
2102 IgorA 553
;description:
554
; вызов/скрытие панели поиска
1456 IgorA 555
align 4
4308 IgorA 556
proc ted_but_find uses edi
557
	mov edi,tedit0
1456 IgorA 558
 
4308 IgorA 559
	cmp ted_panel_id,TED_PANEL_NULL
560
	je @f
561
		mov ted_panel_id,TED_PANEL_NULL
562
		mov ted_wnd_l,0
563
		jmp .e_if
564
	@@:
565
		mov ted_panel_id,TED_PANEL_FIND
566
		mov ted_wnd_l,TED_PANEL_WIDTH
567
	.e_if:
568
	call EvSize
569
	stdcall [ted_draw],edi
570
	ret
1449 IgorA 571
endp
1338 IgorA 572
 
1456 IgorA 573
align 4
4308 IgorA 574
tbl_1251_866:
575
rb 128
576
db   0,  0,  0,  0,  0,  0,  0,  0,  0,0,0,0,0,0,0,0 ;128
577
db   0,  0,  0,  0,  0,  0,  0,  0,  0,0,0,0,0,0,0,0 ;144
578
db   0,  0,  0,  0,  0,  0,  0,  0,240,0,0,0,0,0,0,0 ;160
579
db   0,  0,  0,  0,  0,  0,  0,  0,241,0,0,0,0,0,0,0 ;176
580
db 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143 ;192
581
db 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159 ;208
582
db 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175 ;224
583
db 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239 ;240
584
 
585
align 4
586
tbl_866_1251:
587
rb 128
588
db 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207 ;128
589
db 208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223 ;144
590
db 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239 ;160
591
db   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ;176
592
db   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ;192
593
db   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ;208
594
db 240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255 ;224
595
db 168,184,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ;240
596
 
597
align 4
1457 IgorA 598
ted_on_find_err:
599
	stdcall [mb_create],msgbox_7,thread ;message: Can not find text
600
	ret
601
 
2102 IgorA 602
;description:
603
; кнопка [Заменить] на панели
1457 IgorA 604
align 4
1338 IgorA 605
but_replace:
2102 IgorA 606
	; пока не сделано
607
	ret
1338 IgorA 608
 
2102 IgorA 609
;description:
610
; функция поиска информации в списке ключевых слов
1456 IgorA 611
align 4
1338 IgorA 612
but_find_key_w:
7035 IgorA 613
	cmp dword[wnd_k_words_run],0
3244 IgorA 614
	jne @f
615
		pushad
6086 IgorA 616
		mcall SF_CREATE_THREAD,1,prop_start,thread_coords
7035 IgorA 617
		mov dword[wnd_k_words_run],eax
3244 IgorA 618
		popad
619
	@@:
2102 IgorA 620
	ret
1338 IgorA 621
 
2102 IgorA 622
;description:
623
; выделение/скрытие непечатаемых символов
1456 IgorA 624
align 4
6239 IgorA 625
proc but_sumb_invis uses edi, edit:dword
626
	mov edi,dword[edit]
1338 IgorA 627
 
6239 IgorA 628
	xor ted_mode_invis,1
629
	call draw_but_toolbar
630
	stdcall [ted_draw],edi
631
	ret
1456 IgorA 632
endp
1338 IgorA 633
 
2102 IgorA 634
;description:
635
; выделение/скрытие ключевых слов
1456 IgorA 636
align 4
7573 IgorA 637
proc but_use_syntax uses edi, edit:dword
6239 IgorA 638
	mov edi,dword[edit]
1338 IgorA 639
 
6239 IgorA 640
	xor ted_mode_color,1
641
	cmp ted_mode_color,0
642
	je @f
643
		call [ted_text_colored]
644
	@@:
645
	call draw_but_toolbar
646
	stdcall [ted_draw],edi
647
	ret
1456 IgorA 648
endp
1338 IgorA 649
 
2102 IgorA 650
;description:
651
; вызов/скрытие панели с файлами синтаксиса
1456 IgorA 652
align 4
7573 IgorA 653
proc but_choose_syntax uses edi, edit:dword
6239 IgorA 654
	mov edi,[edit]
1449 IgorA 655
 
6239 IgorA 656
	cmp ted_panel_id,TED_PANEL_NULL
657
	je @f
658
		mov ted_panel_id,TED_PANEL_NULL
659
		mov ted_wnd_l,0
660
		jmp .e_if
661
	@@:
662
		mov ted_panel_id,TED_PANEL_SYNTAX
663
		mov ted_wnd_l,TED_PANEL_WIDTH
664
	.e_if:
665
	call EvSize
666
	stdcall [ted_draw],edi
667
	ret
1449 IgorA 668
endp