Alterator/widgets/dynamic

Материал из ALT Linux Wiki
Перейти к: навигация, поиск
Freesource-logo.png Blue Glass Arrow.svg MediaWiki logo.png
Эта страница была перемещена с freesource.info.
Эта страница наверняка требует чистки и улучшения — смело правьте разметку и ссылки.
Просьба по окончанию убрать этот шаблон со страницы.


Генерация виджетов

<inger> ты хочешь в какой-то бокс залить пачку виджетов?
<gvy> угу
<inger> ну тогда нужно что-то типа (map make-widget list-of-data)
<gvy> а можешь пример для, скажем, двух чекбоксов показать на пальцах?
<gvy> просто код lioka я почитал и понял, что мне ещё доооолго учить как схему, так и читать альтератор, чтоб понять его :)
<inger> ну например есть список
<inger> '("a" "b" "c" "d")
<inger> тогда делаешь серию label при помощи (map (lambda(name) (label name)) this-list)
<inger> если надо например checkbox'ы с состояниями
<inger> то пусть есть список-результат woo-list
<inger> ну например там параметры есть 'title и 'value
<gvy> ну примерно, я title заберу из другого списка в ui с переводами, но думаю, не суть важно
<inger> тогда (map (lambda(cmd) (checkbox (woo-get-option cmd 'title) value (woo-get-option cmd 'value))) (woo-list "/tst"))
<inger> могу ошибаться в параметрах создания checkbox, но идея примерно такая
<gvy> так... спасибо, попробую переварить :)
<inger> ну идея главная такая - тебе нужно получить список 
<inger> для этого берёшь список - результат woo-list и потом при помощи map превращаешь в то что тебе нужно
<inger> для начала можешь потренироваться на создании одного checkbox а потом распространить опыт на целый список ;)
<inger> ну что-то типа сделай make-widget ... который примет (woo-read-first "/test/single")
<inger> а потом будет достаточно уже сказать (map make-widget (woo-list "/test/multiple"))
<gvy> а гридбокс не доводилось заполнять функцией?  типа, нагенерить
<lioka>: проблема в том, что нужно туда положить произвольное количество строчек ?
<lioka>: alterator-vm/ui/vm/popup.scm
функция renew-options
(clean-widget option-box
                   (lambda () (apply option-box (make-option-widgets))

Ссылки