Subversion Repositories Kolibri OS

Rev

Rev 7576 | Rev 7579 | 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
7576 IgorA 90
		call but_panel_find
7573 IgorA 91
		jmp still
92
	@@:
93
	cmp ah,ID_BUT_REPLACE
94
	jne @f
7576 IgorA 95
		call but_panel_replace
7573 IgorA 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
7576 IgorA 140
		stdcall but_panel_choose_syntax, tedit0
7573 IgorA 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
	@@:
7577 IgorA 159
	cmp ah,201 ;найти далее
7576 IgorA 160
	jne .no_find
161
		call get_find_options
162
		stdcall [ted_but_find], tedit0, eax
7573 IgorA 163
		jmp still
7576 IgorA 164
	.no_find:
7577 IgorA 165
	cmp ah,202 ;заменить
7576 IgorA 166
	jne .no_change
167
		call get_find_options
168
		stdcall [ted_but_replace], tedit0, buf_replace, eax, 1
169
		or eax,eax
170
		jz still
171
		stdcall [ted_draw], tedit0
172
		jmp still
173
	.no_change:
7577 IgorA 174
	cmp ah,203 ;заменить все
7576 IgorA 175
	jne .no_change_a
176
		call but_replace_all
177
		jmp still
178
	.no_change_a:
7573 IgorA 179
 
180
	cmp ah,1
7575 IgorA 181
	jne @f
182
		call ted_Exit
183
		jmp still
184
	@@:
7573 IgorA 185
 
186
	cmp ah,199
7575 IgorA 187
	jne still
188
		call ted_Exit
7573 IgorA 189
	jmp still
7575 IgorA 190
 
191
align 4
192
ted_Exit:
7573 IgorA 193
	cmp dword[wnd_k_words_run],0
194
	je @f
195
		push ebx ecx
196
		mcall SF_SYSTEM, SSF_TERMINATE_THREAD_ID,[wnd_k_words_run]
197
		pop ecx ebx
7575 IgorA 198
		mov dword[wnd_k_words_run],0
199
		;test eax,eax
7573 IgorA 200
	@@:
201
	cmp dword[exit_code],1
202
	je @f
203
	stdcall [ted_can_save], tedit0
204
	cmp al,1
205
	jne @f
206
		stdcall [mb_create],msgbox_2,thread ;message: save buf in file?
207
		stdcall [mb_setfunctions],msgbox_2E_funct
7575 IgorA 208
		ret
7573 IgorA 209
	@@:
210
	stdcall mem.Free,[bmp_icon]
211
	cmp dword[unpac_mem],0
212
	je @f
213
		stdcall mem.Free,[unpac_mem]
214
	@@:
215
	stdcall [ted_delete], tedit0
216
	stdcall [tl_data_clear], tree1
217
	mcall SF_TERMINATE_PROCESS ;выход из программы
7575 IgorA 218
	;ret
7573 IgorA 219
 
7576 IgorA 220
align 4
221
get_find_options:
222
	xor eax,eax
223
	cmp [opt_gr1],opt1
224
	je @f
225
		inc eax
226
	cmp [opt_gr1],opt2
227
	je @f
228
		inc eax
229
	@@:
230
	ret
231
 
232
align 4
233
proc but_replace_all uses ebx ecx edx
234
	call get_find_options
235
	mov ebx,eax
236
	stdcall [ted_but_replace], tedit0, buf_replace, ebx, 1
237
	xor edx,edx
238
	or eax,eax
239
	jz @f
240
	inc edx
241
	mov ecx,0x1000
242
	.cycle0:
243
		stdcall [ted_but_replace], tedit0, buf_replace, ebx, 0
244
		or eax,eax
245
		jz @f
246
		inc edx
247
		loop .cycle0
248
	@@:
7577 IgorA 249
	or edx,edx
250
	jz @f
251
		stdcall [ted_draw], tedit0
252
	@@:
