Alterator/Widgets
Материал из ALT Linux Wiki
(→listbox) |
|||
(77 промежуточных версий не показаны.) | |||
Строка 6: | Строка 6: | ||
- | |||
- | |||
- | {| | + | |
- | |- | | + | === Атрибуты, общие для всех виджетов === |
- | |- || | + | |
- | |- || | + | Взято из [http://git.altlinux.org/people/zerg/packages/?p=alterator-browser-qt.git;a=blob;f=alterator-browser-qt/al_widget.cc;h=fb3ce854cb4e2b181ea300b9bd07adf427fa1dcd;hb=HEAD alterator-browser-qt/al_widget.cc] (кроме colspan и rowspan) по состоянию на 2008/09/22) |
- | |- | | + | |
- | |- || | + | {| class="tiles" cellpadding=5 |
- | |- || | + | |- |
- | |- | | + | | visibility || Видимость/невидимость виджета (#t или #f). '''Если фокус попадает на невидимый виджет - ломается порядок переключения виджетов''' (мета-атрибут с переопределенным default-get) |
- | |- | | + | |- |
- | |- | + | | activity || Активность/неактивность виджета (#t или #f). (мета-атрибут с переопределенным default-get) |
- | |- | + | |- |
- | |- | + | | tooltip || Справочная информация, выводимая в "пузыре" при наведении на данный виджет. Можно использовать html. Берется только часть строки до первого символа ";" ('''неочевидно и, возможно, надо исправить!''') |
- | |- | | + | |- |
- | |- | + | | colspan || указание сколько колонок данный виджет займёт внутри "сетки" (целое число) |
- | |- | + | |- |
- | |- | | + | | rowspan || указание сколько строк данный виджет займёт внутри "сетки" (целое число) |
- | |- | + | |- |
- | |- | | + | | align || выравнивание (возможные значения: "left" "right" "middle" "hmiddle" "center" "top" "bottom", |
- | |- | | + | можно задать несколько значений, разделяя их символов ';') |
- | |- | | + | |- |
- | |- | | + | | focus || поместить фокус на виджет. Только для записи (#t или #f). |
- | |- | | + | |- |
- | |- | | + | | widget-name || символическое имя виджета - '''устарел, не должен использоваться!''' |
- | |- | | + | |- |
- | |- | | + | | title<br>window-title|| заголовок родительского окна ('''забавно, что его можно выставить из любого виджета. window-title в lookout не определен!''') |
- | |- | + | |- |
+ | | max-height || ограничение высоты виджета снизу (целое число) | ||
+ | |- | ||
+ | | min-height || '''атрибут не определен в lookout''' | ||
+ | |- | ||
+ | | max-width || ограничение ширины виджета сверху (целое число) | ||
+ | |- | ||
+ | | min-width || '''атрибут не определен в lookout''' | ||
+ | |- | ||
+ | | height || фиксированная высота виджета (целое число) | ||
+ | |- | ||
+ | | width || фиксированная ширина виджета (целое число) | ||
+ | |- | ||
+ | | margin || ? | ||
+ | |- | ||
+ | | spacing || ? | ||
+ | |- | ||
+ | | clear-layout || '''атрибут не определен в lookout''' | ||
+ | |- | ||
+ | | help || файл справки для главного окна ('''забавно, что его можно выставить из любого виджета''') | ||
+ | |- | ||
+ | | tab-order || '''атрибут не определен в lookout''' | ||
+ | |- | ||
+ | | name || Имя виджета. Пока используется для различных эффектов (зависимость активности или видимости виджетов с определенным именем от значения value другого виджета), планируется использовать для автоматического чтения и записи форм. (Метаатрибут) | ||
+ | |- | ||
+ | |||
|} | |} | ||
- | === | + | === Таблица виджетов === |
+ | |||
+ | Взято из [http://git.altlinux.org/people/zerg/packages/?p=alterator-browser-qt.git;a=tree;f=alterator-browser-qt/widgets;h=7d67739f31eac70ac29d2de8a2441b7aa2cc425c;hb=HEAD alterator-browser-qt/widgets] по состоянию на 2008/09/22 и alterator-lookout. | ||
+ | |||
+ | Жирным шрифтом выделены атрибуты по умолчанию (то есть такие, для которых можно записать (button "ok") вместо (button text "ok")). Впрочем, считается, что '''не следует''' использовать эту короткую форму записи. | ||
+ | |||
+ | Кнопки и простые поля ввода: | ||
+ | |||
+ | {| class="tiles" | ||
+ | |- | ||
+ | !widget || attributes || events || description | ||
+ | |||
+ | |- | ||
+ | |button | ||
+ | |'''text'''<br>pixmap | ||
+ | |clicked | ||
+ | |кнопка с текстом (и картинкой) | ||
+ | |||
+ | |- | ||
+ | |radio | ||
+ | |'''text'''<br>state | ||
+ | |toggled | ||
+ | |Радиокнопка. Если в одном контейнере есть несколько радиокнопок, отметка одной гасит отметку остальных. | ||
+ | |||
+ | |- | ||
+ | |checkbox | ||
+ | |'''text'''<br>value (=state) | ||
+ | |toggled<br>changed | ||
+ | | | ||
+ | |||
+ | |- | ||
+ | |edit | ||
+ | |value (='''text''')<br>echo<br>alterability<br>autocompletion-rows | ||
+ | |changed<br>return-pressed | ||
+ | |однострочное текстовое поле ввода; '''aтрибут autocompletion-rows не определен в lookout'''; echo = normal/stars/no | ||
+ | |||
+ | |- | ||
+ | |textbox | ||
+ | |url<br>'''text'''<br>text-append (=append-text)<br>alterability | ||
+ | |changed | ||
+ | |многострочное текстовое поле ввода. '''не хватает атрибута value (=text)?''' | ||
+ | |||
+ | |- | ||
+ | |spinbox | ||
+ | |minimum<br>maximum<br>step<br>value<br> | ||
+ | |changed | ||
+ | |поле для ввода чисел | ||
+ | |||
+ | |- | ||
+ | |slider | ||
+ | |orientation<br>minimum<br>maximum<br>step<br>value<br> | ||
+ | |changed | ||
+ | |orientation = vertical / !vertical | ||
+ | |||
+ | |- | ||
+ | |dateedit | ||
+ | |value (=text)<br>expanded | ||
+ | |changed | ||
+ | | | ||
+ | |||
+ | |- | ||
+ | |timeedit | ||
+ | |value (=text)<br>start<br>stop<br>reset<br>expanded | ||
+ | |changed | ||
+ | | | ||
+ | |||
+ | |} | ||
+ | |||
+ | |||
+ | Виджеты оформления (неинтерактивные, без event'ов): | ||
+ | {| class="tiles" | ||
+ | |- | ||
+ | !widget || attributes || description | ||
+ | |||
+ | |- | ||
+ | |label | ||
+ | |'''text'''<br>text-wrap<br>pixmap | ||
+ | |текст (и картинка) | ||
+ | |||
+ | |- | ||
+ | |progressbar | ||
+ | |value<br>minimum<br>maximum<br>text | ||
+ | | | ||
+ | |||
+ | |- | ||
+ | |separator | ||
+ | | | ||
+ | |горизонтальная черта | ||
+ | |||
+ | |- | ||
+ | |spacer | ||
+ | | | ||
+ | | пустой виджет | ||
+ | |||
+ | |} | ||
+ | |||
+ | Секреты progressbar'a: | ||
+ | * дефолтное значение границ -- 0..100 | ||
+ | * min < val < max -- все нормально | ||
+ | * val < min < max или min < max < val(!), или значение не установлено -- прогресс "на нуле", текст не рисуется(!). При этом, если minimum <=0, то прогресс вообще не рисуется, иначе - рисуется тонкой полоской слева. | ||
+ | * max<min текст рисуется, прогресс не рисуется | ||
+ | * min=max=0 -- "бегающая колбаса" | ||
+ | |||
+ | Простые контейнеры: | ||
+ | |||
+ | {| class="tiles" | ||
+ | |- | ||
+ | !widget || attributes || events || description | ||
+ | |||
+ | |- | ||
+ | |groupbox | ||
+ | |'''title'''<br>state | ||
+ | |toggled | ||
+ | | рамка с заголовком | ||
+ | |||
+ | |- | ||
+ | |gridbox | ||
+ | | columns | ||
+ | | | ||
+ | |"сетка" для виджетов | ||
+ | |||
+ | |- | ||
+ | |tabbox | ||
+ | |current | ||
+ | |selected | ||
+ | | | ||
+ | |||
+ | |- | ||
+ | |tab-page | ||
+ | |'''text''' | ||
+ | | | ||
+ | |страница tabbox'a | ||
+ | |||
+ | |- | ||
+ | |splitbox | ||
+ | |columns | ||
+ | | | ||
+ | |вертикальные колонки с переменным размером ('''неочевидное поведение, если число виджетов больше числа колонок!''') | ||
+ | |||
+ | |- | ||
+ | |box | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |||
+ | |- | ||
+ | |vbox | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |||
+ | |- | ||
+ | |hbox | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |||
+ | |} | ||
+ | |||
+ | |||
+ | Списки объектов: | ||
+ | |||
+ | {| class="tiles" | ||
+ | |- | ||
+ | !widget || attributes || events || description | ||
+ | |||
+ | |- | ||
+ | |combobox | ||
+ | |append-row<br>rows<br>current<br>current-text<br>alterability<br>rows-clear<br>remove-row<br>row-item-text<br>row-item-pixmap | ||
+ | |selected | ||
+ | |выпадающий список | ||
+ | |||
+ | |- | ||
+ | |listbox<br>radiolistbox<br>multilistbox<br>checklistbox | ||
+ | |append-row<br>rows<br>current<br>current-rows<br>state-rows<br>rows-clear<br>remove-row<br>row-item-text<br>row-item-pixmap<br>header<br>enumref<br>value | ||
+ | |selected<br>changed<br>clicked<br>return-pressed<br>double-clicked | ||
+ | |Различные виды списков. Устаревшее название: checklist=checklistbox<br>!!!атрибут value работает только в списке, заполненном с помощью enumref!!! | ||
+ | |||
+ | |- | ||
+ | |tree | ||
+ | |tree-items<br>coordinates<br>current<br>header<br>expanded | ||
+ | |selected | ||
+ | | | ||
+ | |||
+ | |} | ||
+ | |||
+ | |||
+ | Разное: | ||
+ | |||
+ | {| class="tiles" | ||
+ | |- | ||
+ | !widget || attributes || events || description | ||
+ | |||
+ | |- | ||
+ | |slideshow | ||
+ | |url /path/to/imgs<br>step Nseconds<br>start<br>stop<br>next<br>prev<br>once | ||
+ | | | ||
+ | | | ||
+ | |||
+ | |- | ||
+ | |wizardface | ||
+ | |title<br>actions<br>action-add<br>action-remove<br>clear<br>action-activity<br>text<br>action-pixmap<br>steps<br>step-add<br>step-remove<br>step-clear<br>step-text<br>step-pixmap<br>current-step | ||
+ | | | ||
+ | | | ||
+ | |||
+ | |- | ||
+ | |root | ||
+ | |width<br>height<br>has-help | ||
+ | | | ||
+ | | | ||
+ | |||
+ | |- | ||
+ | |dialog(?) | ||
+ | |actions<br>action-add<br>action-remove<br>action-clear<br>action-default<br>width<br>height<br> | ||
+ | | | ||
+ | | | ||
+ | |||
+ | |} | ||
- | === | + | === Подробное описание виджетов и их атрибутов (местами устарело) === |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
==== корневой виджет ==== | ==== корневой виджет ==== | ||
Строка 174: | Строка 405: | ||
* <tt>row-item</tt> -- работа с отдельным полем в списке. Координаты задаются списком из двух значений (строка колонка) или просто номером строки. Возвращает пару строка+картинка. При модификации поля указывается или просто строка или строка + картинка, если во втором случае одно из значений пары <tt>#f</tt>, то оно остаётся прежним. | * <tt>row-item</tt> -- работа с отдельным полем в списке. Координаты задаются списком из двух значений (строка колонка) или просто номером строки. Возвращает пару строка+картинка. При модификации поля указывается или просто строка или строка + картинка, если во втором случае одно из значений пары <tt>#f</tt>, то оно остаётся прежним. | ||
* <tt>count</tt> -- возвращает количество строк в таблице. | * <tt>count</tt> -- возвращает количество строк в таблице. | ||
- | * <tt>text</tt> -- | + | * <tt>text</tt> -- возвращает строку с содержимым первого поля активной строки. |
+ | * <tt>single-select</tt> -- таблица с выбором. Для работы в таблице строки должны содержать атрибут '''name''' | ||
<u>События</u>: | <u>События</u>: | ||
* <tt>selected</tt> -- вызывается при изменении активного элемента списка | * <tt>selected</tt> -- вызывается при изменении активного элемента списка | ||
* <tt>clicked</tt> -- вызывается при щелчке мышкой по элементу списка | * <tt>clicked</tt> -- вызывается при щелчке мышкой по элементу списка | ||
- | * <tt>double-clicked</tt> -- вызывается при двойном щелчке по элементу списка | + | * <tt>change</tt> -- вызывается при клике на строке списка, у которого выставлен атрибут <tt>single-select</tt>. Работает <u>только</u> при наличии хотя бы одной строки в таблице. |
+ | * <tt>double-clicked</tt> -- вызывается при двойном щелчке по элементу списка | ||
- | + | {{Note|Щёлкания могут перекрывать друг друга в случае HTML-интерфейса, поэтому лучше использовать что-то одно.}} | |
==== combobox ==== | ==== combobox ==== |
Текущая версия на 08:19, 8 июля 2015
В интерфейсе Lookout доступны следующие виджеты
Содержание |
Атрибуты, общие для всех виджетов
Взято из alterator-browser-qt/al_widget.cc (кроме colspan и rowspan) по состоянию на 2008/09/22)
visibility | Видимость/невидимость виджета (#t или #f). Если фокус попадает на невидимый виджет - ломается порядок переключения виджетов (мета-атрибут с переопределенным default-get) |
activity | Активность/неактивность виджета (#t или #f). (мета-атрибут с переопределенным default-get) |
tooltip | Справочная информация, выводимая в "пузыре" при наведении на данный виджет. Можно использовать html. Берется только часть строки до первого символа ";" (неочевидно и, возможно, надо исправить!) |
colspan | указание сколько колонок данный виджет займёт внутри "сетки" (целое число) |
rowspan | указание сколько строк данный виджет займёт внутри "сетки" (целое число) |
align | выравнивание (возможные значения: "left" "right" "middle" "hmiddle" "center" "top" "bottom",
можно задать несколько значений, разделяя их символов ';') |
focus | поместить фокус на виджет. Только для записи (#t или #f). |
widget-name | символическое имя виджета - устарел, не должен использоваться! |
title window-title | заголовок родительского окна (забавно, что его можно выставить из любого виджета. window-title в lookout не определен!) |
max-height | ограничение высоты виджета снизу (целое число) |
min-height | атрибут не определен в lookout |
max-width | ограничение ширины виджета сверху (целое число) |
min-width | атрибут не определен в lookout |
height | фиксированная высота виджета (целое число) |
width | фиксированная ширина виджета (целое число) |
margin | ? |
spacing | ? |
clear-layout | атрибут не определен в lookout |
help | файл справки для главного окна (забавно, что его можно выставить из любого виджета) |
tab-order | атрибут не определен в lookout |
name | Имя виджета. Пока используется для различных эффектов (зависимость активности или видимости виджетов с определенным именем от значения value другого виджета), планируется использовать для автоматического чтения и записи форм. (Метаатрибут) |
Таблица виджетов
Взято из alterator-browser-qt/widgets по состоянию на 2008/09/22 и alterator-lookout.
Жирным шрифтом выделены атрибуты по умолчанию (то есть такие, для которых можно записать (button "ok") вместо (button text "ok")). Впрочем, считается, что не следует использовать эту короткую форму записи.
Кнопки и простые поля ввода:
widget | attributes | events | description |
---|---|---|---|
button | text pixmap | clicked | кнопка с текстом (и картинкой) |
radio | text state | toggled | Радиокнопка. Если в одном контейнере есть несколько радиокнопок, отметка одной гасит отметку остальных. |
checkbox | text value (=state) | toggled changed | |
edit | value (=text) echo alterability autocompletion-rows | changed return-pressed | однострочное текстовое поле ввода; aтрибут autocompletion-rows не определен в lookout; echo = normal/stars/no |
textbox | url text text-append (=append-text) alterability | changed | многострочное текстовое поле ввода. не хватает атрибута value (=text)? |
spinbox | minimum maximum step value | changed | поле для ввода чисел |
slider | orientation minimum maximum step value | changed | orientation = vertical / !vertical |
dateedit | value (=text) expanded | changed | |
timeedit | value (=text) start stop reset expanded | changed |
Виджеты оформления (неинтерактивные, без event'ов):
widget | attributes | description |
---|---|---|
label | text text-wrap pixmap | текст (и картинка) |
progressbar | value minimum maximum text | |
separator | горизонтальная черта | |
spacer | пустой виджет |
Секреты progressbar'a:
- дефолтное значение границ -- 0..100
- min < val < max -- все нормально
- val < min < max или min < max < val(!), или значение не установлено -- прогресс "на нуле", текст не рисуется(!). При этом, если minimum <=0, то прогресс вообще не рисуется, иначе - рисуется тонкой полоской слева.
- max<min текст рисуется, прогресс не рисуется
- min=max=0 -- "бегающая колбаса"
Простые контейнеры:
widget | attributes | events | description |
---|---|---|---|
groupbox | title state | toggled | рамка с заголовком |
gridbox | columns | "сетка" для виджетов | |
tabbox | current | selected | |
tab-page | text | страница tabbox'a | |
splitbox | columns | вертикальные колонки с переменным размером (неочевидное поведение, если число виджетов больше числа колонок!) | |
box | |||
vbox | |||
hbox |
Списки объектов:
widget | attributes | events | description |
---|---|---|---|
combobox | append-row rows current current-text alterability rows-clear remove-row row-item-text row-item-pixmap | selected | выпадающий список |
listbox radiolistbox multilistbox checklistbox | append-row rows current current-rows state-rows rows-clear remove-row row-item-text row-item-pixmap header enumref value | selected changed clicked return-pressed double-clicked | Различные виды списков. Устаревшее название: checklist=checklistbox !!!атрибут value работает только в списке, заполненном с помощью enumref!!! |
tree | tree-items coordinates current header expanded | selected |
Разное:
widget | attributes | events | description |
---|---|---|---|
slideshow | url /path/to/imgs step Nseconds start stop next prev once | ||
wizardface | title actions action-add action-remove clear action-activity text action-pixmap steps step-add step-remove step-clear step-text step-pixmap current-step | ||
root | width height has-help | ||
dialog(?) | actions action-add action-remove action-clear action-default width height |
Подробное описание виджетов и их атрибутов (местами устарело)
корневой виджет
Именно в этот виджет вставляются все остальные, виджет является или vbox или dialog. У диалога, помимо атрибутов vbox, имеются следующие:
- title -- заголовок окна
- width -- ширина окна
- height -- высота окна
gridbox
"Сетка", основной способ организации виджетов на экране.
Атрибуты:
- columns -- перечисление того сколько процентов от общей ширины виджета будет занимать каждая колонка.
Первым делом необходимо при помощи атрибута columns указать количество и размеры колонок. Виджеты распределяются по строкам автоматически, учитывая colspan и rowspan, отдельно указывать на начало новой строки нет необходимости.
Пример:
(gridbox columns "50;50" ; две колонки одинакового размера ;;первая строка (widget1) (widget2) ;;вторая строка, автоматически учитывается colspan (widget3 colspan 2) ;;третья строка (widget4) (widget5))
spacer
"Пустышка", применяется при заполнении пустых ячеек в таблице
separator
"Горизонтальная черта".
label
Метка, содержит или текст, или картинку. В зависимости от возможностей браузера могут выводиться или только один из этих двух вариантов, или оба одновременно.
Атрибуты:
- text -- текст
- pixmap -- картинка
- text-wrap -- переносить ли слишком длинные строки (#t/#f)
button
Кнопка, содержит текст и картинку. Некоторые браузеры могут всегда уменьшать размер изображения, чтобы общий вид кнопки не портился.
Aтрибуты:
- text -- текст
- pixmap -- картинка
События:
- clicked -- вызывается при нажатии кнопки.
radio
Радио-кнопка.
Атрибуты:
- text -- комментарий к кнопке
- state -- состояние (активна/неактивна)
События:
- toggled -- вызывается при изменении состояния кнопки.
checkbox
Кнопка с двумя состояниями.
Атрибуты:
- text -- комментарий к кнопке
- state -- состояние (выделен checkbox или нет, #t/#f).
События:
- toggled -- вызывается при изменении состояния кнопки.
edit
Однострочное текстовое поле.
Атрибуты:
- text -- содержимое
- echo -- режим отображения. Возможные варианты normal (по умолчанию), stars (звёздочки, для паролей), no (ввод не отображается).
- alterability -- возможности по изменению текста. Если значение #f, содержимое поля доступно только для чтения.
События:
- changed -- вызывается при изменении содержимого поля
- return-pressed -- вызывается при нажатии в поле клавиши Enter.
textbox
Многострочное текстовое поле. В Qt textbox способен отображать как plain text, так и html. При этом тип отображения определяется при первом задании атрибута text. Если первоначально был plain text, то при попытке записать в содержимое текст в формате html, последний будет отображаться как plain text.
Атрибуты:
- text -- содержимое
- append-text -- добавить указанную строку к содержимому.
- url -- показать содержимое указанного файла в textbox.
- alterability -- аналогично edit, если значение #f, то содержимое поля доступно только для чтения.
События:
- changed -- вызывается при изменении содержимого поля.
groupbox
Объединение группы виджетов.
Атрибуты:
- checked -- в случае значения #t рядом с заголовком отображается checkbox (если он не выделен, то содержимое группы неактивно и недоступно для работы).
- state -- состояние checkbox в случае режима checked.
- title -- заголовок группы
События:
- toggled -- вызывается в случае изменения состояния checkbox.
progressbar
Строка прогресса некоторого процесса.
Атрибуты:
- value -- текущее значение
- maximum -- максимальное значение
listbox
Многоколоночный список.
Атрибуты:
- columns -- количество колонок, по умолчанию 1.
- header -- заголовок таблицы, вектор из строк с названиями колонок. Если длина вектора меньше количества колонок -- оставшиеся колонки заполняются пробелами.
- rows -- список значений. Если список многоколоночный, то значения в одной строке объединяются внутри вектора, каждое поле -- строка или пара строка + картинка. Если в векторе-строке значений меньше, чем требуется, оставшиеся колонки заполняются пробелами.
- append-row -- добавить в конец списка новую строчку. Если список многоколоночный, то передаётся целый вектор значений, если нет, то достаточно передать просто строку или пару строка + картинка.
- remove -- удалить указанную строчку. Строчка указывается своим порядковым номером. В случае значения 'all - удаляются все строки.
- current -- номер выделенной строки. Если таковых не имеется, то значение равно -1.
- row-item -- работа с отдельным полем в списке. Координаты задаются списком из двух значений (строка колонка) или просто номером строки. Возвращает пару строка+картинка. При модификации поля указывается или просто строка или строка + картинка, если во втором случае одно из значений пары #f, то оно остаётся прежним.
- count -- возвращает количество строк в таблице.
- text -- возвращает строку с содержимым первого поля активной строки.
- single-select -- таблица с выбором. Для работы в таблице строки должны содержать атрибут name
События:
- selected -- вызывается при изменении активного элемента списка
- clicked -- вызывается при щелчке мышкой по элементу списка
- change -- вызывается при клике на строке списка, у которого выставлен атрибут single-select. Работает только при наличии хотя бы одной строки в таблице.
- double-clicked -- вызывается при двойном щелчке по элементу списка
combobox
Выпадающий список.
Атрибуты: Все атрибуты listbox в одноколоночном режиме, а также:
- alterability -- значение #t переключает в редактируемый режим.
События:
- selected -- вызывается при изменении активного элемента
tree
Древообразный список элементов. Возможна многоколоночность в определённых браузерах.
Атрибуты:
- columns -- количество колонок, по умолчанию 1.
- tree-items -- элементы дерева, организованные в виде вложенных списков. Элементы на одной строке объединяются вектором, каждое поле или строка или строка+картинка. Поддерево вставляется под элемент следующий перед списком.
- current -- путь к активному элементу списка.
- tree-text -- список из строк первых колонок для каждого элемента пути к активному элементу.
События:
- selected -- вызывается в случае изменения активного элемента в дереве.
Стандартные диалоги
Для оповещения пользователей alterator предоставляет набор стандартных диалогов, общий формат вызова следующий:
(popup-имя сообщение кнопка1 кнопка2 ...)
первый параметр - сообщение, далее следует перечисление кнопок которые желаете видеть в диалоге. Кнопки задаются символами и могут быть одними из следующих: ok, open, save, cancel, close, discard, apply, reset, restore-defaults, help, save-all, yes, yes-to-all, no, no-to-all, abort, retry, ignore (также имеется специальное имя no-button - означает отсутствие кнопки). Результат исполнения диалога - символ, соответствующий нажатой кнопке. Доступны следующие виды диалогов:
- document:popup-information
- document:popup-warning
- document:popup-critical
- document:popup-question
Порядок отображения кнопок не зависит от порядка перечисления, однако первая из перечисленных кнопок считается кнопкой выделенной по умолчанию
Примеры:
(document:popup-critical "Большая проблема" 'ok)
(if (eq? 'yes (document:popup-question "Согласны?" 'no 'yes')) ; по умолчанию "нет". <действие при согласии> <дейтсвие при не согласии>)
Выше перечисленные функции на самом деле являются обёртками вокруг более общей - document:messagebox. Формат вызова:
(document:messagebox параметр1 значение1 параметр2 значение2 ...)
Возможные параметры:
- title - заголовок окна
- type - тип окна, один из вариантов: information, question , warning, critical
- message - сообщение
- buttons - список кнопок
- default-button - кнопка по-умолчанию.
Пример:
(document:messagebox 'type "information" 'title "Информация" 'message "Информационное сообщение" 'buttons '(ok help) 'default-button 'ok)
Примеры
См. тж. file:///usr/share/alterator/ui/samples/ и местами -- описания в file:///usr/share/alterator/ui/std/. TODO: примеры кода к индивидуальным виджетам