Subversion Repositories Kolibri OS

Rev

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

Rev 3903 Rev 4228
Line 1... Line 1...
1
; ¬ ªà®á ¤«ï á¨á⥬­®© ¡¨¡«¨®â¥ª¨ box_lib.obj
1
; ¬ ªà®á ¤«ï á¨á⥬­®© ¡¨¡«¨®â¥ª¨ box_lib.obj
2
; í«¥¬¥­â TextEditor ¤«ï Kolibri OS
2
; í«¥¬¥­â TextEditor ¤«ï Kolibri OS
3
; ä ©« ¯®á«¥¤­¨© à § ¨§¬¥­ï«áï 20.06.2012 IgorA
3
; ä ©« ¯®á«¥¤­¨© à § ¨§¬¥­ï«áï 13.11.2013 IgorA
4
; ­  ª®¤ ¯à¨¬¥­¥­  GPL2 «¨æ¥­§¨ï
4
; ­  ª®¤ ¯à¨¬¥­¥­  GPL2 «¨æ¥­§¨ï
Line 5... Line 5...
5
 
5
 
6
;input:
6
;input:
7
; edi = pointer to tedit struct
7
; edi = pointer to tedit struct
Line 2510... Line 2510...
2510
	mov esi,ted_seln_x0
2510
	mov esi,ted_seln_x0
2511
	mov ecx,ted_seln_y0
2511
	mov ecx,ted_seln_y0
2512
	call ted_get_pos_by_coords
2512
	call ted_get_pos_by_coords
2513
	mov esi,ebx
2513
	mov esi,ebx
Line 2514... Line 2514...
2514
 
2514
 
2515
	xor ecx,ecx
2515
	mov ecx,12 ;system buffer header size
-
 
2516
	mov ebx,ted_buffer
-
 
2517
	mov dword[ebx+4],0 ;text data
2516
	mov ebx,ted_buffer
2518
	mov dword[ebx+8],1 ;code 866
2517
	;mov edx,ted_tex
2519
	add ebx,ecx
2518
	@@:
2520
	@@:
2519
		cmp edx,ted_tex_1 ;end of file
2521
		cmp edx,ted_tex_1 ;end of file
2520
		jle @f
2522
		jle @f
2521
		cmp edx,esi ;end of select
2523
		cmp edx,esi ;end of select
Line 2534... Line 2536...
2534
	add ecx,ted_buffer
2536
	add ecx,ted_buffer
2535
	mov byte[ebx],0
2537
	mov byte[ebx],0
Line 2536... Line 2538...
2536
 
2538
 
2537
	cmp ecx,0
2539
	cmp ecx,0
-
 
2540
	je .end_f
-
 
2541
		mov ebx,ted_buffer
-
 
2542
		mov eax,ted_buffer_size
-
 
2543
		mov dword[ebx],eax
2538
	je .end_f
2544
		mcall 54,2,ted_buffer_size,ted_buffer
2539
		call ted_draw_buffer
2545
		call ted_draw_buffer
2540
		cmp ted_fun_draw_panel_buttons,0
2546
		cmp ted_fun_draw_panel_buttons,0
2541
		je .end_f
2547
		je .end_f
2542
			call ted_fun_draw_panel_buttons
2548
			call ted_fun_draw_panel_buttons
Line 2546... Line 2552...
2546
endp
2552
endp
Line 2547... Line 2553...
2547
 
2553
 
2548
 
2554
 
2549
align 4
2555
align 4
2550
proc ted_but_paste, edit:dword
2556
proc ted_but_paste, edit:dword
Line -... Line 2557...
-
 
2557
	pushad
-
 
2558
	mov edi,dword[edit]
-
 
2559
 
-
 
2560
	mcall 54,0
-
 
2561
	cmp eax,1
-
 
2562
	jl .no_buf_r
-
 
2563
 
-
 
2564
	mov esi,eax
-
 
2565
	.cycle: ;®¡à â­ë© 横« ¯® ᫮⠬
-
 
2566
	dec esi ;­®¬¥à ⥪ã饣®, ¯à®¢¥à塞®£® á«®â 
-
 
2567
	mcall 54,1,esi ;read system buffer
-
 
2568
	cmp eax,1
-
 
2569
	je .no_buf_r
-
 
2570
	cmp eax,-1
-
 
2571
	je .no_buf_r
-
 
2572
		mov ecx,dword[eax]
-
 
2573
		cmp ecx,1 ;size
-
 
2574
		jl .no_buf_r
-
 
2575
		cmp dword[eax+4],0 ;text
-
 
2576
		je @f
-
 
2577
			cmp esi,1
-
 
2578
			jge .cycle ;¥á«¨ ¢ ¡ãä¥à¥ ­¥ ⥪áâ,   ᫮⮢ ¢ ¡ãä¥à¥ ­¥áª®«ìª®, ¯à®¡ã¥¬ ¯¥à¥©â¨ ª ¢¥àå­¥¬ã á«®âã
-
 
2579
			jmp .no_buf_r
-
 
2580
		@@:
-
 
2581
		cmp dword[eax+8],1 ;866
-
 
2582
		je @f
-
 
2583
			cmp esi,1
-
 
2584
			jge .cycle ;¥á«¨ ¢ ¡ãä¥à¥ ⥪áâ ­¥ ¢ ª®¤¨à®¢ª¥ 866 ... ¯à®¡ã¥¬ ¯¥à¥©â¨ ª ¢¥àå­¥¬ã á«®âã
-
 
2585
			jmp .no_buf_r
-
 
2586
		@@:
-
 