7576 IgorA 253
	mov eax,edx
7577 IgorA 254
	mov edi,msgbox_1.z
255
	stdcall convert_int_to_str, 8
256
	stdcall str_cat, edi,txt_Info
257
	notify_window_run msgbox_1
7576 IgorA 258
	ret
259
endp
260
 
1457 IgorA 261
;input:
262
; al = код ошибки
1456 IgorA 263
align 4
1457 IgorA 264
ted_on_init_synt_err:
2855 IgorA 265
	mov byte[msgbox_3.err],'0'
266
	add byte[msgbox_3.err],al
1457 IgorA 267
	stdcall [mb_create],msgbox_3,thread ;message: Can-t open color options file!
268
	ret
269
 
270
align 4
271
ted_but_new_file:
4991 IgorA 272
	push eax ebx
273
	stdcall [ted_can_save], tedit0
274
	cmp al,1
275
	jne @f
276
		stdcall [mb_create],msgbox_2,thread ;message: save changes in file?
277
		stdcall [mb_setfunctions],msgbox_2N_funct
278
		jmp .ret_f
279
	@@:
280
	call On_NewFile
281
	.ret_f:
5643 leency 282
		mov byte[openfile_path],0
6086 IgorA 283
		mcall SF_SET_CAPTION,1,hed
4991 IgorA 284
	pop ebx eax
285
	ret
1338 IgorA 286
 
1456 IgorA 287
align 4
1338 IgorA 288
On_NewFile:
4991 IgorA 289
	stdcall [ted_clear], tedit0,1
290
	call draw_but_toolbar
291
	stdcall [ted_draw], tedit0
7570 IgorA 292
	mov dword[openfile_path],0
4991 IgorA 293
	ret
1338 IgorA 294
 
1456 IgorA 295
align 4
1338 IgorA 296
On_SaveAndNewFile:
4991 IgorA 297
	push edi
298
	mov edi, tedit0
1456 IgorA 299
 
4991 IgorA 300
	call ted_but_save_file
301
	cmp ted_err_save,0
302
	jne @f
303
		call On_NewFile
304
	@@:
305
	pop edi
306
	ret
1338 IgorA 307
 
4991 IgorA 308
align 4
309
On_SaveAndOpenFile:
310
	push edi
311
	mov edi, tedit0
312
 
313
	call ted_but_save_file
314
	cmp ted_err_save,0
315
	jne @f
316
		call ted_but_open_file.no_msg
317
	@@:
318
	pop edi
319
	ret
320
 
321
align 4
322
On_SaveAndExit:
323
	push edi
324
	mov edi, tedit0
325
 
326
	call ted_but_save_file
327
	cmp ted_err_save,0
328
	jne @f
329
		mov dword[exit_code],1
330
	@@:
331
	pop edi
332
	ret
333
 
334
align 4
335
On_Exit:
336
	mov dword[exit_code],1
337
	ret
338
 
1457 IgorA 339
;description:
2102 IgorA 340
; функция открытия файла без окна сообщения
1456 IgorA 341
align 4
7570 IgorA 342
proc but_no_msg_OpenFile uses eax ebx esi
4308 IgorA 343
	stdcall [ted_open_file], tedit0,run_file_70,openfile_path
1457 IgorA 344
	call ted_messages_after_open_file
7570 IgorA 345
 
346
	mov esi,openfile_path
7577 IgorA 347
	stdcall str_len,esi
7570 IgorA 348
	add esi,eax
349
	@@: ;цикл для поиска начала имени файла
350
		dec esi
351
		cmp byte[esi],'/'
352
		je @f
353
		cmp byte[esi],0x5c ;'\'
354
		je @f
355
		cmp esi,openfile_path
356
		jg @b
357
	@@:
358
	inc esi
7577 IgorA 359
	stdcall str_len,esi
7570 IgorA 360
	cmp eax,255
361
	jle @f
362
		mov eax,255
