Subversion Repositories Kolibri OS

Rev

Rev 1698 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1698 Rev 1705
Line 17... Line 17...
17
include 'dll.inc'
17
include 'dll.inc'
18
include 'strlen.inc'
18
include 'strlen.inc'
Line 19... Line 19...
19
 
19
 
Line 20... Line 20...
20
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc, dll.Load
20
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc, dll.Load
-
 
21
 
-
 
22
hed db 'kol_f_edit 17.11.10',0
Line 21... Line 23...
21
 
23
 
22
hed db 'kol_f_edit 11.11.10',0
24
sizeof.TreeList equ 20 ;need for element 'tree_list'
23
 
25
 
24
BUF_STRUCT_SIZE equ 21
26
BUF_STRUCT_SIZE equ 21
Line 32... Line 34...
32
buf2d_bits equ byte[edi+20] ;ª®«¨ç¥á⢮ ¡¨â ¢ 1-© â®çª¥ ¨§®¡à ¦¥­¨ï
34
buf2d_bits equ byte[edi+20] ;ª®«¨ç¥á⢮ ¡¨â ¢ 1-© â®çª¥ ¨§®¡à ¦¥­¨ï
Line 33... Line 35...
33
 
35
 
34
MAX_LEN_OBJ_TXT equ 200
36
MAX_LEN_OBJ_TXT equ 200
35
MAX_CED_OBJECTS equ 200
37
MAX_CED_OBJECTS equ 200
36
MAX_OPT_FIELDS equ 11
38
MAX_OPT_FIELDS equ 11
37
MAX_OBJ_TYPES equ 16
39
MAX_OBJ_TYPES equ 18
38
WND_CAPT_COLOR equ 0xb0d0ff
40
WND_CAPT_COLOR equ 0xb0d0ff
Line -... Line 41...
-
 
41
BUF_SIZE equ 1000
39
BUF_SIZE equ 1000
42
 
40
 
43
C_TD equ 't' ;typedef
41
C_AC equ 'a' ; ¢â®¬ â¨ç¥áª¨¥ ª®¤ë (auto code)
44
C_AC equ 'a' ; ¢â®¬ â¨ç¥áª¨¥ ª®¤ë (auto code)
42
C_ST equ 's' ;struct
45
C_ST equ 's' ;struct
43
C_IN equ '#' ;include
46
C_IN equ '#' ;include
Line 50... Line 53...
50
C_ED equ 'e' ;EditBox
53
C_ED equ 'e' ;EditBox
51
C_BU equ 'b' ;Button
54
C_BU equ 'b' ;Button
52
C_DT equ 'x' ;à¨á®¢ âì ⥪áâ
55
C_DT equ 'x' ;à¨á®¢ âì ⥪áâ
53
C_RE equ 'r' ;à¨á®¢ âì ¯àאַ㣮«ì­¨ª
56
C_RE equ 'r' ;à¨á®¢ âì ¯àאַ㣮«ì­¨ª
54
C_KE equ 'k' ;ª« ¢¨ âãà 
57
C_KE equ 'k' ;ª« ¢¨ âãà 
-
 
58
C_LIB equ 'l'
-
 
59
C_IFN equ 'f'
Line 55... Line 60...
55
 
60
 
56
;modif
61
;modif
57
CPP_MOD_ACM equ 2 ;ᮡëâ¨ï ¬ëè¨
62
CPP_MOD_ACM equ 2 ;ᮡëâ¨ï ¬ëè¨
58
BIT_MOD_ACM equ 1 ;ᮡëâ¨ï ¬ëè¨
63
BIT_MOD_ACM equ 1 ;ᮡëâ¨ï ¬ëè¨
Line 99... Line 104...
99
	rezerv	 db ?
104
	rezerv	 db ?
100
	FileName dd ?
105
	FileName dd ?
101
ends
106
ends
Line 102... Line 107...
102
 
107
 
103
struct object
108
struct object
104
	c db ?
109
	c db ? ;0
