Alterator/Widgets/CheckTree

Материал из ALT Linux Wiki

Описание

Виджет для организации иерархического табличного представления с флажками выбора.

Пример

[-] [x] Элемент 1
 +----[ ] Подэлемент
[+] [ ] Свёрнутый элемент

У каждого элемента показывается флажок, который можно установить или снять (с помощью мыши или клавишей Space). При изменении состоянии флажка генерируется сигнал changed

API

Конструктор

(checktree)
Конструктор.

Опциональные параметры:

columns 1
Количество столбцов. По умолчанию — 1.

Свойства

(append-row LIST)
Добавить строку в дерево.
Формат LIST: список полей, разделённый символами «;»:
  • item_id — идентификатор элемента;
  • item_parent_id — идентификатор родительского элемента;
  • label_1 — надпись в первом столбце;
  • label_X... — (опционально) надписи во втором и последующем столбцах;
(rows LIST)
Добавить список строк в дерево. Строки разделены символом «;». Количество элементов в каждой строке должно быть равно количеству столбцов+2.
(rows-clear)
Удалить все строки в дереве.
(expand-rows LIST)
Развернуть элементы по списку идентификаторов, разделённых символами «;». Если параметр LIST не указан, развораются все элементы.
(collapse-rows LIST)
Свернуть элементы по списку идентификаторов, разделённых символами «;». Если параметр LIST не указан, сворачиваются все элементы (поведение по умолчанию).
(state-rows LIST) --> (id_1;id_2...)
Установить флажки для элементов по списку идентификаторов, разделённых символами «;».
Вернуть список идентификаторов отмеченных элементов, разделённые символами «;».
(icon-rows ICON LIST)
Установить значок в первом столбце для элементов по списку идентификаторов, разделённых символами «;».

Сигналы

(changed)
Возникает при изменении состоянии флажка любого элемента


Пример

(document:id packages (checktree focus #t columns 2
               (when changed (test-label))))
(packages append-row "g1;;Group 1")
(packages append-row "gp1;g1;Subgroup")
(packages append-row "g2;;Another group;22045")
(packages collapse-rows "g2")
(packages state-rows "g1;gp1")