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 ;¡ãä¥à ¯ãáâ |