1,6 → 1,6 |
; ìàêðîñ äëÿ ñèñòåìíîé áèáëèîòåêè box_lib.obj |
; ýëåìåíò TreeList äëÿ Kolibri OS |
; ôàéë ïîñëåäíèé ðàç èçìåíÿëñÿ 23.12.2009 IgorA |
; ôàéë ïîñëåäíèé ðàç èçìåíÿëñÿ 05.02.2010 IgorA |
; íà êîä ïðèìåíåíà GPL2 ëèöåíçèÿ |
|
|
317,17 → 317,10 |
tl_mouse: ;ðåàêöèÿ íà ìûøü |
push ebp |
mov ebp,esp |
push eax ebx ecx edx edi esi |
pushad |
mov edi,dword[ebp+8] |
|
mov eax,37 |
mov ebx,2 |
int 0x40 |
|
bt eax,0 ;left mouse button press |
jae .no_draw |
|
mov eax,37 |
mov ebx,1 |
int 0x40 |
|
334,24 → 327,34 |
mov ebx,tl_box_left |
shl ebx,16 |
cmp eax,ebx ;ëåâàÿ ãðàíèöà îêíà |
jl .no_in_wnd |
jl .test_scroll |
|
mov ebx,tl_box_left |
add ebx,tl_box_width |
shl ebx,16 |
cmp eax,ebx ;ïðàâàÿ ãðàíèöà îêíà |
jg .test_scroll ;.no_in_wnd |
jg .test_scroll |
|
mov ebx,tl_box_top |
add ebx,tl_box_height |
cmp ax,bx ;íèæíÿÿ ãðàíèöà îêíà |
jg .no_in_wnd |
jg .test_scroll |
|
sub ebx,tl_box_height |
add bx,tl_capt_cy |
cmp ax,bx ;âåðõíÿÿ ãðàíèöà îêíà + âûñîòà ïîäïèñè |
jl .no_in_wnd |
jl .test_scroll |
|
push eax ebx |
mov eax,37 |
mov ebx,2 |
int 0x40 |
|
bt eax,0 ;left mouse button press |
pop ebx eax |
jae .no_draw |
|
|
mov esi,tl_el_focus |
mov dword[esi],edi ;set focus |
|
447,6 → 450,12 |
jne .no_draw ;ïîïàëè íà ñêðîëëèíã - íå ñíèìàåì ôîêóñ ñ TreeList |
;------------------------------------------------------------------------------- |
.no_in_wnd: ;íå ïîïàëè â îêíî - ïîòåðÿ ôîêóñà (ïðè óñëîâèè ÷òî ôîêóñ áûë íà äàííîì ýåëåìåíòå) |
mov eax,37 ;ïðîâåðÿåì íàæàòîñòü ëþáûõ êíîïîê |
mov ebx,2 |
int 0x40 |
cmp eax,0 ;íè÷å íå íàæàëè eax=0 |
je .no_draw |
|
mov ebx,tl_el_focus |
cmp dword[ebx],edi |
jne .no_draw ;ýëåìåíò íå â ôîêóñå |
456,7 → 465,7 |
call tl_draw_cursor ;ðèñóåì êóðñîð ñ ïîòåðÿíûì ôîêóñîì |
.no_draw: |
|
pop esi edi edx ecx ebx eax |
popad |
pop ebp |
ret 4 |
|
653,6 → 662,13 |
@@: |
|
call tl_draw_cursor |
|
mov edi,tl_p_scrol ;ðèñóåì äî÷åðíèé ñêðîëëèíã |
cmp edi,0 ;äëÿ òîãî ÷òî-áû åãî íå ïðèøëîñü ðèñîâàòü â ïîëüçîâàòåëüñêîé ïðîãðàììå |
je .end_draw ;åñëè íåò ñêðîëëèíãà âûõîäèì |
push dword edi |
call scroll_bar_vertical.draw |
|
.end_draw: |
pop esi edi edx ecx ebx eax |
pop ebp |
2330,7 → 2346,7 |
; pop ebx |
; add esi,ebx |
.beg_cycle: |
cmp dword[esi],0x65657274 ;0x65657274 = 'tree' |
cmp dword[esi],'tree' |
jne .no_tree |
xor ebx,ebx |
mov bx,word[esi+4] |
2341,7 → 2357,7 |
loop .beg_cycle |
@@: |
|
cmp dword[esi],0x65657274 ;0x65657274 = 'tree' |
cmp dword[esi],'tree' |
jne .no_tree |
bt word[ebp+18],1 ;load in add mode |
jc @f |
2410,7 → 2426,7 |
mov esi,dword[ebp+ 8] |
mov edi,dword[ebp+12] |
@@: |
cmp dword[esi],0x65657274 ;0x65657274 = 'tree' |
cmp dword[esi],'tree' |
jne @f |
xor ebx,ebx |
mov bx,word[esi+4] |