363
	@@:
364
	inc eax ;для 0 в конце строки
365
	stdcall mem_cpy, filename_area,esi,eax ;копируем имя файла в диалог сохранения
1457 IgorA 366
	ret
7570 IgorA 367
endp
1456 IgorA 368
 
1457 IgorA 369
;description:
370
; функция открытия файла с возможным окном сообщения (о возможности отменить открытие)
1456 IgorA 371
align 4
1457 IgorA 372
ted_but_open_file:
1467 IgorA 373
	pushad
374
 
1457 IgorA 375
	stdcall [ted_can_save], tedit0
376
	cmp al,1
377
	jne @f
4991 IgorA 378
		stdcall [mb_create],msgbox_2,thread ;message: save changes in file?
379
		stdcall [mb_setfunctions],msgbox_2O_funct
1457 IgorA 380
		jmp .ret_f
3366 IgorA 381
	.no_msg: ;метка для вызова функции через кнопку в сообщении msgbox_5
382
		pushad
1457 IgorA 383
	@@:
1467 IgorA 384
 
1468 IgorA 385
	copy_path open_dialog_name,communication_area_default_path,file_name,0
1467 IgorA 386
	mov [OpenDialog_data.type],0
1592 IgorA 387
	stdcall [OpenDialog_Start],OpenDialog_data
1467 IgorA 388
	cmp [OpenDialog_data.status],2
389
	jne @f
1468 IgorA 390
		stdcall mem_spac, msgbox_9.fdp,100
7577 IgorA 391
		stdcall str_len,file_name
1468 IgorA 392
		cmp eax,100
393
		jle .no_crop
394
			mov eax,100
395
		.no_crop:
7570 IgorA 396
		stdcall mem_cpy, msgbox_9.fdp,esi,eax
1467 IgorA 397
		stdcall [mb_create],msgbox_9,thread ;message: error run 'open file dialog'
398
		jmp .ret_f
399
	@@:
2817 IgorA 400
	cmp [OpenDialog_data.status],1
2632 IgorA 401
	jne .ret_f
6086 IgorA 402
		stdcall auto_open_syntax,[OpenDialog_data.openfile_path]
4308 IgorA 403
		stdcall [ted_open_file], tedit0,run_file_70,openfile_path
2817 IgorA 404
		call ted_messages_after_open_file
1457 IgorA 405
	.ret_f:
1467 IgorA 406
	popad
1457 IgorA 407
	ret
1338 IgorA 408
 
6086 IgorA 409
proc auto_open_syntax, of_path:dword
410
pushad
411
	;ищем есть ли файл подсветки для открываемого текстового файла
7577 IgorA 412
	stdcall str_len,[of_path]
6086 IgorA 413
	mov edx,[of_path]
414
	add edx,eax
415
	.f_beg:
416
	cmp byte[edx],'.'
417
	je .found
418
		dec edx
419
		cmp edx,[of_path]
420
		jg .f_beg
421
	.found:
422
	inc edx ;edx - указатель на расширение открытого файла
423
 
424
	mov ebx,synt_auto_open
425
	.cycle_0:
426
		add ebx,32
427
		stdcall strcmp,ebx,edx ;сравниваем расширение открытого файла со значениями открытыми с ini файла
428
		test eax,eax
429
		jz .ok
430
		add ebx,32
431
		cmp byte[ebx],0
432
		jne .cycle_0
433
	jmp .end_0
434
	.ok: ;открытие файла подсветки в зависимости от найденного расширения
435
		sub ebx,32
436
		stdcall open_unpac_synt_file,ebx
437
	.end_0:
438
popad
439
	ret
440
endp
441
 
7571 IgorA 442
;input:
443
; eax если равен: 0 - сохранение без диалога, 1 - сохранение с диалогом
2102 IgorA 444
;description:
7570 IgorA 445
; функция сохранения файла
4308 IgorA 446
align 4
447
proc ted_but_save_file
7571 IgorA 448
	or eax,eax