105
	txt rb MAX_LEN_OBJ_TXT
110
	txt rb MAX_LEN_OBJ_TXT ;1
106
	lvl db 0
111
	lvl db 0 ;1+mt
107
	clo db 0
-
 
108
	perv dd ?
-
 
-
 
112
	clo db 0 ;2+mt
109
	next dd ?
113
	rb 8 ;3+mt ­¥ ¨á¯®«ì§ã¥âáï, ®âáâ «®áì ®â Win ¢¥àᨨ
110
	typid dd ?
-
 
111
	tc dd ?
-
 
112
	td dd ?
114
	typid dd ? ;3+8+mt
113
	modif dd ?
115
	modif dd ? ;7+8+mt
Line 114... Line 116...
114
ends
116
ends
115
 
117
 
116
struct ObjOpt
118
struct ObjOpt
Line 293... Line 295...
293
		call strlen ;eax=strlen
295
		call strlen ;eax=strlen
294
		mov edi,[edit1.text]
296
		mov edi,[edit1.text]
295
		mov [edit1.size],eax
297
		mov [edit1.size],eax
296
		mov ecx,eax
298
		mov ecx,eax
297
		rep movsb
299
		rep movsb
298
		call but_open
300
		call but_open_proj
299
	@@:
301
	@@:
Line 300... Line 302...
300
 
302
 
Line 332... Line 334...
332
	mov ebx,20*65536+670
334
	mov ebx,20*65536+670
333
	mov ecx,20*65536+370
335
	mov ecx,20*65536+370
334
	mov edx,[sc.work]
336
	mov edx,[sc.work]
335
	or  edx,0x33000000
337
	or  edx,0x33000000
336
	mov edi,hed
338
	mov edi,hed
337
	mcall
339
	int 0x40
Line 338... Line 340...
338
 
340
 
339
	mov eax,8 ;button 'Open'
341
	mov eax,8 ;button 'Open Project'
340
	mov esi,0x80ff
342
	mov esi,0x80ff
341
	mov ebx,230*65536+70
343
	mov ebx,230*65536+18
342
	mov ecx,5*65536+22
344
	mov ecx,5*65536+18
-
 
345
	mov edx,5
-
 
346
	int 0x40
-
 
347
 
-
 
348
	;button 'Save Project'
-
 
349
	mov ebx,250*65536+18
343
	mov edx,5
350
	mov ecx,5*65536+18
-
 
351
	mov edx,6
-
 
352
	int 0x40
Line 344... Line 353...
344
	mcall
353
	stdcall draw_icon, 17,251,6 ;17 - save icon
345
 
354
 
346
	;button 'Show Constructor'
355
	;button 'Show Constructor'
347
	mov ebx,310*65536+18
356
	mov ebx,310*65536+18
348
	mov ecx,5*65536+18
357
	mov ecx,5*65536+18
349
	mov edx,11
358
	mov edx,11
Line 350... Line 359...
350
	mcall
359
	int 0x40
351
	stdcall draw_icon, 12,311,6 ;12 - window icon
360
	stdcall draw_icon, 12,311,6 ;12 - window icon
352
 
361
 
353
	;button 'Show Code'
362
	;button 'Show Code'
354
	mov ebx,330*65536+18
363
	mov ebx,330*65536+18
Line 355... Line 364...
355
	mov edx,12
364
	mov edx,12
356
	mcall
365
	int 0x40
357
	stdcall draw_icon, 11,331,6 ;11 - text icon
366
	stdcall draw_icon, 11,331,6 ;11 - text icon
358
 
367
 
Line 359... Line 368...
359
	;button 'Update Code'
368
	;button 'Update Code'
360
	mov ebx,350*65536+18
369
	mov ebx,350*65536+18
361
	mov edx,13
370
	mov edx,13
362
	mcall
371
	int 0x40
363
 
372
 
Line 364... Line 373...
364
	;button 'Save Code'
373
	;button 'Save Code'
365
	mov ebx,370*65536+18
