Subversion Repositories Kolibri OS

Rev

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

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