From c44423f7ecca7da6e7c7d62d58a6b27c236c62a0 Mon Sep 17 00:00:00 2001
From: IgorA <IgorA@kolibrios.org>
Date: Mon, 23 Nov 2009 09:33:00 +0000
Subject: [PATCH] update functions: tl_mouse, tl_node_add update documentation

git-svn-id: svn://kolibrios.org@1283 a494cfbc-eb01-0410-851d-a64ba20cac60
---
 .../libraries/box_lib/trunk/tree_list.mac     | 194 ++++++++----------
 .../trunk/tree_list_doc/info_treelist.htm     |  52 +++--
 2 files changed, 128 insertions(+), 118 deletions(-)

diff --git a/programs/develop/libraries/box_lib/trunk/tree_list.mac b/programs/develop/libraries/box_lib/trunk/tree_list.mac
index e05c57dff9..90f435b1fe 100644
--- a/programs/develop/libraries/box_lib/trunk/tree_list.mac
+++ b/programs/develop/libraries/box_lib/trunk/tree_list.mac
@@ -1,12 +1,23 @@
 ; ������ ��� ��������� ���������� box_lib.obj
 ; ������� TreeList ��� Kolibri OS
-; ���� ��������� ��� ��������� 20.11.2009 IgorA
+; ���� ��������� ��� ��������� 23.11.2009 IgorA
 ; �� ��� ��������� GPL2 ��������
 
 
 sizeof.TreeList equ 20
+;struct TreeList
+;  type dw ? ;+ 0 ��� ��������, ��� ������ ������ ��� ����
+;  lev db ?  ;+ 2 ������� ��������
+;  clo db ?  ;+ 3 ���� ��������, ��� �������� (����� ����� ��� ������������� ����)
+;  perv dd ? ;+ 4 ������ ����������� ��������
+;  next dd ? ;+ 8 ������ ������������ ��������
+;  tc dd ?   ;+12 ����. ��������
+;  td dd ?   ;+16 ����. ��������
+;ends
 
+tl_info_size  equ  word[edi +4] ;������ ������ ���������� ��� ������� ���� (����������������� ������ + ����� ��� �������)
 tl_style      equ dword[edi+10] ;����� ��������
+tl_data_nodes equ dword[edi+14] ;��������� �� ��������� �����
 tl_img_cx     equ  word[edi+22] ;������ ������
 tl_img_cy     equ  word[edi+24] ;������ ������
 tl_data_img_sys equ dword[edi+26] ;��������� �� ��������� ����������� (�������, �������)
@@ -21,7 +32,7 @@ tl_box_top    equ dword[edi+62]
 tl_box_width  equ dword[edi+66]
 tl_box_height equ dword[edi+70]
 tl_capt_cy    equ  word[edi+74] ;������ �������
-tl_info_capt_offs equ dword[edi+76]
+tl_info_capt_offs equ dword[edi+76] ;����� ��� ������ ������ (������� ����)
 tl_el_focus   equ dword[edi+80] ;��������� �� ��������� �������� � ������
 tl_p_scrol    equ dword[edi+84] ;��������� �� ��������� ����������
 tl_sb_draw    equ dword[edi+88] ;��������� �� ������� ���������������� ���������
@@ -32,49 +43,15 @@ tl_key_no_edit   equ   1b ;
 tl_draw_par_line equ  10b ;�������� ����� � ������������� ����
 tl_list_box_mode equ 100b ;����� �� ���������� ������ (��� � ListBox ��� ������ ������)
 
