Subversion Repositories Kolibri OS

Rev

Rev 1283 | Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. <html>
  2. <head>
  3. <title>ýëåìåíò Tree List</title>
  4. <meta http-equiv="content-type" content="text/html; charset=WINDOWS-1251">
  5. <style>
  6. body
  7. {
  8.   font-size: 15px;
  9.   font-family: "Bookman Old Style";
  10.   color: black;
  11.   text-align: justify;
  12. }
  13. h1 { color: green; font-size: 23px; }
  14. h2 { color: green; font-size: 21px; }
  15. h3 { color: green; font-size: 19px; }
  16. h4 { color: #803f00; font-size: 17px; }
  17. i { color: #0099cc; }
  18. b { color: #0099cc; }
  19. p {
  20.   text-indent: 1em;
  21.   margin-top: 3px;
  22.   margin-bottom: 2px;
  23.   margin-left: 0px;
  24.   margin-right: 0px;
  25. }
  26. ol, ul, dl{
  27.   margin-top: 3px;
  28.   margin-bottom: 2px;
  29. }
  30. pre
  31. {
  32.   padding: 2px;
  33.   padding-left: 20px;
  34.   margin-top: 5px;
  35.   margin-bottom: 5px;
  36.   margin-left: 0px;
  37.   margin-right: 0px;
  38.   font-family: "Courier New";
  39.   font-size: 15px;
  40.   color: #004000;
  41.   background-color: #ffd0ff;
  42. }
  43. table { font-size: 15px; }
  44. </style>
  45. </head>
  46. <body>
  47. <h1>Îãëàâëåíèå</h1>
  48. <p><a href="#vveden">Ââåäåíèå</a></p>
  49. <p><a href="#funct">Ôóíêöèè</a></p>
  50. <ul>
  51. <li><a href="#fun_init">tl_data_init</a></li>
  52. <li><a href="#fun_clear1">tl_data_clear</a></li>
  53. <li><a href="#fun_clear2">tl_info_clear</a></li>
  54. <li><a href="#fun_key">tl_key</a></li>
  55. <li><a href="#fun_mouse">tl_mouse</a></li>
  56. <li><a href="#fun_draw">tl_draw</a></li>
  57. <li><a href="#fun_undo">tl_info_undo</a></li>
  58. <li><a href="#fun_redo">tl_info_redo</a></li>
  59. <li><a href="#fun_add">tl_node_add</a></li>
  60. <li>tl_node_set_data</li>
  61. <li>tl_node_get_data</li>
  62. <li>tl_node_delete</li>
  63. <li>tl_cur_beg</li>
  64. <li>tl_cur_next</li>
  65. <li>tl_cur_perv</li>
  66. <li>tl_node_close_open</li>
  67. <li>tl_node_lev_inc</li>
  68. <li>tl_node_lev_dec</li>
  69. <li>tl_node_move_up</li>
  70. <li>tl_node_move_down</li>
  71. <li>tl_node_poi_get_info</li>
  72. <li>tl_node_poi_get_next_info</li>
  73. <li>tl_node_poi_get_data</li>
  74. <li>version_tree_list</li>
  75. </ul>
  76. <p><a href="#struc_tree_list">Ñòðóêòóðà tree_list</a></p>
  77. <p><a href="#tree_list_styles">Ñòèëè ýëåìåíòà</a></p>
  78.  
  79. <h1><a name="vveden">Ââåäåíèå</a></h1>
  80. <p>Âíåøíèé âèä ýëåìåíòà óïðàâëåíèÿ TreeList:</p>
  81. <p><img src="window_tree_list.png"></p>
  82.  
  83. <h1><a name="funct">Ôóíêöèè</a></h1>
  84.  
  85. <h2><a name="fun_init">tl_data_init</a></h2>
  86. <p>Êîíñòðóêòîð ýëåìåíòà, íóæíî âûçûâàòü ïåðåä èñïîëüçîâàíèåì ýëåìåíòà äëÿ âûäåëåíèÿ ïàìÿòè è äðóãèõ íàñòðîåê.</p>
  87. <h2><a name="fun_clear1">tl_data_clear</a></h2>
  88. <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>
  89.  
  90. <h2><a name="fun_clear2">tl_info_clear</a></h2>
  91. <p>Î÷èñòêà ñïèñêà îò âñåõ óçëîâ. Ýòî äåéñòâèå íåëüçÿ îòìåíèòü ôóíêöèåé <b>tl_info_undo</b>.</p>
  92.  
  93. <h2><a name="fun_key">tl_key</a></h2>
  94. <p>Ôóíêöèÿ êîòîðóþ íóæíî âûçûâàòü ïðè íàæàòèè íà êëàâèàòóðó.</p>
  95.  
  96. <h2><a name="fun_mouse">tl_mouse</a></h2>
  97. <p>Ôóíêöèÿ äëÿ ñîáûòèé îò ìûøè.</p>
  98.  
  99. <h2><a name="fun_draw">tl_draw</a></h2>
  100. <p>Ïîëíàÿ ïåðåðèñîâêà îêíà ýëåìåíòà.</p>
  101.  
  102. <h2><a name="fun_undo">tl_info_undo</a></h2>
  103. <p>Îòìåíÿåò äîáàâëåíèå óçëîâ. Äåéñòâóåò òîëüêî íà âåñü óçåë öåëèêîì, íå ó÷èòûâàÿ èçìåíåíèÿ âíóòðè óçëîâ. Ò. å. íåëüçÿ îòìåíèòü äåéñòâèÿ âûïîëíåííûå íàïðèìåð ôóíêöèÿìè: <b>tl_node_set_data</b>, <b>tl_node_lev_inc</b> è èì ïîäîáíûì.</p>
  104.  
  105. <h2><a name="fun_redo">tl_info_redo</a></h2>
  106. <p>Ïîâòîð îòìåíåííûõ äåéñòâèé. Îáðàòíàÿ ôóíêöèÿ ïî îòíîøåíèþ ê <b>tl_info_undo</b>.</p>
  107.  
  108. <h2><a name="fun_add">tl_node_add</a></h2>
  109. <p>Äîáàâëÿåò óçåë, â ïîçèöèþ óêàçàííóþ êóðñîðîì. Ïðèìåð äîáàâëåíèÿ óçëà:</p>
  110. <pre>  push dword tree1
  111.   push dword 0x10002
  112.   push dword data_buffer
  113.   call dword[tl_node_add]</pre>
  114. <p>ãäå: <b>tree1</b> - ñòðóêòóðà tree_list; <b>0x10002</b> - ïàðàìåòðû óçëà (ñòàðøèå áàéòû 0x0001 - èíäåêñ èêîíêè, îòîáðàæàåìîé âîçëå óçëà; ìåíüøèé áàéò 0x02 - óðîâåíü âëîæåíîñòè óçëà); <b>data_buffer</b> - óêàçàòåëü íà äûííûå, äîáàâëÿåìûå â óçåë.</p>
  115.  
  116. <h2>tl_node_set_data</h2>
  117. <p>Óñòàíàâëèâàåò íîâûå äàííûå (ïîëüçîâàòåëüñêèå è ïîäïèñü) â óçåë ïîä êóðñîðîì.</p>
  118. <h2>tl_node_get_data</h2>
  119. <p>Áåðåò óêàçàòåëü íà äàííûå (ïîëüçîâàòåëüñêèå è ïîäïèñü) èç óçëà ïîä êóðñîðîì.</p>
  120. <h2>tl_node_delete</h2>
  121. <p>Óäàëÿåò óçåë, íî íå îêîí÷àòåëüíî, ïðè íåîáõîäèìîñòè óçåë ìîæíî âåðíóòü ôóíêöèåé <b>tl_info_undo</b>.</p>
  122. <h2>tl_cur_beg</h2>
  123. <p>Ñòàâèò êóðñîð â íà÷àëî ñïèñêà, ïåðåìàòûâàåò ñêðîëëèíã åñëè íóæíî.</p>
  124. <h2>tl_cur_next</h2>
  125. <p>Ïåðåíîñèò êóðñîð íèæå.</p>
  126. <h2>tl_cur_perv</h2>
  127. <p>Ïåðåíîñèò êóðñîð âûøå.</p>
  128. <h2>tl_node_close_open</h2>
  129. <p>Îòêðûâàåò èëè çàêðûâàåò ðîäèòåëüñêèé óçåë. Åñëè ó óçëà íåò äî÷åðíèõ ýëåìåíòîâ,
  130.  òî íè÷åãî íå äåëàåò. Àâòîìàòè÷åñêè ïåðåðèñîâûâàåò îêíî åñëè ñîñòîÿíèå óçëà èçìåíèëîñü.</p>
  131. <h2>tl_node_lev_inc</h2>
  132. <p>Äîáàâèòü óðîâåíü óçëà ïîä êóðñîðîì. Äåëàåò óçåë äî÷åðíèì.</p>
  133. <h2>tl_node_lev_dec</h2>
  134. <p>Óìåíüøàåò óðîâåíü óçëà ïîä êóðñîðîì. Äåëàåò óçåë ðîäèòåëüñêèì.</p>
  135.  
  136. <h2>tl_node_move_up</h2>
  137. <p>Ïåðåìåùàåò ââåðõ óçåë ïîä êóðñîðîì. Âìåñòå ñ óçëîì äâèãàåòñÿ òàêæå è êóðñîð. Ïðèìåð èñïîëüçîâàíèÿ ôóíêöèè:</p>
  138. <pre>  push dword tree1
  139.   call dword[tl_node_move_up] ;ïåðåìåñòèòü óçåë</pre>
  140. <p>ãäå: <b>tree1</b> - ñòðóêòóðà tree_list</p>
  141.  
  142. <h2>tl_node_move_down</h2>
  143. <p>Ïåðåìåùàåò âíèç óçåë ïîä êóðñîðîì. Âìåñòå ñ óçëîì äâèãàåòñÿ òàêæå è êóðñîð. Ïðèìåð èñïîëüçîâàíèÿ ôóíêöèè:</p>
  144. <pre>  push dword tree1
  145.   call dword[tl_node_move_down] ;ïåðåìåñòèòü óçåë</pre>
  146. <p>ãäå: <b>tree1</b> - ñòðóêòóðà tree_list</p>
  147.  
  148. <h2>tl_node_poi_get_info</h2>
  149. <p>Áåðåò âíóòðåííèé óêàçàòåëü íà ñòðóêòóðó îïèñûâàþùóþ óçåë.</p>
  150. <h2>tl_node_poi_get_next_info</h2>
  151. <p>Áåðåò óêàçàòåëü íà ñëåäóþùèé ýëåìåíò â öåïè, áåç ó÷åòà îòêðûòèÿ/çàêðûòèÿ äî÷åðíèõ óçëîâ.</p>
  152. <h2>tl_node_poi_get_data</h2>
  153. <p>Áåðåò óêàçàòåëü íà äàííûå (ïîëüçîâàòåëüñêèå è ïîäïèñü) èç óçëà óêàçàííîãî â óêàçàòåëå.</p>
  154.  
  155. <p>Ôóíêöèÿìè tl_node_poi_get_info, tl_node_poi_get_next_info è tl_node_poi_get_data ìîæíî ñ÷èòûâàòü èíôîðìàöèþ î óçëàõ ýëåìåíòà, ïðè ýòîì íå ìåíÿÿ òåêóùåãî ïîëîæåíèÿ êóðñîðà. Ò. å. ìîæíî îðãàíèçîâàòü äîñòóï ê äàíûì ýëåìåíòà â &quot;ôîíîâîì ðåæèìå&quot;.</p>
  156.  
  157. <h2>version_tree_list</h2>
  158. <p>Âåðñèÿ ýëåìåíòà</p>
  159.  
  160. <h1><a name="struc_tree_list">Ñòðóêòóðà tree_list</a></h1>
  161. <pre>struc tree_list info_size,info_max_count,style, img_cx,img_cy,\
  162.     col_bkg,col_zag,col_txt, box_l,box_t,box_w,box_h, capt_cy,info_capt_offs,\
  163.     el_focus, p_scrol,p_sb_draw,on_press {
  164.   .data_info  dd 0
  165.   .info_size  dw info_size
  166.   .info_max_count dd info_max_count
  167.   .style      dd style
  168.   .data_nodes dd 0
  169.   .data_img   dd 0
  170.   .img_cx     dw img_cx
  171.   .img_cy     dw img_cy
  172.   .data_img_sys dd 0
  173.   .ch_tim     dd 0
  174.   .ls_tim     dd 0
  175.   .tim_undo   dd 0
  176.   .cur_pos    dd 0
  177.   .col_bkg    dd col_bkg
  178.   .col_zag    dd col_zag
  179.   .col_txt    dd col_txt
  180.   .box_lert   dd box_l
  181.   .box_top    dd box_t
  182.   .box_width  dd box_w
  183.   .box_height dd box_h
  184.   .capt_cy    dw capt_cy
  185.   .info_capt_offs dd info_capt_offs
  186.   .el_focus   dd el_focus
  187.   .p_scrol    dd p_scrol
  188.   .p_sb_draw  dd p_sb_draw
  189.   .on_activate dd 0
  190.   .on_press    dd on_press
  191. }</pre>
  192. <p><b>info_size</b> - êîëè÷åñòâî áàéò, êîòîðîå áóäåò âûäåëåíî äëÿ êàæäîãî óçëà. ×àñòü ýòîé ïàìÿòè ïîëüçîâàòåëü ìîæåò èñïîëüçîâàòü äëÿ ñâîèõ öåëåé (ðåãóëèðóåòñÿ ÷åðåç <i>info_capt_offs</i>) à îñòàëüíàÿ ÷àñòü áóäåò èñïîëüçîâàíà êàê ïîäïèñü óçëà.</p>
  193. <p><b>info_max_count</b> - ìàêñèìàëüíîå êîëè÷åñòâî óçëîâ, êîòîðûå ìîæíî äîáàâèòü â ýëåìåíò.</p>
  194. <p><b>style</b> - ñòèëè ýëåìåíòà.</p>
  195. <p><b>data_nodes</b> - óêàçàòåëü íà âíóòðåííèå ñòðóêòóðû óçëîâ (<i>TreeList</i>).</p>
  196. <p><b>data_img</b> - óêàçàòåëü íà èçîáðàæåíèÿ ñ èêîíêàìè óçëîâ.</p>
  197. <p><b>data_img_sys</b> - óêàçàòåëü íà ñèñòåìíûå èçîáðàæåíèÿ (êóðñîð, ïëþñèêè, ëèíèè, ... âñå êðîìå èêîíîê óçëîâ).</p>
  198. <p><b>capt_cy</b> - âûñîòà ñòðîêè äëÿ ïîäïèñè ââåðõó ýëåìåíòà, åñëè ìåíüøå 9 ïîäïèñü íå âûâîäèòñÿ.</p>
  199. <p><b>p_scrol</b> - óêàçàòåëü íà ñòðóêòóðó ñêðîëëèíãà, ñâÿçàííîãî ñ äàííûì ýëåìåíòîì.</p>
  200. <p><b>p_sb_draw</b> - óêàçàòåëü íà ôóíêöèþ ïåðåðèñîâêè âåðòèêàëüíîãî ñêðîëëèíãà (<i>scrollbar_ver_draw</i>).</p>
  201. <p><b>on_press</b> - óêàçàòåëü íà ôóíêöèþ, êîòîðàÿ áóäåò âûçâàíà ïðè íàæèòèè <b>[Enter]</b>. Åñëè óêàçàòåëü ðàâåí 0 òî íè÷åãî íå áóäåò âûçûâàòñÿ.</p>
  202.  
  203. <p>Ïðèìåð ñîçäàíèÿ ñòðóêòóðû:</p>
  204. <pre>tree1 tree_list 24,500, tl_draw_par_line+tl_list_box_mode, 16,16,\
  205.     0x8080ff,0x0000ff,0xffffff, 10,35,200-16,285, 14,4,\
  206.     el_focus, wScr,scrollbar_ver_draw,fun_on_enter</pre>
  207.  
  208. <h1><a name="tree_list_styles">Ñòèëè ýëåìåíòà</a></h1>
  209. <h2>tl_key_no_edit</h2>
  210. <p>Ýëåìåíò íåëüçÿ ðåäàêòèðîâàòü íà êëàâèàòóðå (èçìåíÿòü óðîâíè, óäàëÿòü). Ñòàâüòå ýòîò ñòèëü åñëè íóæíî ñîçäàòü ýëåìåíò òîëüêî äëÿ ïðîñìîòðà äàííûõ.</p>
  211. <h2>tl_draw_par_line</h2>
  212. <p>Ðèñîâàòü ëèíèè ê ðîäèòåëüñêîìó óçëó.</p>
  213. <h2>tl_list_box_mode</h2>
  214. <p>Ñòèëü íå îòîáðàæàåò óðîâíè (êàê â ListBox âñå óçëû îäíîãî óðîâíÿ).</p>
  215.  
  216. <hr>
  217. <p>Äîêóìåíòàöèÿ îáíîâëÿëàñü ïîñëåäíèé ðàç 25.11.09.</p>
  218. </body>
  219. </html>