2587
		;ª®¯¨à®¢ ­¨¥ ⥪áâ  ¨§ á¨á⥬­®£® ¡ãä¥à  ¢® ¢­ãâ७­¨©
-
 
2588
		cmp ecx,ted_buffer_size
-
 
2589
		jle @f
-
 
2590
			mov ecx,ted_buffer_size
-
 
2591
		@@:
-
 
2592
		mov edi,ted_buffer
-
 
2593
		mov esi,eax
-
 
2594
		add	esi,4 ;12
-
 
2595
		mov dword[edi],ecx
-
 
2596
		add edi,4 ;12
-
 
2597
		sub ecx,4 ;12
-
 
2598
		rep movsb
-
 
2599
		mov edi,dword[edit]
-
 
2600
 
-
 
2601
		mov esi,eax
-
 
2602
		add	esi,12
-
 
2603
		jmp .buf_r
2551
	push eax ebx esi edi
2604
	.no_buf_r:
-
 
2605
		
-
 
2606
	;¥á«¨ ­¥ 㤠«®áì ¯à®ç¨â âì ¤ ­­ë¥ ¨§ á¨á⥬­®£® ¡ãä¥à , ¯®¯ ¤ ¥¬ á
-
 
2607
	mov esi,ted_buffer
-
 
2608
	cmp dword[esi],1 ;¯à®¢¥à塞 ¥áâì «¨ ¤ ­­ë¥ ¢® ¢­ãâ७­¥¬ ¡ãä¥à¥
-
 
2609
	jl .no_paste ;¥á«¨ ¢®®¡é¥ ­¨ç¥£® ­¥ 㤠«®áì ¯à®ç¨â âì ¨¤¥¬ ­  ¢ë室
-
 
2610
	add esi,12 ;system buffer header size
2552
	mov edi,dword[edit]
2611
	.buf_r:
2553
 
2612
	
2554
	mov esi,ted_buffer
2613
	mov edx,esi
2555
	call tl_strlen
2614
	call tl_strlen
2556
	cmp eax,1
2615
	cmp eax,1
2557
	jl @f
2616
	jl .no_paste
2558
		mov esi,eax
2617
		mov esi,eax
2559
		call ted_set_undo
2618
		call ted_set_undo
2560
		mov ebx,ted_opt_ed_change_time+ted_opt_ed_move_cursor
2619
		mov ebx,ted_opt_ed_change_time+ted_opt_ed_move_cursor
2561
		stdcall ted_sel_text_del,ebx
2620
		stdcall ted_sel_text_del,ebx
2562
		cmp al,1
2621
		cmp al,1
2563
		jne .del
2622
		jne .del
2564
			mov ebx,ted_opt_ed_move_cursor
2623
			mov ebx,ted_opt_ed_move_cursor
2565
		.del:
2624
		.del:
2566
		stdcall ted_text_add,edi,ted_buffer,esi,ebx
2625
		stdcall ted_text_add,edi,edx,esi,ebx
2567
		stdcall ted_draw,edi
2626
		stdcall ted_draw,edi
2568
		cmp ted_fun_draw_panel_buttons,0
2627
		cmp ted_fun_draw_panel_buttons,0
2569
		je @f
2628
		je .no_paste
2570
			call ted_fun_draw_panel_buttons
2629
			call ted_fun_draw_panel_buttons
2571
	@@:
2630
	.no_paste:
Line 2572... Line 2631...
2572
	pop edi esi ebx eax
2631
	popad
2573
	ret
2632
	ret
Line 3247... Line 3306...
3247
; edi = pointer to tedit struct
3306
; edi = pointer to tedit struct
3248
proc ted_draw_buffer
3307
proc ted_draw_buffer
3249
	pushad
3308
	pushad
Line 3250... Line 3309...
3250
 
3309
 
3251
	mov eax,ted_buffer
3310
	mov eax,ted_buffer
3252
	cmp byte[eax],0 ;ᬮâਬ 1-© ᨬ¢®« ¨§ ¡ãä¥à 
3311
	cmp dword[eax],1 ;ᬮâਬ à §¬¥à ¡ãä¥à 
3253
	je @f
3312
	jl @f
3254
		mov ebx,ted_rec_l
3313
		mov ebx,ted_rec_l
3255
		add bx,300
3314
		add bx,300
3256
		cmp ebx,ted_wnd_w ;áà ¢­¨¢ ¥¬ ª®®à¤¨­ âã ¤«ï ¢ë¢®¤ ⥪áâ 
3315
		cmp ebx,ted_wnd_w ;áà ¢­¨¢ ¥¬ ª®®à¤¨­ âã ¤«ï ¢ë¢®¤ ⥪áâ 
Line 3262... Line 3321...
3262
		add ebx,3
3321
		add ebx,3
3263
		mov ecx,ted_color_wnd_bord
3322
		mov ecx,ted_color_wnd_bord
3264
		or ecx,0x40000000
3323
		or ecx,0x40000000
Line 3265... Line 3324...
3265
 
3324
 
-
 
3325
		mov edx,ted_buffer
3266
		mov edx,ted_buffer
3326
		add edx,12
3267
		mov esi,edx
3327
		mov esi,edx
3268
		mov edi,ted_color_wnd_work ;edi - destroy not pointer to tedit
3328
		mov edi,ted_color_wnd_work ;edi - destroy not pointer to tedit
3269
		call tl_strlen
3329
		call tl_strlen
3270
		;cmp eax,0 ;¡ãä¥à ¯ãáâ
3330
		;cmp eax,0 ;¡ãä¥à ¯ãáâ