Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 1401 → Rev 1402

/programs/develop/libraries/box_lib/trunk/tree_list.mac
1,6 → 1,6
; ìàêðîñ äëÿ ñèñòåìíîé áèáëèîòåêè box_lib.obj
; ýëåìåíò TreeList äëÿ Kolibri OS
; ôàéë ïîñëåäíèé ðàç èçìåíÿëñÿ 09.02.2010 IgorA
; ôàéë ïîñëåäíèé ðàç èçìåíÿëñÿ 10.02.2010 IgorA
; íà êîä ïðèìåíåíà GPL2 ëèöåíçèÿ
 
 
681,7 → 681,7
;output:
; edx = pointer to next node struct
align 4
tl_iterat_next:
tl_iterat_next: ;ïåðåõîä íà ñëåäóùèé âèäèìûé óçåë (ïðîïóñêàÿ çàêðûòûå)
push bx
mov bl,0x7f
cmp byte[edx+3],1
724,7 → 724,7
; edx = pointer to some node struct
; edi = pointer to 'TreeList' struct
align 4
tl_iterat_next_all:
tl_iterat_next_all: ;ïåðåõîä íà ñëåäóùèé âèäèìûé óçåë (è íà çàêðûòûå òîæå)
cmp tl_tim_undo,0
je .else
 
753,7 → 753,7
; edx = pointer to some node struct
; edi = pointer to 'TreeList' struct
align 4
tl_iterat_perv:
tl_iterat_perv: ;ïåðåõîä íà ïðåäûäóùèé âèäèìûé óçåë (ïðîïóñêàÿ çàêðûòûå)
push eax
cmp tl_tim_undo,0
je .beg1
865,7 → 865,7
; al = 1 if sumbol not visible
; (node[i].td+tim_Undo<=ch_tim && node[i].td) || (node[i].tc>ch_tim-tim_Undo)
align 4
tl_node_not_vis:
tl_node_not_vis: ;ïðîâåðÿåò âèäèìûé ëè óêàçàííûé óçåë ñ ó÷åòîì: äîáàâëåíèé, óäàëåíèé, îòìåí äåéñòâèé
cmp dword[edx+16],0
je @f
mov eax,dword[edx+16] ;eax=node[i].td
1027,7 → 1027,7
; edi = pointer to 'TreeList' struct
; esi = coord of bottom border
align 4
tl_draw_node:
tl_draw_node: ;ðèñóåò óçåë ñ: êàðòèíêîé, ïîäïèñüþ, èêîíêîé îòêðûòèÿ/çàêðûòèÿ è ëèíèÿìè ê ðîäèò. óçëó
push eax ebx ecx edx esi
 
mov ebx,1 ;1 - ìåñòî ïîä êóðñîð è ïîä çíàê +,-
1101,11 → 1101,11
dec ah
.close:
 
call tl_draw_node_icon_opn_clo
call tl_draw_node_icon_opn_clo ;ðèñîâàíèå èêîíêè îòêðûòîãî èëè çàêðûòîãî óçëà
bt tl_style,1
jae .end_draw
call tl_draw_node_icon_par_lin
call tl_draw_node_icon_par_lin_up
call tl_draw_node_icon_par_lin ;ðèñîâàíèå ëèíèè ê ðîäèòåëüñêîìó ýëåìåíòó
call tl_draw_node_icon_par_lin_up ;ðèñîâàíèå âåðòèêàëüíîé ëèíèè ê ðîäèòåëüñêîìó ýëåìåíòó
.end_draw:
pop esi edx ecx ebx eax
ret
1159,7 → 1159,7
; edx = pointer to some node struct
;...
align 4
tl_draw_node_icon_par_lin:
tl_draw_node_icon_par_lin: ;ðèñîâàíèå ëèíèè ê ðîäèòåëüñêîìó ýëåìåíòó
cmp byte[edx+3],1
je .close
push eax ebx ecx edx esi
2023,9 → 2023,12
mov edx,eax
call tl_iterat_perv ;ïðîâåðÿåì åñòü ëè âåðõíèé óçåë
cmp edx,ecx
jle @f ;åñëè âåðõíåãî óçëà íå òî òåêóùèé óçåë íå äâèãàåì
 
inc word[eax+2]
jle @f ;åñëè âåðõíåãî óçëà íåò òî òåêóùèé óçåë íå äâèãàåì
mov cl,byte[edx+2] ;áåðåì óðîâåíü ðîäèòåëüñêîãî óçëà
inc cl ;äîáàâëÿåì 1 è ïîëó÷àåì ìàêñèìàëüíîå çíà÷åíèå
cmp byte[eax+2],cl
jge @f
inc byte[eax+2] ;óâåëè÷èâàåì çíà÷åíèå óçëà
@@:
pop edi edx ecx eax
pop ebp
2042,9 → 2045,9
jl @f
imul eax,sizeof.TreeList
add eax,tl_data_nodes
cmp word[eax+2],0
cmp byte[eax+2],0
je @f
dec word[eax+2]
dec byte[eax+2]
@@:
pop edi eax
pop ebp
2258,7 → 2261,7
jg .err_mem_size
 
;save tree params (in header)
mov dword[esi],0x65657274 ;0x65657274 = 'tree'
mov dword[esi],'tree'
mov word[esi+4],bx
mov dword[esi+6],eax ;element count