449
	jnz .init_dlg
450
		; сохраняем без вызова диалогового окна
451
		cmp byte[openfile_path],0
452
		jne @f
7570 IgorA 453
	.init_dlg:
7571 IgorA 454
		; вызов диалогового окна для сохранения файла
455
		copy_path open_dialog_name,communication_area_default_path,file_name,0
456
		mov [OpenDialog_data.type],1
457
		stdcall [OpenDialog_Start],OpenDialog_data
458
		cmp [OpenDialog_data.status],1 ;if status==1 then save
459
		jne .end_save
7570 IgorA 460
	@@:
5918 IgorA 461
		stdcall [ted_save_file],tedit0,run_file_70,openfile_path
7570 IgorA 462
	.end_save:
4308 IgorA 463
	ret
464
endp
465
 
466
;description:
2102 IgorA 467
; копирование памяти
1468 IgorA 468
align 4
7570 IgorA 469
proc mem_cpy uses ecx esi edi, destination:dword, source:dword, len:dword
5918 IgorA 470
	cld
7571 IgorA 471
	mov esi,[source]
472
	mov edi,[destination]
473
	mov ecx,[len]
5918 IgorA 474
	rep movsb
475
	ret
1468 IgorA 476
endp
477
 
2102 IgorA 478
;description:
479
; заполнение памяти пробелами
1468 IgorA 480
align 4
5918 IgorA 481
proc mem_spac uses eax ecx edi, mem:dword, len:dword
482
	cld
483
	mov al,' '
7571 IgorA 484
	mov edi,[mem]
485
	mov ecx,[len]
5918 IgorA 486
	repne stosb
487
	ret
1468 IgorA 488
endp
489
 
1457 IgorA 490
;input:
491
; eax = код ошибки
492
; ebx = колличество прочитанных байт
1456 IgorA 493
align 4
1457 IgorA 494
ted_messages_after_open_file:
2847 IgorA 495
	push ecx edi
7577 IgorA 496
	or eax,eax
497
	jz @f
1457 IgorA 498
		cmp ax,10
499
		jl .zifra_0_9
500
			mov al,'?'
501
			sub ax,48
502
		.zifra_0_9:
503
		add ax,48
1456 IgorA 504
 
1457 IgorA 505
		mov byte[msgbox_4.err],al
506
		stdcall [mb_create],msgbox_4,thread ;message: Can-t open text file!
507
	@@:
2847 IgorA 508
	pop edi ecx
1457 IgorA 509
	ret
1338 IgorA 510
 
1456 IgorA 511
align 4
1457 IgorA 512
ted_save_err_msg:
513
	mov byte[msgbox_6.err],al
514
	stdcall [mb_create],msgbox_6,thread ;message: Can-t save text file!
515
	ret
1456 IgorA 516
 
2102 IgorA 517
;description:
518
; функция нажатия на кнопку [Применить] в панели синтаксиса
1456 IgorA 519
align 4
2707 IgorA 520
proc ted_but_open_syntax uses eax ebx ecx edi, edit:dword
7577 IgorA 521
	mov edi,[edit]
2707 IgorA 522
	cmp ted_panel_id,TED_PANEL_SYNTAX
523
	jne @f
7577 IgorA 524
		stdcall [tl_node_get_data], tree1
5911 IgorA 525
		mov [fn_col_option],eax
6086 IgorA 526
		stdcall open_unpac_synt_file,eax
2708 IgorA 527
		cmp ebx,-1
528
		je @f
529
 
2707 IgorA 530
		call [ted_text_colored]
531
		stdcall [ted_draw],edi
532
	@@:
533
	ret
1456 IgorA 534
endp
1338 IgorA 535
 
