Внешний вид элемента управления TreeList:
Конструктор элемента, нужно вызывать перед использованием элемента для выделения памяти и других настроек.
Деструктор элемента, чистит память по указателям: data_info, data_nodes, data_img и data_img_sys. Если в программе используется несколько элементов с одинаковыми иконками, то указатели data_img и data_img_sys нужно приравнять к 0 в других элементах, так что-бы при вызове деструкторов не было повторного удаления одних и тех же иконок.
Очистка списка от всех узлов. Это действие нельзя отменить функцией tl_info_undo.
Функция которую нужно вызывать при нажатии на клавиатуру.
Функция для событий от мыши.
Полная перерисовка окна элемента.
Отменяет добавление узлов. Действует только на весь узел целиком, не учитывая изменения внутри узлов. Т. е. нельзя отменить действия выполненные например функциями: tl_node_set_data, tl_node_lev_inc и им подобным.
Повтор отмененных действий. Обратная функция по отношению к tl_info_undo.
Добавляет узел, в позицию указанную курсором. Пример добавления узла:
push dword tree1 push dword 0x10002 push dword data_buffer call dword[tl_node_add]
где: tree1 - структура tree_list; 0x10002 - параметры узла (старшие байты 0x0001 - индекс иконки, отображаемой возле узла; меньший байт 0x02 - уровень вложености узла); data_buffer - указатель на дынные, добавляемые в узел.
Устанавливает новые данные (пользовательские и подпись) в узел под курсором.
Берет указатель на данные (пользовательские и подпись) из узла под курсором.
Удаляет узел, но не окончательно, при необходимости узел можно вернуть функцией tl_info_undo.
Ставит курсор в начало списка, перематывает скроллинг если нужно.
Переносит курсор ниже.
Переносит курсор выше.
Открывает или закрывает родительский узел. Если у узла нет дочерних элементов, то ничего не делает. Автоматически перерисовывает окно если состояние узла изменилось.
Добавить уровень узла под курсором. Делает узел дочерним.
Уменьшает уровень узла под курсором. Делает узел родительским.
Перемещает вверх узел под курсором. Вместе с узлом двигается также и курсор. Пример использования функции:
push dword tree1 call dword[tl_node_move_up] ;переместить узел
где: tree1 - структура tree_list
Перемещает вниз узел под курсором. Вместе с узлом двигается также и курсор. Пример использования функции:
push dword tree1 call dword[tl_node_move_down] ;переместить узел
где: tree1 - структура tree_list
Берет внутренний указатель на структуру описывающую узел.
Берет указатель на следующий элемент в цепи, без учета открытия/закрытия дочерних узлов.
Берет указатель на данные (пользовательские и подпись) из узла указанного в указателе.
Функциями tl_node_poi_get_info, tl_node_poi_get_next_info и tl_node_poi_get_data можно считывать информацию о узлах элемента, при этом не меняя текущего положения курсора. Т. е. можно организовать доступ к даным элемента в "фоновом режиме".
Версия элемента
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,on_press { .data_info dd 0 .info_size dw info_size .info_max_count dd info_max_count .style dd style .data_nodes dd 0 .data_img dd 0 .img_cx dw img_cx .img_cy dw img_cy .data_img_sys dd 0 .ch_tim dd 0 .ls_tim dd 0 .tim_undo dd 0 .cur_pos dd 0 .col_bkg dd col_bkg .col_zag dd col_zag .col_txt dd col_txt .box_lert dd box_l .box_top dd box_t .box_width dd box_w .box_height dd box_h .capt_cy dw capt_cy .info_capt_offs dd info_capt_offs .el_focus dd el_focus .p_scrol dd p_scrol .p_sb_draw dd p_sb_draw .on_activate dd 0 .on_press dd on_press }
info_size - количество байт, которое будет выделено для каждого узла. Часть этой памяти пользователь может использовать для своих целей (регулируется через info_capt_offs) а остальная часть будет использована как подпись узла.
info_max_count - максимальное количество узлов, которые можно добавить в элемент.
style - стили элемента.
data_nodes - указатель на внутренние структуры узлов (TreeList).
data_img - указатель на изображения с иконками узлов.
data_img_sys - указатель на системные изображения (курсор, плюсики, линии, ... все кроме иконок узлов).
capt_cy - высота строки для подписи вверху элемента, если меньше 9 подпись не выводится.
p_scrol - указатель на структуру скроллинга, связанного с данным элементом.
p_sb_draw - указатель на функцию перерисовки вертикального скроллинга (scrollbar_ver_draw).
on_press - указатель на функцию, которая будет вызвана при нажитии [Enter]. Если указатель равен 0 то ничего не будет вызыватся.
Пример создания структуры:
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
Элемент нельзя редактировать на клавиатуре (изменять уровни, удалять). Ставьте этот стиль если нужно создать элемент только для просмотра данных.
Рисовать линии к родительскому узлу.
Стиль не отображает уровни (как в ListBox все узлы одного уровня).
Документация обновлялась последний раз 25.11.09.