update function 'tl_node_poi_get_info'

git-svn-id: svn://kolibrios.org@9610 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
IgorA 2022-01-10 20:25:22 +00:00
parent 473a315c3e
commit 4c4ea34b99
3 changed files with 20 additions and 64 deletions

View File

@ -8,21 +8,12 @@
<p><a href="../box_lib.htm">На главную &uarr;</a></p> <p><a href="../box_lib.htm">На главную &uarr;</a></p>
<h1>Оглавление</h1> <h1>Оглавление</h1>
<p><a href="#vveden">Введение</a></p> <p><a href="#vveden">Введение</a></p>
<p><a href="#version2">Version 2</a></p> <p><a href="#funct2">Ôóíêöèè</a></p>
<p><a href="#funct2">Ôóíêöèè 2</a></p>
<ul> <ul>
<li><a href="#fun_init2">init_checkbox2</a></li> <li><a href="#fun_init2">init_checkbox2</a></li>
<li><a href="#fun_draw2">check_box_draw2</a></li> <li><a href="#fun_draw2">check_box_draw2</a></li>
<li><a href="#fun_mouse2">check_box_mouse2</a></li> <li><a href="#fun_mouse2">check_box_mouse2</a></li>
<li><a href="#version_ch2">version_ch2</a></li> <li><a href="#version_ch2">version_ch</a></li>
</ul>
<br>
<p><a href="#version1">Version 1</a></p>
<p><a href="#funct">Ôóíêöèè</a></p>
<ul>
<li><a href="#fun_draw">check_box_draw</a></li>
<li><a href="#fun_mouse">check_box_mouse</a></li>
<li><a href="#version">version_ch</a></li>
</ul> </ul>
<p><a href="#struc_checkbox">Структура checkbox</a></p> <p><a href="#struc_checkbox">Структура checkbox</a></p>
<p><a href="#checkbox_styles">Стили элемента</a></p> <p><a href="#checkbox_styles">Стили элемента</a></p>
@ -30,8 +21,7 @@
<h1><a name="vveden">Введение</a></h1> <h1><a name="vveden">Введение</a></h1>
<p>Checkbox предназначен для установки, снятия флага активности процесса. Часто <p>Checkbox предназначен для установки, снятия флага активности процесса. Часто
используется для включения / выключения тех или иных функций.</p> используется для включения / выключения тех или иных функций.</p>
<h1><a name="version2">Checkbox version 2</a></h1> <p>Version 1 áûëà ðàçðàáîòàíà â 2007-2009 ãîäàõ. Version 2 áûëà ðàçðàáîòàíà â 2010 ãîäó è ÿâëÿåòñÿ ïåðåðàáîòàííîé è îïòèìèçèðîâàííîé âåðñèåé. Îñíîâíûå îòëè÷èÿ îò âåðñèè 1:</p>
<p>Version 2 áûëà ðàçðàáîòàíà â 2010 ãîäó è ÿâëÿåòñÿ ïåðåðàáîòàííîé è îïòèìèçèðîâàííîé âåðñèåé. Îñíîâíûå îòëè÷èÿ îò âåðñèè 1:</p>
<ul> <ul>
<li>Поддержка ASCIIZ строк.</li> <li>Поддержка ASCIIZ строк.</li>
<li>Появился код инициализации бокса, что уменьшает задержки при обработки событий мышки.</li> <li>Появился код инициализации бокса, что уменьшает задержки при обработки событий мышки.</li>
@ -40,7 +30,7 @@
</ul> </ul>
<h1><a name="funct2">Ôóíêöèè2</a></h1> <h1><a name="funct2">Ôóíêöèè</a></h1>
<h2><a name="fun_init2">init_checkbox2</a></h2> <h2><a name="fun_init2">init_checkbox2</a></h2>
<p>Эта функция должна вызыватся при инициализации приложения, фактически она считает колличество символов в стоке для вывода. Если не нужно выводить подписи к checkbox, то ее можно не вызывать.</p> <p>Эта функция должна вызыватся при инициализации приложения, фактически она считает колличество символов в стоке для вывода. Если не нужно выводить подписи к checkbox, то ее можно не вызывать.</p>
@ -51,10 +41,10 @@
<h2><a name="fun_mouse2">check_box_mouse2</a></h2> <h2><a name="fun_mouse2">check_box_mouse2</a></h2>
<p>Эта функция должна вызыватся при вводе информации с мыши.</p> <p>Эта функция должна вызыватся при вводе информации с мыши.</p>
<h2><a name="version_ch2">version_ch2</a></h2> <h2><a name="version_ch2">version_ch</a></h2>
<p>Версия элемента</p> <p>Версия элемента</p>
<h1><a name="struc_checkbox2">Ñòðóêòóðà checkbox2</a></h1> <h1><a name="struc_checkbox2">Ñòðóêòóðà checkbox</a></h1>
<p>Размер структуры checkbox2 указан внутри файла <i>box_lib.mac</i> в параметре <b>ch_struc_size</b>.</p> <p>Размер структуры checkbox2 указан внутри файла <i>box_lib.mac</i> в параметре <b>ch_struc_size</b>.</p>
<pre>struc check_box2 left_s,top_s,ch_text_margin,color,border_color,text_color,text,flags <pre>struc check_box2 left_s,top_s,ch_text_margin,color,border_color,text_color,text,flags
{ ;структура параметров для чек бокса { ;структура параметров для чек бокса
@ -85,47 +75,7 @@
<h2>ch_flag_bottom = 1000b</h2> <h2>ch_flag_bottom = 1000b</h2>
<p>Флаг расположения текста в низу т.е. по умолчанию принимается значение внизу т.е. отсуствие 3-го и 4-го бита</p> <p>Флаг расположения текста в низу т.е. по умолчанию принимается значение внизу т.е. отсуствие 3-го и 4-го бита</p>
<h1><a name="version1">Checkbox version 1</a></h1>
<p>Version 1 áûëà ðàçðàáîòàíà â 2007-2009 ãîäàõ.</p>
<h1><a name="funct">Ôóíêöèè</a></h1>
<h2><a name="fun_draw">check_box_draw</a></h2>
<p>Ýòà ôóíêöèÿ äîëæíà âûçûâàòñÿ ïðè ââîäå èíôîðìàöèè ñ êëàâèàòóðû.</p>
<h2><a name="fun_mouse">check_box_mouse</a></h2>
<p>Ýòà ôóíêöèÿ äîëæíà âûçûâàòñÿ ïðè ââîäå èíôîðìàöèè ñ ìûøè.</p>
<h2><a name="version">version_ch</a></h2>
<p>Âåðñèÿ ýëåìåíòà</p>
<h1><a name="struc_checkbox">Ñòðóêòóðà checkbox</a></h1>
<pre>struc check_box left,top,ch_text_margin,ch_size,color,border_color,text_color,text,ch_text_length,flags
{ ;ñòðóêòóðà ïàðàìåòðîâ äëÿ ÷åê áîêñà
.left: dw left ;+0
.top: dw top ;+2
.ch_text_margin: dd ch_text_margin ;+4
.ch_size: dd ch_size ;+8
.color: dd color ;+12
.border_color: dd border_color ;öâåò ðàìêè
.text_color: dd text_color ;öâåò íàäïèñè
.text: dd text ;àäðåñ â êîäå ïðîãðàììû ãäå ðàñïîëîæåí òåêñò
.ch_text_length: dd ch_text_length ;äëèííà ñòðîêè ñ ñèìâîëàìè
.flags: dd flags+0 ;ôëàãè
}</pre>
<p><b>left</b> - îòñòóï ñëåâà (ïîëîæåíèå ïî x).</p>
<p><b>top</b> - îòñòóï ñâåðõó (ïîëîæåíèå ïî y).</p>
<p><b>ch_text_margin</b> - ðàññòîÿíèå îò ïðÿìîóãîëüíèêà ÷åê áîêñà äî íàäïèñè.</p>
<p><b>ch_size</b> - ðàçìåð êâàäðàòà ÷åê áîêñà, êàê ñòàíäàðòíîå çíà÷åíèå áûëî ïðèíÿòî 12.</p>
<p><b>color</b> - öâåò âíóòðè ÷åêáîêñà.</p>
<h1><a name="checkbox_styles">Ñòèëè ýëåìåíòà</a></h1>
<h2>ch_flag_en</h2>
<p>Ôëàæîê âûáðàí.</p>
<hr> <hr>
<p>Äîêóìåíòàöèÿ îáíîâëÿëàñü ïîñëåäíèé ðàç 08.12.10.</p> <p>Äîêóìåíòàöèÿ îáíîâëÿëàñü ïîñëåäíèé ðàç 10.01.22.</p>
</body> </body>
</html> </html>

View File

@ -141,12 +141,19 @@ pop edi esi ecx eax</pre>
<p>где: <b>tree1</b> - структура tree_list</p> <p>где: <b>tree1</b> - структура tree_list</p>
<h2><a name="fun_poi_gi">tl_node_poi_get_info</a></h2> <h2><a name="fun_poi_gi">tl_node_poi_get_info</a></h2>
<p>Берет внутренний указатель на структуру описывающую узел. Пример использования функции:</p> <p>Берет внутренний указатель на структуру описывающую узел, с учетом открытия/закрытия дочерних узлов. Примеры использования функции:</p>
<p>Пример 1:</p>
<pre> stdcall dword[tl_node_poi_get_info], tree1, 0</pre> <pre> stdcall dword[tl_node_poi_get_info], tree1, 0</pre>
<p>где: <b>tree1</b> - структура tree_list; <p>где: <b>tree1</b> - структура tree_list;
<b>0</b> - позиция узла, с которого берется указатель; <b>0</b> - позиция узла, с которого берется указатель;
<b>eax</b> - указатель на структуру описывающую узел.</p> <b>eax</b> - указатель на структуру описывающую узел.</p>
<p><b>Замечание.</b> Если узел с указанным индексом не найден, в указателе возвращается 0.</p> <p><b>Замечание.</b> Если узел с указанным индексом не найден, в указателе возвращается 0.</p>
<p>Пример 2:</p>
<pre> stdcall dword[tl_node_poi_get_info], tree1, tree1.cur_pos</pre>
<p>где: <b>tree1</b> - структура tree_list;
<b>tree1.cur_pos</b> - позиция курсора в списке;
<b>eax</b> - указатель на структуру описывающую узел где стоит курсор.</p>
<p><b>Замечание.</b> Может показаться что аналогичный результат выдаст функция <a href="#fun_get_d">tl_node_get_data</a>, но разница в этих функциях есть (tl_node_get_data - дает данные самого узла).</p>
<h2><a name="fun_poi_gni">tl_node_poi_get_next_info</a></h2> <h2><a name="fun_poi_gni">tl_node_poi_get_next_info</a></h2>
<p>Берет указатель на следующий элемент в цепи, без учета открытия/закрытия дочерних узлов. Пример использования функции:</p> <p>Берет указатель на следующий элемент в цепи, без учета открытия/закрытия дочерних узлов. Пример использования функции:</p>

View File

@ -293,9 +293,8 @@ pop ebx eax
add esi,tl_box_height ;esi = coord bottom border add esi,tl_box_height ;esi = coord bottom border
call tl_draw_null_cursor ;áâ¨à ¥¬ ªãàá®à call tl_draw_null_cursor ;áâ¨à ¥¬ ªãàá®à
pop esi pop esi
@@:
mov tl_cur_pos,eax mov tl_cur_pos,eax
@@:
; if '+' or '-' press ; if '+' or '-' press
call tl_get_cur_node_index ;eax = node index call tl_get_cur_node_index ;eax = node index
@ -1410,14 +1409,14 @@ endp
align 4 align 4
proc tl_node_poi_get_info uses ebx ecx edx edi, tlist:dword, node_ind:dword proc tl_node_poi_get_info uses ebx ecx edx edi, tlist:dword, node_ind:dword
mov edi,[tlist] mov edi,[tlist]
mov ebx,dword[node_ind] mov ebx,[node_ind]
inc ebx
;cycle to nodes ;cycle to nodes
mov edx,tl_data_nodes mov edx,tl_data_nodes
mov ecx,edx lea ecx,[edx+sizeof.TreeNode]
add ecx,sizeof.TreeNode
@@: @@:
call tl_iterat_next_all call tl_iterat_next
cmp edx,ecx cmp edx,ecx
jle @f jle @f
dec ebx dec ebx