374
	mov ebx,370*65536+18
366
	mov edx,14
375
	mov edx,14
367
	mcall
376
	int 0x40
368
	stdcall draw_icon, 17,371,6 ;17 - save icon
377
	stdcall draw_icon, 17,371,6 ;17 - save icon
Line 369... Line 378...
369
 
378
 
370
	;button ']P'
379
	;button ']P'
371
	mov ebx,390*65536+18
380
	mov ebx,390*65536+18
372
	mov edx,15
381
	mov edx,15
373
	mcall
382
	int 0x40
Line -... Line 383...
-
 
383
	stdcall draw_icon, 18,391,6 ;18 - §­ ª ª®­æ   ¡§ æ 
-
 
384
 
-
 
385
	;button 'Show color text'
-
 
386
	mov ebx,410*65536+18
-
 
387
	mov edx,16
-
 
388
	int 0x40
-
 
389
	stdcall draw_icon, 19,411,6
-
 
390
 
-
 
391
	;button 'Move Up'
-
 
392
	mov ebx,160*65536+18
-
 
393
	mov ecx,30*65536+18
-
 
394
	mov edx,21
-
 
395
	int 0x40
-
 
396
	stdcall draw_icon, 23,161,31 ;23 - move up
374
	stdcall draw_icon, 18,391,6 ;18 - §­ ª ª®­æ   ¡§ æ 
397
 
Line 375... Line 398...
375
 
398
	;button 'Move Down'
376
	;button 'Show color text'
399
	mov ebx,180*65536+18
377
	mov ebx,410*65536+18
400
	mov ecx,30*65536+18
378
	mov edx,16
401
	mov edx,22
379
	mcall
402
	int 0x40
Line 380... Line 403...
380
	stdcall draw_icon, 19,411,6
403
	stdcall draw_icon, 24,181,31 ;24 - move down
381
 
404
 
382
; 10 30 50 70 90
405
; 10 30 50 70 90
383
 
406
 
384
	mov eax,4 ;¯®¤¯¨áì 'Žâªàëâì'
407
	mov eax,4 ;¯®¤¯¨áì 'Žâªàëâì'
385
	mov ebx,245*65536+13
408
	mov ebx,232*65536+13
386
	mov ecx,0x80ffff00
409
	mov ecx,0x80ffff00
387
	mov edx,txtOpen
410
	mov edx,txtOpen
Line 388... Line 411...
388
	mcall
411
	int 0x40
389
 
412
 
390
	cmp [err_opn],1
413
	cmp [err_opn],1
Line 475... Line 498...
475
align 4
498
align 4
476
button:
499
button:
477
	mcall 17
500
	mcall 17
478
	cmp ah,5
501
	cmp ah,5
479
	jne @f
502
	jne @f
480
		call but_open
503
		call but_open_proj
-
 
504
	@@:
-
 
505
	cmp ah,6
-
 
506
	jne @f
-
 
507
		call but_save_proj
481
	@@:
508
	@@:
482
	cmp ah,10
509
	cmp ah,10
483
	jne @f
510
	jne @f
484
		call but_element_change
511
		call but_element_change
485
	@@:
512
	@@:
Line 505... Line 532...
505
	@@:
532
	@@:
506
	cmp ah,16
533
	cmp ah,16
507
	jne @f
534
	jne @f
508
		call but_show_syntax
535
		call but_show_syntax
509
	@@:
536
	@@:
-
 
537
	cmp ah,21
-
 
538
	jne @f
-
 
539
		call but_obj_move_up
-
 
540
	@@:
-
 
541
	cmp ah,22
-
 
542
	jne @f
-
 
543
		call but_obj_move_down
-
 
544
	@@:
510
	cmp ah,1
545
	cmp ah,1
511
	jne still
546
	jne still
512
.exit:
547
.exit:
513
	stdcall mem.Free,[icon_tl_sys]
548
	stdcall mem.Free,[icon_tl_sys]
514
	mov dword[tree1.data_img],0