2708 IgorA 536
;открытие и распаковка файла подсветки синтаксиса
2855 IgorA 537
;input:
6086 IgorA 538
; f_name - указатель на имя открываемого файла синтаксиса (без пути и папки info)
2708 IgorA 539
;output:
540
; ebx - число прочитанных байт из файла
2855 IgorA 541
; ecx - разрушается
2708 IgorA 542
align 4
6086 IgorA 543
proc open_unpac_synt_file uses eax edi esi, f_name:dword
544
	mov ebx,[f_name]
7577 IgorA 545
	cmp byte[ebx],0
546
	je @f
2855 IgorA 547
	mov edi,last_open_synt_file
548
	stdcall strcmp,ebx,edi ;сравниваем имя подключенного файла с подключенным ранее файлом
549
	test eax,eax
550
	jz @f
551
 
552
	;копируем имя подключенного файла (для избежания повторных подключений)
553
	mov esi,ebx
6086 IgorA 554
	mov ecx,32/4
2855 IgorA 555
	cld
6086 IgorA 556
	rep movsd
2855 IgorA 557
 
4308 IgorA 558
	copy_path ebx,fn_syntax_dir,syntax_path,0
559
	copy_path syntax_path,sys_path,file_name,0
2708 IgorA 560
	mov edi, tedit0
6086 IgorA 561
	mov [run_file_70.Function], SSF_READ_FILE
2708 IgorA 562
	mov [run_file_70.Position], 0
563
	mov [run_file_70.Flags], 0
564
	mov ecx, ted_syntax_file_size
565
	mov dword[run_file_70.Count], ecx
566
	m2m dword[run_file_70.Buffer], ted_syntax_file
567
	mov byte[run_file_70+20], 0
568
	mov [run_file_70.FileName], file_name
6086 IgorA 569
	mcall SF_FILE, run_file_70
2708 IgorA 570
	cmp ebx,-1
571
	jne .end_0
572
		call ted_on_init_synt_err
573
		jmp @f
574
	.end_0:
575
		mov eax,ted_syntax_file
576
		cmp dword[eax],'KPCK'
577
		jne .end_unpack
578
		cmp dword[eax+4],ecx
579
		jg @f ;если для распакованого файла не хватает выделенной памяти
580
		cmp dword[unpac_mem],0
581
		jne .end_1
582
			;выделение памяти для распаковки файла
583
			stdcall mem.Alloc,ecx
584
			mov [unpac_mem],eax
585
		.end_1:
586
		stdcall unpack,ted_syntax_file,[unpac_mem]
587
		mov edi,ted_syntax_file
588
		mov esi,[unpac_mem]
589
		mov ecx,[edi+4]
590
		cld
591
		rep movsb
592
		.end_unpack:
593
		stdcall [ted_init_syntax_file], tedit0
594
	@@:
595
	ret
6086 IgorA 596
endp
2708 IgorA 597
 
2102 IgorA 598
;description:
599
; вызов/скрытие панели поиска
1456 IgorA 600
align 4
7576 IgorA 601
proc but_panel_find uses edi
4308 IgorA 602
	mov edi,tedit0
1456 IgorA 603
 
4308 IgorA 604
	cmp ted_panel_id,TED_PANEL_NULL
605
	je @f
606
		mov ted_panel_id,TED_PANEL_NULL
607
		mov ted_wnd_l,0
608
		jmp .e_if
609
	@@:
610
		mov ted_panel_id,TED_PANEL_FIND
611
		mov ted_wnd_l,TED_PANEL_WIDTH
612
	.e_if:
613
	call EvSize
614
	stdcall [ted_draw],edi
615
	ret
1449 IgorA 616
endp
1338 IgorA 617
 
7576 IgorA 618
;description:
619
; вызов/скрытие панели замены
1456 IgorA 620
align 4
7576 IgorA 621
proc but_panel_replace uses edi
622
	mov edi,tedit0
623
 
624
	cmp ted_panel_id,TED_PANEL_NULL
625
	je @f
626
		mov ted_panel_id,TED_PANEL_NULL
