From 4c4ea34b99cb68de508c1e3b6a073bca8cecc332 Mon Sep 17 00:00:00 2001 From: IgorA Date: Mon, 10 Jan 2022 20:25:22 +0000 Subject: [PATCH] update function 'tl_node_poi_get_info' git-svn-id: svn://kolibrios.org@9610 a494cfbc-eb01-0410-851d-a64ba20cac60 --- .../trunk/doc/checkbox/info_checkbox.htm | 64 ++----------------- .../trunk/doc/tree_list/info_treelist.htm | 9 ++- .../libraries/box_lib/trunk/tree_list.asm | 11 ++-- 3 files changed, 20 insertions(+), 64 deletions(-) diff --git a/programs/develop/libraries/box_lib/trunk/doc/checkbox/info_checkbox.htm b/programs/develop/libraries/box_lib/trunk/doc/checkbox/info_checkbox.htm index 428ad9c6a6..77c28b9c05 100644 --- a/programs/develop/libraries/box_lib/trunk/doc/checkbox/info_checkbox.htm +++ b/programs/develop/libraries/box_lib/trunk/doc/checkbox/info_checkbox.htm @@ -8,21 +8,12 @@

На главную ↑

Оглавление

Введение

-

Version 2

-

Функции 2

+

Функции

-
-

Version 1

-

Функции

-

Структура checkbox

Стили элемента

@@ -30,8 +21,7 @@

Введение

Checkbox предназначен для установки, снятия флага активности процесса. Часто используется для включения / выключения тех или иных функций.

-

Checkbox version 2

-

Version 2 была разработана в 2010 году и является переработанной и оптимизированной версией. Основные отличия от версии 1:

+

Version 1 была разработана в 2007-2009 годах. Version 2 была разработана в 2010 году и является переработанной и оптимизированной версией. Основные отличия от версии 1:

-

Функции2

+

Функции

init_checkbox2

Эта функция должна вызыватся при инициализации приложения, фактически она считает колличество символов в стоке для вывода. Если не нужно выводить подписи к checkbox, то ее можно не вызывать.

@@ -51,10 +41,10 @@

check_box_mouse2

Эта функция должна вызыватся при вводе информации с мыши.

-

version_ch2

+

version_ch

Версия элемента

-

Структура checkbox2

+

Структура checkbox

Размер структуры checkbox2 указан внутри файла box_lib.mac в параметре ch_struc_size.

struc check_box2 left_s,top_s,ch_text_margin,color,border_color,text_color,text,flags
 {				;структура параметров для чек бокса
@@ -85,47 +75,7 @@
 

ch_flag_bottom = 1000b

Флаг расположения текста в низу т.е. по умолчанию принимается значение внизу т.е. отсуствие 3-го и 4-го бита

- - -

Checkbox version 1

-

Version 1 была разработана в 2007-2009 годах.

-

Функции

- -

check_box_draw

-

Эта функция должна вызыватся при вводе информации с клавиатуры.

- -

check_box_mouse

-

Эта функция должна вызыватся при вводе информации с мыши.

- -

version_ch

-

Версия элемента

- -

Структура checkbox

-
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   ;флаги
-}
-

left - отступ слева (положение по x).

-

top - отступ сверху (положение по y).

-

ch_text_margin - расстояние от прямоугольника чек бокса до надписи.

-

ch_size - размер квадрата чек бокса, как стандартное значение было принято 12.

-

color - цвет внутри чекбокса.

- -

Стили элемента

- -

ch_flag_en

-

Флажок выбран.

-
-

Документация обновлялась последний раз 08.12.10.

+

Документация обновлялась последний раз 10.01.22.

\ No newline at end of file diff --git a/programs/develop/libraries/box_lib/trunk/doc/tree_list/info_treelist.htm b/programs/develop/libraries/box_lib/trunk/doc/tree_list/info_treelist.htm index b1c62df84f..d78f728d8c 100644 --- a/programs/develop/libraries/box_lib/trunk/doc/tree_list/info_treelist.htm +++ b/programs/develop/libraries/box_lib/trunk/doc/tree_list/info_treelist.htm @@ -141,12 +141,19 @@ pop edi esi ecx eax

где: tree1 - структура tree_list

tl_node_poi_get_info

-

Берет внутренний указатель на структуру описывающую узел. Пример использования функции:

+

Берет внутренний указатель на структуру описывающую узел, с учетом открытия/закрытия дочерних узлов. Примеры использования функции:

+

Пример 1:

	stdcall dword[tl_node_poi_get_info], tree1, 0

где: tree1 - структура tree_list; 0 - позиция узла, с которого берется указатель; eax - указатель на структуру описывающую узел.

Замечание. Если узел с указанным индексом не найден, в указателе возвращается 0.

+

Пример 2:

+
	stdcall dword[tl_node_poi_get_info], tree1, tree1.cur_pos
+

где: tree1 - структура tree_list; +tree1.cur_pos - позиция курсора в списке; +eax - указатель на структуру описывающую узел где стоит курсор.

+

Замечание. Может показаться что аналогичный результат выдаст функция tl_node_get_data, но разница в этих функциях есть (tl_node_get_data - дает данные самого узла).

tl_node_poi_get_next_info

Берет указатель на следующий элемент в цепи, без учета открытия/закрытия дочерних узлов. Пример использования функции:

diff --git a/programs/develop/libraries/box_lib/trunk/tree_list.asm b/programs/develop/libraries/box_lib/trunk/tree_list.asm index 5e1516536b..b2e7553ada 100644 --- a/programs/develop/libraries/box_lib/trunk/tree_list.asm +++ b/programs/develop/libraries/box_lib/trunk/tree_list.asm @@ -293,9 +293,8 @@ pop ebx eax add esi,tl_box_height ;esi = coord bottom border call tl_draw_null_cursor ;бвЁа Ґ¬ Єгаб®а pop esi - @@: - mov tl_cur_pos,eax + @@: ; if '+' or '-' press call tl_get_cur_node_index ;eax = node index @@ -1410,14 +1409,14 @@ endp align 4 proc tl_node_poi_get_info uses ebx ecx edx edi, tlist:dword, node_ind:dword mov edi,[tlist] - mov ebx,dword[node_ind] + mov ebx,[node_ind] + inc ebx ;cycle to nodes mov edx,tl_data_nodes - mov ecx,edx - add ecx,sizeof.TreeNode + lea ecx,[edx+sizeof.TreeNode] @@: - call tl_iterat_next_all + call tl_iterat_next cmp edx,ecx jle @f dec ebx