549
	mov dword[tree1.data_img],0
Line 524... Line 559...
524
	stdcall [buf2d_delete],buf_skin3
559
	stdcall [buf2d_delete],buf_skin3
525
	stdcall [ted_delete], tedit0
560
	stdcall [ted_delete], tedit0
526
	mcall -1
561
	mcall -1
Line 527... Line 562...
527
 
562
 
528
align 4
563
align 4
529
but_open:
564
but_open_proj:
530
	pushad
565
	pushad
531
	mov eax,70
566
	mov eax,70
532
	mov [run_file_70.Function], 0
567
	mov [run_file_70.Function], 0
533
	mov [run_file_70.Position], 0
568
	mov [run_file_70.Position], 0
Line 577... Line 612...
577
	.open_end:
612
	.open_end:
578
	call draw_window ;¯¥à¥à¨á®¢ª  ®ª­  ¨¤¥â ¢ «î¡®¬ á«ãç ¥, ¤ ¦¥ ¥á«¨ ä ©« ­¥ ®âªàë«áï
613
	call draw_window ;¯¥à¥à¨á®¢ª  ®ª­  ¨¤¥â ¢ «î¡®¬ á«ãç ¥, ¤ ¦¥ ¥á«¨ ä ©« ­¥ ®âªàë«áï
579
	popad
614
	popad
580
	ret
615
	ret
Line -... Line 616...
-
 
616
 
-
 
617
;á®åà ­¥­¨¥ ä ©«  ¯à®íªâ  ­  ¤¨áª
-
 
618
align 4
-
 
619
but_save_proj:
-
 
620
	pushad
-
 
621
 
-
 
622
	mov edi,ced_info
-
 
623
 
-
 
624
	stdcall [tl_node_poi_get_info], 0,tree2
-
 
625
	pop edx
-
 
626
	@@:
-
 
627
		cmp edx,0
-
 
628
		je @f
-
 
629
		stdcall [tl_node_poi_get_data], edx,tree2
-
 
630
		pop esi ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
-
 
631
 
-
 
632
		mov bl,byte[edx+2] ;bl - ã஢¥­ì ®¡ê¥ªâ 
-
 
633
		mov byte[esi+1+MAX_LEN_OBJ_TXT],bl
-
 
634
 
-
 
635
		;¢ëç¨á«ï¥¬ ­®¢ë© ¨­¤¥ªá ¤«ï ⨯  ®¡ê¥ªâ 
-
 
636
		mov ebx,[esi+3+8+MAX_LEN_OBJ_TXT] ;ebx - ⨯ ®¡ê¥ªâ 
-
 
637
		;á®å࠭塞 ⨯ ®¡ê¥ªâ 
-
 
638
		push ebx
-
 
639
			imul ebx,sizeof.TreeList
-
 
640
			add ebx,[tree2.data_nodes] ;ebx - 㪠§ â¥«ì ®¡ê¥ªâ 㪠§ë¢ î騩 ⨯
-
 
641
			stdcall get_obj_npp,ebx
-
 
642
			mov [esi+3+8+MAX_LEN_OBJ_TXT],eax
-
 
643
			mov eax,esi
-
 
644
 
-
 
645
			;ª®¯¨à㥬 ®¡ê¥ªâ ¢ ¯ ¬ïâì ¤«ï á®åà ­¥­¨ï
-
 
646
			xor ecx,ecx
-
 
647
			mov cx,word[tree2.info_size]
-
 
648
			cld
-
 
649
			rep movsb
-
 
650
		;¢®ááâ ­ ¢«¨¢ ¥¬ ⨯ ®¡ê¥ªâ 
-
 
651
		pop dword[eax+3+8+MAX_LEN_OBJ_TXT]
-
 
652
 
-
 
653
		stdcall [tl_node_poi_get_next_info], edx,tree2
-
 
654
		pop edx ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
-
 
655
		jmp @b
-
 
656
	@@:
-
 
657
	mov byte[edi],0
-
 