-macro use_tree_list_structs
-{
-struct TreeInfo
-  data_info	 dd ? ;+ 0 ��������� �� �������� �����
-  info_size	 dw ? ;+ 4 ������ �������������� ��������� (����������������� ������ + ����� ��� �������)
-  info_max_count dd ? ;+ 6 ������������ ����������� ��������
-  style 	 dd ? ;+10 ����� ��������
-  data_nodes	 dd ? ;+14 ��������� �� ��������� �����
-  data_img	 dd ? ;+18 ��������� �� �����������
-  img_cx	 dw ? ;+22 ������ ������
-  img_cy	 dw ? ;+24 ������ ������
-  data_img_sys dd ? ;+26 ��������� �� ��������� ����������� (�������, �������)
-  ch_tim		dd ? ;+30 ���������� ��������� � �����
-  ls_tim		dd ? ;+34 ����� ���������� ����������
-  tim_undo	 dd ? ;+38 ���������� ���������� ��������
-  cur_pos	 dd ? ;+42 ������� �������
-  col_bkg	 dd ? ;+46 ���� ����
-  col_zag	 dd ? ;+50 ���� ���������
-  col_txt	 dd ? ;+54 ���� ������
-  wndMain	BOX ? ;+58 ������ ���� ��� ������
-  capt_cy	 dw ? ;+74 ������ �������
-  info_capt_offs dd ? ;+76 ����� ��� ������ ������ (������� ����)
-  el_focus dd ? ;+80 ��������� �� ��������� �������� � ������
-  p_scrol dd ?  ;+84 ��������� �� ��������� ����������
-  sb_draw dd ?  ;+88 ��������� �� ������� ���������������� ���������
-  on_activate dd ? ;+92 ��������� �� ������� ��� ������������� ����
-  on_press dd ? ;+96 ��������� �� ������� ��� ������� Enter
-ends
-
-struct TreeList
-  type dw ? ;+ 0 ��� ��������, ��� ������ ������ ��� ����
-  lev db ?  ;+ 2 ������� ��������
-  clo db ?  ;+ 3 ���� ��������, ��� �������� (����� ����� ��� ������������� ����)
-  perv dd ? ;+ 4 ������ ����������� ��������
-  next dd ? ;+ 8 ������ ������������ ��������
-  tc dd ?   ;+12 ����. ��������
-  td dd ?   ;+16 ����. ��������
-ends
-}
+;data_info	 dd ? ;+ 0 ��������� �� �������� �����
+;info_max_count dd ? ;+ 6 ������������ ����������� ��������
+;data_img	 dd ? ;+18 ��������� �� �����������
+;ls_tim		dd ? ;+34 ����� ���������� ����������
+;on_activate dd ? ;+92 ��������� �� ������� ��� ������������� ����
 
 struc tree_list info_size,info_max_count,style, img_cx,img_cy,\
     col_bkg,col_zag,col_txt, box_l,box_t,box_w,box_h, capt_cy,info_capt_offs,\
