Subversion Repositories Kolibri OS

Rev

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