658
	inc edi
-
 
659
	mov ecx,edi
-
 
660
	sub ecx,ced_info ;ecx - à §¬¥à á®å࠭塞®£® ä ©«        
-
 
661
 
-
 
662
	mov eax,70
-
 
663
	mov [run_file_70.Function], 2
-
 
664
	mov [run_file_70.Position], 0
-
 
665
	mov [run_file_70.Flags], 0
-
 
666
	mov [run_file_70.Count], ecx
-
 
667
	mov [run_file_70.Buffer], ced_info
-
 
668
	mov [run_file_70.rezerv], 0
-
 
669
	push [edit1.text]
-
 
670
	pop [run_file_70.FileName]
-
 
671
	mov ebx,run_file_70
-
 
672
	int 0x40
-
 
673
 
-
 
674
	popad
-
 
675
	ret
-
 
676
 
-
 
677
;¡¥à¥â ­®¬¥à ¯® ¯®à浪㠯® 㪠§ â¥«î ­  áâàãªâãàã ®¡ê¥ªâ 
-
 
678
align 4
-
 
679
proc get_obj_npp, p_obj_str:dword
-
 
680
	mov eax,2
-
 
681
	push ebx edx
-
 
682
	mov ebx,[p_obj_str]
-
 
683
 
-
 
684
	stdcall [tl_node_poi_get_info], 0,tree2
-
 
685
	pop edx
-
 
686
	@@:
-
 
687
		cmp edx,0
-
 
688
		je @f
-
 
689
		cmp edx,ebx
-
 
690
		je @f
-
 
691
 
-
 
692
		inc eax
-
 
693
		stdcall [tl_node_poi_get_next_info], edx,tree2
-
 
694
		pop edx ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
-
 
695
		jmp @b
-
 
696
	@@:
-
 
697
	pop edx ebx
-
 
698
	ret
-
 
699
endp
581
 
700
 
582
;äã­ªæ¨ï ¤«ï á®åà ­¥­¨ï ᮧ¤ ­­®£® asm ä ©« 
701
;äã­ªæ¨ï ¤«ï á®åà ­¥­¨ï ᮧ¤ ­­®£® asm ä ©« 
583
align 4
702
align 4
584
but_save_asm:
703
but_save_asm:
585
	;stdcall [ted_but_save_file], tedit0,run_file_70,[edit_sav.text]
704
	;stdcall [ted_but_save_file], tedit0,run_file_70,[edit_sav.text]
Line 747... Line 866...
747
	dd SKIN_H ;+12 h
866
	dd SKIN_H ;+12 h
748
	dd 0 ;+16 color
867
	dd 0 ;+16 color
749
	db 24 ;+20 bit in pixel
868
	db 24 ;+20 bit in pixel
Line 750... Line 869...
750
 
869
 
751
show_mode db 0 ;०¨¬ ¤«ï ¯®ª §  ®¯à¥¤¥«¥­­®£® ®ª­ 
870
show_mode db 0 ;०¨¬ ¤«ï ¯®ª §  ®¯à¥¤¥«¥­­®£® ®ª­ 
752
txtOpen db 'Žâªàëâì',0
871
txtOpen db 'Žâ',0
753
txtErrOpen db '¥ ­ ©¤¥­ ä ©«, ¯à®¢¥àì⥠¯à ¢¨«ì­®áâì ¨¬¥­¨',0
872
txtErrOpen db '¥ ­ ©¤¥­ ä ©«, ¯à®¢¥àì⥠¯à ¢¨«ì­®áâì ¨¬¥­¨',0
754
txtErrIni1 db '¥ ®âªàë«áï ä ©« á ®¯æ¨ï¬¨',0
873
txtErrIni1 db '¥ ®âªàë«áï ä ©« á ®¯æ¨ï¬¨',0
755
err_opn db 0
874
err_opn db 0
756
err_ini0 db 0 ;???
875
err_ini0 db 0 ;???
Line 757... Line 876...
757
err_ini1 db 0
876
err_ini1 db 0
Line 758... Line 877...
758
 