-    el_focus, p_scrol,p_sb_draw,fun_enter {
+    el_focus, p_scrol,p_sb_draw,on_press {
   .data_info	dd 0
   .info_size	dw info_size
   .info_max_count dd info_max_count
@@ -101,7 +78,7 @@ struc tree_list info_size,info_max_count,style, img_cx,img_cy,\
   .p_scrol  dd p_scrol
   .p_sb_draw dd p_sb_draw
   .on_activate dd 0
-  .on_press dd fun_enter
+  .on_press dd on_press
 }
 
 ;-----------------------------------------------------------------------------
@@ -144,7 +121,7 @@ tl_data_init: ;
     mov edi,dword[ebp+8]
 
     xor ecx,ecx
-    mov cx,word[edi+4]
+    mov cx,tl_info_size
     imul ecx,dword[edi+6]
     call mem_Alloc
     mov dword[edi],eax ;�������� ��������� �� ��������� ������ � ���������
@@ -154,7 +131,7 @@ tl_data_init: ;
     mov ecx,sizeof.TreeList
     imul ecx,dword[edi+6]
     call mem_Alloc
-    mov dword[edi+14],eax ;�������� ��������� �� ��������� ������ � ���������
+    mov tl_data_nodes,eax ;�������� ��������� �� ��������� ������ � ���������
 
     push dword edi
     call tl_info_clear
@@ -202,7 +179,7 @@ tl_data_clear: ;
     mov ecx,dword[edi]
     call mem_Free
 
-    mov ecx,dword[edi+14]
+    mov ecx,tl_data_nodes
     call mem_Free
     pop edi ecx
   pop ebp
@@ -221,13 +198,13 @@ tl_info_clear: ;
     ;xor ecx,ecx
     mov ecx,sizeof.TreeList
     imul ecx,dword[edi+6]
-    mov eax,dword[edi+14]
+    mov eax,tl_data_nodes
     @@:
       mov byte[eax],0 ;������ ���� 0-��
       inc eax
       loop @b
-    mov eax,dword[edi+14] ;��������� �� 1-� ����
-    mov dword[eax+8],1 ;��������� next � 1-� ���� ������������ � 1
+    mov eax,tl_data_nodes ;��������� �� 0-� ����
+    mov dword[eax+8],1 ;��������� next � 0-� ���� ������������ � 1
     call tb_scrol_resize ;��������� ����������
     pop edi ecx eax
   pop ebp
@@ -314,9 +291,6 @@ tl_mouse: ;
     bt eax,0 ;left mouse button press
     jae .no_draw
 
-    mov ebx,tl_el_focus
-    mov dword[ebx],edi ;set focus
-
     mov eax,37
     mov ebx,1
     int 0x40
@@ -342,6 +316,9 @@ tl_mouse: ;
     cmp ax,bx ;������� ������� ���� + ������ �������
     jl .no_in_wnd
 
+    mov esi,tl_el_focus
+    mov dword[esi],edi ;set focus
+
     ; if '+' or '-' press
     mov esi,eax
     shr esi,16
@@ -366,10 +343,13 @@ tl_mouse: ;
       mov eax,ecx ;���� ������ �� ����� �� ������� �����, ��������������� ������ �������� eax
     @@:
 
-    mov ebx,0x80000000 ;������ ���� ��� ������ ��� ����������
     cmp eax,tl_cur_pos ;���� ����� �������� ������� ������� � ����������
-    je @f	       ;�� ����� ����� ��� ���������� ����
-      xor ebx,ebx
+    je @f ;�� �� ������� ������
+    push esi
+      mov esi,tl_box_top
+      add esi,tl_box_height ;esi = coord bottom border
+      call tl_draw_null_cursor ;������� ������
+    pop esi
     @@:
 
     mov tl_cur_pos,eax
@@ -379,7 +359,7 @@ tl_mouse: ;
     cmp eax,2
     jl .no_open_close ;������ ����� �� ������ �����, ��� �����
     imul eax,sizeof.TreeList
-    add eax,dword[edi+14] ;+14 ��������� �� ��������� �����
+    add eax,tl_data_nodes
     xor bx,bx
     mov bl,byte[eax+2] ;+2 lev ��������� ������� �������� ����
     inc bx ;+ ���� ��� �������
@@ -399,14 +379,15 @@ tl_mouse: ;
       call tl_node_close_open
     .no_open_close:
 
-    bt ebx,31
-    jc .no_draw
-      push dword edi
-      call tl_draw
+      mov esi,tl_box_top
+      add esi,tl_box_height ;esi = coord bottom border
+      call tl_draw_cursor ;����������� �������
       jmp .no_draw
-    .no_in_wnd: ;�� ������ � ���� - ������ ������
+    .no_in_wnd: ;�� ������ � ���� - ������ ������ (��� ������� ��� ����� ��� �� ������ ���������)
       mov ebx,tl_el_focus
-      mov dword[ebx],0 ;reset focus
+      cmp dword[ebx],edi
+      jne .no_draw ;������� �� � ������
+        mov dword[ebx],0 ;reset focus
     .no_draw:
 
     pop esi edi edx ecx ebx eax
@@ -456,10 +437,10 @@ tl_info_set_undo: ;
   jl .no_work
 
   push eax ebx ecx edx
-  mov edx,dword[edi+14]
+  mov edx,tl_data_nodes
   mov ecx,edx
   add ecx,sizeof.TreeList
-  call tl_move_next ;long i=tex[0].next;
+  call tl_move_next ;long i=node[0].next;
   mov eax,tl_tim_undo
   sub tl_ch_tim,eax ;ch_tim-=tim_undo;
   mov eax,tl_ch_tim
@@ -470,7 +451,7 @@ tl_info_set_undo: ;
     cmp edx,ecx
     jle @f
 
-    ;if(tex[i].tc>ch_tim){ // ���� �������� ������� ���� ��������
+    ;if(node[i].tc>ch_tim){ // ���� �������� ������� ���� ��������
     cmp dword[edx+12],eax
     jle .no_u1
       mov dword[edx+12],0
@@ -478,19 +459,19 @@ tl_info_set_undo: ;
 
       mov ebx, dword[edx+4]
       imul ebx,sizeof.TreeList
-      add ebx, dword[edi+14] ;.next
-      push dword[edx+8] ;tex[tex[i].perv].next=tex[i].next;
+      add ebx, tl_data_nodes ;.next
+      push dword[edx+8] ;node[node[i].perv].next=node[i].next;
       pop dword[ebx+8]
 
       mov ebx, dword[edx+8]
       imul ebx,sizeof.TreeList
-      add ebx, dword[edi+14] ;.perv
-      push dword[edx+4] ;tex[tex[i].next].perv=tex[i].perv;
+      add ebx, tl_data_nodes ;.perv
+      push dword[edx+4] ;node[node[i].next].perv=node[i].perv;
       pop dword[ebx+4]
 
     .no_u1:
 
-    ;else if(tex[i].td>ch_tim) tex[i].td=0; // ���� �������� ������� ���� ��������
+    ;else if(node[i].td>ch_tim) node[i].td=0; // ���� �������� ������� ���� ��������
     cmp dword[edx+16],eax
     jle .no_u2
       mov dword[edx+16],0
@@ -588,7 +569,7 @@ tl_draw: ;
 
     ;cycle to nodes
     xor eax,eax
-    mov edx,dword[edi+14] ;+14 ��������� �� ��������� �����
+    mov edx,tl_data_nodes
     mov ecx,edx
     add ecx,sizeof.TreeList
 
@@ -750,7 +731,7 @@ align 4
 tl_move_next:
   mov edx,dword[edx+8]
   imul edx,sizeof.TreeList
-  add edx,dword[edi+14]
+  add edx,tl_data_nodes
   ret
 
 ;input:
@@ -762,7 +743,7 @@ align 4
 tl_move_perv:
   mov edx,dword[edx+4]
   imul edx,sizeof.TreeList
-  add edx,dword[edi+14]
+  add edx,tl_data_nodes
   ret
 
 ;input:
@@ -770,12 +751,12 @@ tl_move_perv:
 ; edi = pointer to 'TreeList' struct
 ;output:
 ; al = 1 if sumbol not visible
-; (tex[i].td+tim_Undo<=ch_tim && tex[i].td) || (tex[i].tc>ch_tim-tim_Undo)
+; (node[i].td+tim_Undo<=ch_tim && node[i].td) || (node[i].tc>ch_tim-tim_Undo)
 align 4
 tl_node_not_vis:
   cmp dword[edx+16],0
   je @f
-  mov eax,dword[edx+16] ;eax=tex[i].td
+  mov eax,dword[edx+16] ;eax=node[i].td
   add eax,tl_tim_undo
   cmp eax,tl_ch_tim
   jg @f
@@ -986,7 +967,7 @@ tl_draw_node:
     @@:
 
     mov al,byte[edx+2] ;draw minus '-'
-    mov ecx,dword[edi+14]
+    mov ecx,tl_data_nodes
     add ecx,sizeof.TreeList
 
     mov ah,10 ;get icon index '+' or '-' ?
@@ -1128,7 +1109,7 @@ tl_draw_node_caption:
     push ebx ecx edx esi
 
     xor esi,esi
-    mov si,word[edi+4];info_size
+    mov si,tl_info_size
     cmp esi,tl_info_capt_offs
     jle @f ;if caption size <= 0
 
@@ -1220,19 +1201,19 @@ tl_node_add: ;
 
     mov ebx,sizeof.TreeList
     imul ebx,dword[edi+6] ;+6 ����. ���������� �����
-    add ebx,dword[edi+14] ;+14 ��������� �� ��������� �����
+    add ebx,tl_data_nodes
 ;--
     call tl_get_cur_node_index ;eax=po_t
     imul eax,sizeof.TreeList
-    add eax,dword[edi+14] ;+14 ��������� �� ��������� �����
+    add eax,tl_data_nodes
     mov edx,eax
     call tl_move_perv
     call tl_get_node_index ;eax = index of pointer [edx]
 ;--
     mov edx,sizeof.TreeList
     shl edx,1
-    add edx,dword[edi+14] ;+14 ��������� �� ��������� �����
-    @@: ;for(i=2;i<texMax;i++)
+    add edx,tl_data_nodes
+    @@: ;for(i=2;i<nodeMax;i++)
       cmp dword [edx+12],0
       jne .u0
       cmp dword [edx+16],0
@@ -1242,13 +1223,18 @@ tl_node_add: ;
 	push  word[ebp+14] ;get type
 	pop   word[edx]
 	mov   byte[edx+2], 0 ;node[i].lev=0
+  bt tl_style,2 ;tl_list_box_mode
+  jc .l_box_m
+    mov cl,byte[ebp+12]
+    mov byte[edx+2],cl  ;node[i].lev
+  .l_box_m:
 	push tl_ch_tim       ;node[i].tc=ch_tim;
 	pop  dword[edx+12]
 	mov  dword[edx+4], eax ;node[i].perv=po_t;
 	;*** copy node data ***
 	push esi
 	xor ecx,ecx
-	mov cx,word[edi+4];info_size
+	mov cx,tl_info_size
 	mov esi,ecx
 
 	push eax
@@ -1263,7 +1249,7 @@ tl_node_add: ;
 	mov esi,edi
 	mov edi,dword[ebp+16] ;restore edi
 	mov ecx,tl_info_capt_offs
-	cmp cx,word[edi+4] ;+4 info_size
+	cmp cx,tl_info_size
 	jge .no_text_data
 	  dec esi
 	  mov byte[esi],0
@@ -1272,20 +1258,20 @@ tl_node_add: ;
 
 	mov ecx,eax
 	imul ecx,sizeof.TreeList
-	add ecx,dword[edi+14] ; *** ecx = tex[po_t] ***
-	add ecx,8   ; *** ecx = tex[po_t].next ***
-	push dword [ecx] ;tex[i].next=tex[po_t].next;
+	add ecx,tl_data_nodes ; *** ecx = node[po_t] ***
+	add ecx,8   ; *** ecx = node[po_t].next ***
+	push dword [ecx] ;node[i].next=node[po_t].next;
 	pop dword [edx+8]
 
 	call tl_get_node_index ;*** eax = i ***
 	cmp eax,dword[edi+6] ;info_max_count
 	jge .u0
 
-	mov [ecx],eax ;tex[po_t].next=i; // ������ ��������������
-	mov ecx,[edx+8] ; *** ecx = tex[i].next ***
+	mov [ecx],eax ;node[po_t].next=i; // ������ ��������������
+	mov ecx,[edx+8] ; *** ecx = node[i].next ***
 	imul ecx,sizeof.TreeList
-	add ecx,dword[edi+14] ; *** ecx = tex[tex[i].next] ***
-	mov [ecx+4],eax ;tex[tex[i].next].perv=i;
+	add ecx,tl_data_nodes ; *** ecx = node[node[i].next] ***
+	mov [ecx+4],eax ;node[node[i].next].perv=i;
 
 	call tb_scrol_resize ;��������� ����������
     jmp @f
@@ -1336,7 +1322,7 @@ tl_node_set_data:
     cmp eax,2
     jl @f
       xor ecx,ecx
-      mov cx,word[edi+4];info_size
+      mov cx,tl_info_size
       imul eax,ecx
       add eax,dword[edi]
       mov edi,eax
@@ -1346,7 +1332,7 @@ tl_node_set_data:
       mov esi,edi
       mov edi,dword[ebp+12] ;restore edi
       mov ecx,tl_info_capt_offs
-      cmp cx,word[edi+4] ;+4 info_size
+      cmp cx,tl_info_size
       jge .no_text_data
 	dec esi
 	mov byte[esi],0
@@ -1370,7 +1356,7 @@ tl_node_get_data: ;
     cmp eax,2
     jl @f
       xor ecx,ecx
-      mov cx,word[edi+4];info_size
+      mov cx,tl_info_size
       imul eax,ecx
       add eax,dword[edi]
       mov dword[ebp+8],eax ;return node data pointer
@@ -1391,7 +1377,7 @@ tl_node_poi_get_info: ;
     mov eax,dword[ebp+8]
 
     ;cycle to nodes
-    mov edx,dword[edi+14] ;+14 ��������� �� ��������� �����
+    mov edx,tl_data_nodes
     mov ecx,edx
     add ecx,sizeof.TreeList
     @@:
@@ -1421,7 +1407,7 @@ tl_node_poi_get_next_info: ;
     mov edi,dword[ebp+12]
     mov edx,dword[ebp+8]
 
-    mov ecx,dword[edi+14] ;+14 ��������� �� ��������� �����
+    mov ecx,tl_data_nodes
     add ecx,sizeof.TreeList
 
     call tl_iterat_next_all
@@ -1451,7 +1437,7 @@ tl_node_poi_get_data: ;
     cmp eax,2
     jl @f
       xor ecx,ecx
-      mov cx,word[edi+4];info_size
+      mov cx,tl_info_size
       imul eax,ecx
       add eax,dword[edi]
       mov dword[ebp+12],eax ;return node data pointer
@@ -1469,7 +1455,7 @@ tl_get_cur_node_index: ;
   push ecx edx
     ;cycle to nodes
     xor eax,eax
-    mov edx,dword[edi+14] ;+14 ��������� �� ��������� �����
+    mov edx,tl_data_nodes
     mov ecx,edx
     add ecx,sizeof.TreeList
     @@:
@@ -1482,7 +1468,7 @@ tl_get_cur_node_index: ;
       jmp @b
     @@:
   mov eax,edx
-  sub eax,dword[edi+14] ;+14 ��������� �� ��������� �����
+  sub eax,tl_data_nodes
   xor edx,edx
   mov ecx,sizeof.TreeList
   div ecx
@@ -1498,7 +1484,7 @@ align 4
 tl_get_node_index: ;����� ������� ���������� �������
   push ecx edx
   mov eax,edx
-  sub eax,dword[edi+14] ;+14 ��������� �� ��������� �����
+  sub eax,tl_data_nodes
   xor edx,edx
   mov ecx,sizeof.TreeList
   div ecx
@@ -1515,7 +1501,7 @@ tl_node_delete: ;
     cmp eax,2
     jl @f
       imul eax,sizeof.TreeList
-      add eax,dword[edi+14] ;+14 ��������� �� ��������� �����
+      add eax,tl_data_nodes
       mov edx,eax
       inc tl_ch_tim
       mov eax,tl_ch_tim
@@ -1596,7 +1582,7 @@ tl_get_node_count: ;
   push ecx edx
     ;cycle to nodes
     xor eax,eax
-    mov edx,dword[edi+14] ;+14 ��������� �� ��������� �����
+    mov edx,tl_data_nodes
     mov ecx,edx
     add ecx,sizeof.TreeList
     @@:
@@ -1659,7 +1645,7 @@ tl_node_close_open: ;
     cmp eax,2 ;������ ����� �� ���� ?
     jl @f
       imul eax,sizeof.TreeList
-      add eax,dword[edi+14] ;+14 ��������� �� ��������� �����
+      add eax,tl_data_nodes
       ;eax = ��������� �� ��������� ���� ���������� ��������
       push dword edi
       push dword eax
@@ -1692,7 +1678,7 @@ tl_node_lev_inc: ;
     cmp eax,2
     jl @f
       imul eax,sizeof.TreeList
-      add eax,dword[edi+14] ;+14 ��������� �� ��������� �����
+      add eax,tl_data_nodes
       mov edx,eax
       inc word[edx+2]
     @@:
@@ -1710,7 +1696,7 @@ tl_node_lev_dec: ;
     cmp eax,2
     jl @f
       imul eax,sizeof.TreeList
-      add eax,dword[edi+14] ;+14 ��������� �� ��������� �����
+      add eax,tl_data_nodes
       mov edx,eax
       cmp word[edx+2],0
       je @f
diff --git a/programs/develop/libraries/box_lib/trunk/tree_list_doc/info_treelist.htm b/programs/develop/libraries/box_lib/trunk/tree_list_doc/info_treelist.htm
index 86f31f79fd..bdec935bdb 100644
--- a/programs/develop/libraries/box_lib/trunk/tree_list_doc/info_treelist.htm
+++ b/programs/develop/libraries/box_lib/trunk/tree_list_doc/info_treelist.htm
@@ -45,8 +45,8 @@ table { font-size: 15px; }
 </head>
 <body>
 <h1>����������</h1>
-<p>��������</p>
-<p>�������</p>
+<p><a href="#vveden">��������</a></p>
+<p><a href="#funct">�������</a></p>
 <ul>
 <li>tl_data_init</li>
 <li>tl_data_clear</li>
@@ -71,20 +71,21 @@ table { font-size: 15px; }
 <li>tl_node_poi_get_data</li>
 <li>version_tree_list</li>
 </ul>
-<p>����� ��������</p>
+<p><a href="#struc_tree_list">��������� tree_list</a></p>
+<p><a href="#tree_list_styles">����� ��������</a></p>
 
-<h1>��������</h1>
+<h1><a name="#vveden">��������</a></h1>
 <p>������� ��� �������� ���������� TreeList:</p>
 <p><img src="window_tree_list.png"></p>
 
-<h1>�������</h1>
+<h1><a name="funct">�������</a></h1>
 
 <h2>tl_data_init</h2>
 <p>����������� ��������, ����� �������� ����� �������������� �������� ��� ��������� ������ � ������ ��������.</p>
 <h2>tl_data_clear</h2>
-<p>���������� ��������.</p>
+<p>���������� ��������, ������ ������ �� ����������: <b>data_info</b>, <b>data_nodes</b>, <b>data_img</b> � <b>data_img_sys</b>. ���� � ��������� ������������ <i>��������� ��������� � ����������� ��������</i>, �� ��������� data_img � data_img_sys ����� ���������� � 0 � ������ ���������, ��� ���-�� ��� ������ ������������ �� ���� ���������� �������� ����� � ��� �� ������.</p>
 <h2>tl_info_clear</h2>
-<p>������� ������ �� ���� �����.</p>
+<p>������� ������ �� ���� �����. ��� �������� ������ �������� �������� <b>tl_info_undo</b>.</p>
 <h2>tl_key</h2>
 <p>������� ������� ����� �������� ��� ������� �� ����������.</p>
 <h2>tl_mouse</h2>
@@ -95,8 +96,15 @@ table { font-size: 15px; }
 <p>�������� ���������� �����. ��������� ������ �� ���� ���� �������, �� �������� ��������� ������ �����. �. �. ������ �������� �������� ����������� �������� ���������: <b>tl_node_set_data</b>, <b>tl_node_lev_inc</b> � �� ��������.</p>
 <h2>tl_info_redo</h2>
 <p></p>
+
 <h2>tl_node_add</h2>
-<p>��������� ����, � ������� ��������� ��������.</p>
+<p>��������� ����, � ������� ��������� ��������. ������ ���������� ����:</p>
+<pre>  push dword tree1
+  push dword 0x10002
+  push dword data_buffer
+  call dword[tl_node_add]</pre>
+<p>���: <b>tree1</b> - ��������� tree_list; <b>0x10002</b> - ��������� ���� (������� ����� 0x0001 - ������ ������, ������������ ����� ����; ������� ���� 0x02 - ������� ���������� ����); <b>data_buffer</b> - ��������� �� ������, ����������� � ����.</p>
+
 <h2>tl_node_set_data</h2>
 <p>������������� ����� ������ (���������������� � �������) � ���� ��� ��������.</p>
 <h2>tl_node_get_data</h2>
@@ -116,19 +124,23 @@ table { font-size: 15px; }
 <p>�������� ������� ���� ��� ��������. ������ ���� ��������.</p>
 <h2>tl_node_lev_dec</h2>
 <p>��������� ������� ���� ��� ��������. ������ ���� ������������.</p>
+
 <h2>tl_node_poi_get_info</h2>
 <p>����� ���������� ��������� �� ��������� ����������� ����.</p>
 <h2>tl_node_poi_get_next_info</h2>
-<p></p>
+<p>����� ��������� �� ��������� ������� � ����, ��� ����� ��������/�������� �������� �����.</p>
 <h2>tl_node_poi_get_data</h2>
 <p>����� ��������� �� ������ (���������������� � �������) �� ���� ���������� � ���������.</p>
+
+<p>��������� tl_node_poi_get_info, tl_node_poi_get_next_info � tl_node_poi_get_data ����� ��������� ���������� � ����� ��������, ��� ���� �� ����� �������� ��������� �������.</p>
+
 <h2>version_tree_list</h2>
 <p>������ ��������</p>
 
-<h1>��������� tree_list</h1>
+<h1><a name="struc_tree_list">��������� tree_list</a></h1>
 <pre>struc tree_list info_size,info_max_count,style, img_cx,img_cy,\
     col_bkg,col_zag,col_txt, box_l,box_t,box_w,box_h, capt_cy,info_capt_offs,\
-    el_focus, p_scrol,p_sb_draw,fun_enter {
+    el_focus, p_scrol,p_sb_draw,on_press {
   .data_info  dd 0
   .info_size  dw info_size
   .info_max_count dd info_max_count
@@ -155,15 +167,25 @@ table { font-size: 15px; }
   .p_scrol    dd p_scrol
   .p_sb_draw  dd p_sb_draw
   .on_activate dd 0
-  .on_press    dd fun_enter
+  .on_press    dd on_press
 }</pre>
+<p><b>info_size</b> - ���������� ����, ������� ����� �������� ��� ������� ����. ����� ���� ������ ������������ ����� ������������ ��� ����� ����� (������������ ����� <i>info_capt_offs</i>) � ��������� ����� ����� ������������ ��� ������� ����.</p>
+<p><b>info_max_count</b> - ������������ ���������� �����, ������� ����� �������� � �������.</p>
+<p><b>style</b> - ����� ��������.</p>
+<p><b>data_nodes</b> - ��������� �� ���������� ��������� ����� (<i>TreeList</i>).</p>
 <p><b>data_img</b> - ��������� �� ����������� � �������� �����.</p>
 <p><b>data_img_sys</b> - ��������� �� ��������� ����������� (������, �������, �����, ... ��� ����� ������ �����).</p>
+<p><b>capt_cy</b> - ������ ������ ��� ������� ������ ��������, ���� ������ 9 ������� �� ���������.</p>
 <p><b>p_scrol</b> - ��������� �� ��������� ����������, ���������� � ������ ���������.</p>
 <p><b>p_sb_draw</b> - ��������� �� ������� ����������� ������������� ���������� (<i>scrollbar_ver_draw</i>).</p>
-<p><b>fun_enter</b> - ��������� �� �������, ������� ����� ������� ��� ������� <b>[Enter]</b>. ���� ��������� ����� 0 �� ������ �� ����� ���������.</p>
+<p><b>on_press</b> - ��������� �� �������, ������� ����� ������� ��� ������� <b>[Enter]</b>. ���� ��������� ����� 0 �� ������ �� ����� ���������.</p>
 
-<h1>����� ��������</h1>
+<p>������ �������� ���������:</p>
+<pre>tree1 tree_list 24,500, tl_draw_par_line+tl_list_box_mode, 16,16,\
+    0x8080ff,0x0000ff,0xffffff, 10,35,200-16,285, 14,4,\
+    el_focus, wScr,scrollbar_ver_draw,fun_on_enter</pre>
+
+<h1><a name="tree_list_styles">����� ��������</a></h1>
 <h2>tl_key_no_edit</h2>
 <p>������� ������ ������������� �� ���������� (�������� ������, �������). ������� ���� ����� ���� ����� ������� ������� ������ ��� ��������� ������.</p>
 <h2>tl_draw_par_line</h2>
@@ -171,5 +193,7 @@ table { font-size: 15px; }
 <h2>tl_list_box_mode</h2>
 <p>����� �� ���������� ������ (��� � ListBox ��� ���� ������ ������).</p>
 
+<hr>
+<p>������������ ����������� ��������� ��� 23.11.09.</p>
 </body>
 </html>
\ No newline at end of file