627
		mov ted_wnd_l,0
628
		jmp .e_if
629
	@@:
630
		mov ted_panel_id,TED_PANEL_REPLACE
631
		mov ted_wnd_l,TED_PANEL_WIDTH
632
	.e_if:
633
	call EvSize
634
	stdcall [ted_draw],edi
635
	ret
636
endp
637
 
638
;description:
639
; вызов/скрытие панели с файлами синтаксиса
640
align 4
641
proc but_panel_choose_syntax uses edi, edit:dword
642
	mov edi,[edit]
643
 
644
	cmp ted_panel_id,TED_PANEL_NULL
645
	je @f
646
		mov ted_panel_id,TED_PANEL_NULL
647
		mov ted_wnd_l,0
648
		jmp .e_if
649
	@@:
650
		mov ted_panel_id,TED_PANEL_SYNTAX
651
		mov ted_wnd_l,TED_PANEL_WIDTH
652
	.e_if:
653
	call EvSize
654
	stdcall [ted_draw],edi
655
	ret
656
endp
657
 
658
align 4
4308 IgorA 659
tbl_1251_866:
660
rb 128
661
db   0,  0,  0,  0,  0,  0,  0,  0,  0,0,0,0,0,0,0,0 ;128
662
db   0,  0,  0,  0,  0,  0,  0,  0,  0,0,0,0,0,0,0,0 ;144
663
db   0,  0,  0,  0,  0,  0,  0,  0,240,0,0,0,0,0,0,0 ;160
664
db   0,  0,  0,  0,  0,  0,  0,  0,241,0,0,0,0,0,0,0 ;176
665
db 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143 ;192
666
db 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159 ;208
667
db 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175 ;224
668
db 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239 ;240
669
 
670
align 4
671
tbl_866_1251:
672
rb 128
673
db 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207 ;128
674
db 208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223 ;144
675
db 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239 ;160
676
db   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ;176
677
db   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ;192
678
db   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ;208
679
db 240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255 ;224
680
db 168,184,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ;240
681
 
682
align 4
1457 IgorA 683
ted_on_find_err:
7577 IgorA 684
	notify_window_run msgbox_7 ;message: Can not find text
1457 IgorA 685
	ret
686
 
2102 IgorA 687
;description:
688
; функция поиска информации в списке ключевых слов
1456 IgorA 689
align 4
1338 IgorA 690
but_find_key_w:
7035 IgorA 691
	cmp dword[wnd_k_words_run],0
3244 IgorA 692
	jne @f
693
		pushad
6086 IgorA 694
		mcall SF_CREATE_THREAD,1,prop_start,thread_coords
7035 IgorA 695
		mov dword[wnd_k_words_run],eax
3244 IgorA 696
		popad
697
	@@:
2102 IgorA 698
	ret
1338 IgorA 699
 
2102 IgorA 700
;description:
701
; выделение/скрытие непечатаемых символов
1456 IgorA 702
align 4
6239 IgorA 703
proc but_sumb_invis uses edi, edit:dword
704
	mov edi,dword[edit]
1338 IgorA 705
 
6239 IgorA 706
	xor ted_mode_invis,1
707
	call draw_but_toolbar
708
	stdcall [ted_draw],edi
709
	ret
1456 IgorA 710
endp
1338 IgorA 711
 
2102 IgorA 712
;description:
713
; выделение/скрытие ключевых слов
1456 IgorA 714
align 4
7573 IgorA 715
proc but_use_syntax uses edi, edit:dword
6239 IgorA 716
	mov edi,dword[edit]
1338 IgorA 717
 
6239 IgorA 718
	xor ted_mode_color,1
719
	cmp ted_mode_color,0
720
	je @f
721
		call [ted_text_colored]
722
	@@:
723
	call draw_but_toolbar
724
	stdcall [ted_draw],edi
725
	ret
1456 IgorA 726
endp
1338 IgorA 727