877
 
759
edit1 edit_box 210, 10, 10, 0xffffff, 0xff80, 0xff, 0xff0000, 0x4080, 300, ed_text1, mouse_dd, 0, 7, 7
878
edit1 edit_box 210, 10, 5, 0xffffff, 0xff80, 0xff, 0xff0000, 0x4080, 300, ed_text1, mouse_dd, 0, 7, 7
760
 
879
 
761
edit2 edit_box 115, 32, 20, 0xffffff, 0x80ff, 0xff, 0x808080, 0, MAX_LEN_OBJ_TXT, ed_text2, mouse_dd, 0
880
edit2 edit_box 115, 32, 20, 0xffffff, 0x80ff, 0xff, 0x808080, 0, MAX_LEN_OBJ_TXT, ed_text2, mouse_dd, 0
Line 1123... Line 1242...
1123
	tl_info_redo dd sz_tl_info_redo
1242
	tl_info_redo dd sz_tl_info_redo
1124
	tl_node_add dd sz_tl_node_add
1243
	tl_node_add dd sz_tl_node_add
1125
	tl_node_set_data dd sz_tl_node_set_data
1244
	tl_node_set_data dd sz_tl_node_set_data
1126
	tl_node_get_data dd sz_tl_node_get_data
1245
	tl_node_get_data dd sz_tl_node_get_data
1127
	tl_node_delete dd sz_tl_node_delete
1246
	tl_node_delete dd sz_tl_node_delete
-
 
1247
	tl_node_move_up dd sz_tl_node_move_up
-
 
1248
	tl_node_move_down dd sz_tl_node_move_down
1128
	tl_cur_beg dd sz_tl_cur_beg
1249
	tl_cur_beg dd sz_tl_cur_beg
1129
	tl_cur_next dd sz_tl_cur_next
1250
	tl_cur_next dd sz_tl_cur_next
1130
	tl_cur_perv dd sz_tl_cur_perv
1251
	tl_cur_perv dd sz_tl_cur_perv
1131
	tl_node_close_open dd sz_tl_node_close_open
1252
	tl_node_close_open dd sz_tl_node_close_open
1132
	tl_node_lev_inc dd sz_tl_node_lev_inc
1253
	tl_node_lev_inc dd sz_tl_node_lev_inc
Line 1183... Line 1304...
1183
	sz_tl_info_redo db 'tl_info_redo',0
1304
	sz_tl_info_redo db 'tl_info_redo',0
1184
	sz_tl_node_add db 'tl_node_add',0
1305
	sz_tl_node_add db 'tl_node_add',0
1185
	sz_tl_node_set_data db 'tl_node_set_data',0
1306
	sz_tl_node_set_data db 'tl_node_set_data',0
1186
	sz_tl_node_get_data db 'tl_node_get_data',0
1307
	sz_tl_node_get_data db 'tl_node_get_data',0
1187
	sz_tl_node_delete db 'tl_node_delete',0
1308
	sz_tl_node_delete db 'tl_node_delete',0
-
 
1309
	sz_tl_node_move_up db 'tl_node_move_up',0
-
 
1310
	sz_tl_node_move_down db 'tl_node_move_down',0
1188
	sz_tl_cur_beg db 'tl_cur_beg',0
1311
	sz_tl_cur_beg db 'tl_cur_beg',0
1189
	sz_tl_cur_next db 'tl_cur_next',0
1312
	sz_tl_cur_next db 'tl_cur_next',0
1190
	sz_tl_cur_perv db 'tl_cur_perv',0
1313
	sz_tl_cur_perv db 'tl_cur_perv',0
1191
	sz_tl_node_close_open db 'tl_node_close_open',0
1314
	sz_tl_node_close_open db 'tl_node_close_open',0
1192
	sz_tl_node_lev_inc db 'tl_node_lev_inc',0
1315
	sz_tl_node_lev_inc db 'tl_node_lev_inc',0