Subversion Repositories Kolibri OS

Rev

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