Alterator/New/Packages
Материал из ALT Linux Wiki
Qwest (обсуждение | вклад) (→Corrected table widgets) |
(→Box) |
||
(17 промежуточных версий не показаны.) | |||
Строка 211: | Строка 211: | ||
{| class="wide sortable collapsible collapsed" style="text-align:center" | {| class="wide sortable collapsible collapsed" style="text-align:center" | ||
|- | |- | ||
- | !Package|| | + | !Package||[[Файл:Root.svg]]||[[Файл:Box.svg]]||[[Файл:Vbox.svg]]||[[Файл:Hbox.svg]]||[[Файл:Button.svg]]||[[Файл:Linkbutton.svg]]||[[Файл:Radio.svg]]||[[Файл:Label.svg]]||[[Файл:Edit_alterator.svg]]||[[Файл:Textbox.svg]]||[[Файл:Groupbox.svg]]||[[Файл:Gridbox.svg]]||[[Файл:Checkbox.svg]]||[[Файл:Checktree.svg]]||[[Файл:Tree.svg]]||[[Файл:Combobox.svg]]||[[Файл:Tabbox.svg]]||[[Файл:Progressbar.svg]]||[[Файл:Slider.svg]]||[[Файл:Separator.svg]]||[[Файл:Spacer.svg]]||[[Файл:Spinbox.svg]]||[[Файл:Dateedit.svg]]||[[Файл:Timeedit.svg]]||[[Файл:Listbox.svg]]|| [[Файл:RadioListBox.svg]]||[[Файл:Multilistbox.svg]]||[[Файл:Checklistbox.svg]]||[[Файл:Slideshow.svg]]||[[Файл:Splitbox.svg]]||[[Файл:Wizardface.svg]]||[[Файл:Centerface.svg]]||[[Файл:Colorselect.svg]]||[[Файл:Fileselect.svg]]||[[Файл:Undefined.svg]] |
|- | |- | ||
|alternatives || || || || ||<span style="display:none">1</span>{{Есть}}|| || ||<span style="display:none">1</span>{{Есть}}|| || || ||<span style="display:none">1</span>{{Есть}}||<span style="display:none">1</span>{{Есть}}|| || || || || || ||<span style="display:none">1</span>{{Есть}}||<span style="display:none">1</span>{{Есть}}|| || || ||<span style="display:none">1</span>{{Есть}}|| || || || || || || || || || | |alternatives || || || || ||<span style="display:none">1</span>{{Есть}}|| || ||<span style="display:none">1</span>{{Есть}}|| || || ||<span style="display:none">1</span>{{Есть}}||<span style="display:none">1</span>{{Есть}}|| || || || || || ||<span style="display:none">1</span>{{Есть}}||<span style="display:none">1</span>{{Есть}}|| || || ||<span style="display:none">1</span>{{Есть}}|| || || || || || || || || || | ||
Строка 411: | Строка 411: | ||
|} | |} | ||
- | + | == Таблица виджетов == | |
- | ==Таблица виджетов== | + | |
{| class="wikitable" style="text-align: center" | {| class="wikitable" style="text-align: center" | ||
Строка 419: | Строка 418: | ||
| | | | ||
{| class="wide collapsible collapsed" | {| class="wide collapsible collapsed" | ||
- | !box | + | ![[#Box|box]] |
|- | |- | ||
!Attributes||Events | !Attributes||Events | ||
|- | |- | ||
- | + | |orientation|| | |
- | + | ||
- | |orientation | + | |
- | + | ||
- | + | ||
|} | |} | ||
- | |{{Есть}}||{{ | + | |{{Есть}}||{{Есть}}||in_test||box |
|- valign="top" | |- valign="top" | ||
| | | | ||
{| class="wide collapsible collapsed" | {| class="wide collapsible collapsed" | ||
- | !button | + | ![[#Button|button]] |
|- | |- | ||
!Attributes||Events | !Attributes||Events | ||
Строка 441: | Строка 436: | ||
|text|| | |text|| | ||
|} | |} | ||
- | |{{Есть}}||{{ | + | |{{Есть}}||{{Есть}}||in_test||button |
|- | |- | ||
|centerface ||{{Есть}}||{{Нет}}||in_test||centerface | |centerface ||{{Есть}}||{{Нет}}||in_test||centerface | ||
Строка 447: | Строка 442: | ||
| | | | ||
{| class="wide collapsible collapsed" | {| class="wide collapsible collapsed" | ||
- | !checkbox | + | ![[#CheckBox|checkbox]] |
|- | |- | ||
!Attributes||Events | !Attributes||Events | ||
Строка 457: | Строка 452: | ||
|value|| | |value|| | ||
|} | |} | ||
- | |{{Есть}}||{{ | + | |{{Есть}}||{{Есть}}||in_test||checkbox |
- | |- | + | |- valign="top" |
- | |checklistbox ||{{Есть}}||{{ | + | | |
+ | {| class="wide collapsible collapsed" | ||
+ | ![[#CheckListBox|checklistbox]] | ||
+ | |- | ||
+ | !Attributes||||Events | ||
+ | |- | ||
+ | |append-row||||changed | ||
+ | |- | ||
+ | |columns||||clicked | ||
+ | |- | ||
+ | |count||||double-clicked | ||
+ | |- | ||
+ | |current||||selected | ||
+ | |- | ||
+ | |enumref||||return-pressed | ||
+ | |- | ||
+ | |header|| | ||
+ | |- | ||
+ | |remove|| | ||
+ | |- | ||
+ | |row-item|| | ||
+ | |- | ||
+ | |rows|| | ||
+ | |- | ||
+ | |text|| | ||
+ | |- | ||
+ | |value|| | ||
+ | |} | ||
+ | |{{Есть}}||{{Есть}}||in_test||checklistbox | ||
|- | |- | ||
|checktree ||{{Есть}}||{{Нет}}||in_test||checktree | |checktree ||{{Есть}}||{{Нет}}||in_test||checktree | ||
Строка 467: | Строка 490: | ||
| | | | ||
{| class="wide collapsible collapsed" | {| class="wide collapsible collapsed" | ||
- | !combobox | + | ![[#ComboBox|combobox]] |
|- | |- | ||
!Attributes||Events | !Attributes||Events | ||
Строка 489: | Строка 512: | ||
|text|| | |text|| | ||
|} | |} | ||
- | |{{Есть}}||{{ | + | |{{Есть}}||{{Есть}}||in_test||combobox |
|- valign="top" | |- valign="top" | ||
| | | | ||
{| class="wide collapsible collapsed" | {| class="wide collapsible collapsed" | ||
- | !dateedit | + | ![[#DateEdit|dateedit]] |
|- | |- | ||
!Attributes||Events | !Attributes||Events | ||
Строка 499: | Строка 522: | ||
|expanded|| | |expanded|| | ||
|} | |} | ||
- | |{{Есть}}||{{ | + | |{{Есть}}||{{Есть}}||in_test||dateedit |
|- valign="top" | |- valign="top" | ||
| | | | ||
{| class="wide collapsible collapsed" | {| class="wide collapsible collapsed" | ||
- | !edit | + | ![[#Edit|edit]] |
|- | |- | ||
!Attributes||Events | !Attributes||Events | ||
Строка 513: | Строка 536: | ||
|value|| | |value|| | ||
|} | |} | ||
- | |{{Есть}}||{{ | + | |{{Есть}}||{{Есть}}||in_test||edit |
|- valign="top" | |- valign="top" | ||
| | | | ||
{| class="wide collapsible collapsed" | {| class="wide collapsible collapsed" | ||
- | !fileselect | + | ![[#FileSelect|fileselect]] |
|- | |- | ||
!Attributes||Events | !Attributes||Events | ||
Строка 529: | Строка 552: | ||
|url|| | |url|| | ||
|} | |} | ||
- | |{{Есть}}||{{ | + | |{{Есть}}||{{Есть}}||in_test||fileselect |
|- valign="top" | |- valign="top" | ||
| | | | ||
{| class="wide collapsible collapsed" | {| class="wide collapsible collapsed" | ||
- | !gridbox | + | ![[#GridBox|gridbox]] |
|- | |- | ||
!Attributes||Events | !Attributes||Events | ||
Строка 539: | Строка 562: | ||
|columns|| | |columns|| | ||
|} | |} | ||
- | |{{Есть}}||{{ | + | |{{Есть}}||{{Есть}}||in_test||gridbox |
|- valign="top" | |- valign="top" | ||
| | | | ||
{| class="wide collapsible collapsed" | {| class="wide collapsible collapsed" | ||
- | !groupbox | + | ![[#GroupBox|groupbox]] |
|- | |- | ||
!Attributes||Events | !Attributes||Events | ||
Строка 555: | Строка 578: | ||
|title|| | |title|| | ||
|} | |} | ||
- | |{{Есть}}||{{ | + | |{{Есть}}||{{Есть}}||in_test||groupbox |
|- | |- | ||
- | |hbox ||{{Есть}}||{{Нет}}||in_test||hbox | + | |[[#Box|hbox]] ||{{Есть}}||{{Нет}}||in_test||hbox |
|- valign="top" | |- valign="top" | ||
| | | | ||
{| class="wide collapsible collapsed" | {| class="wide collapsible collapsed" | ||
- | !label | + | ![[#Label|label]] |
|- | |- | ||
!Attributes||Events | !Attributes||Events | ||
Строка 571: | Строка 594: | ||
|value|| | |value|| | ||
|} | |} | ||
- | |{{Есть}}||{{ | + | |{{Есть}}||{{Есть}}||in_test||label |
|- | |- | ||
|linkbutton ||{{Есть}}||{{Нет}}||in_test||linkbutton | |linkbutton ||{{Есть}}||{{Нет}}||in_test||linkbutton | ||
Строка 577: | Строка 600: | ||
| | | | ||
{| class="wide collapsible collapsed" | {| class="wide collapsible collapsed" | ||
- | !listbox | + | ![[#ListBox|listbox]] |
|- | |- | ||
- | !Attributes||Events | + | !Attributes||||Events |
|- | |- | ||
- | |append-row|| | + | |append-row||||changed |
|- | |- | ||
- | |columns|| | + | |columns||||clicked |
|- | |- | ||
- | |count|| | + | |count||||double-clicked |
|- | |- | ||
- | |current|| | + | |current||||selected |
|- | |- | ||
- | |enumref|| | + | |enumref||||return-pressed |
|- | |- | ||
|header|| | |header|| | ||
Строка 601: | Строка 624: | ||
|text|| | |text|| | ||
|} | |} | ||
- | |{{Есть}}||{{ | + | |{{Есть}}||{{Есть}}||in_test|| |
|- | |- | ||
|multilistbox ||{{Есть}}||{{Нет}}||in_test||multilistbox | |multilistbox ||{{Есть}}||{{Нет}}||in_test||multilistbox | ||
Строка 607: | Строка 630: | ||
| | | | ||
{| class="wide collapsible collapsed" | {| class="wide collapsible collapsed" | ||
- | !progressbar | + | ![[#ProgressBar|progressbar]] |
|- | |- | ||
!Attributes||Events | !Attributes||Events | ||
Строка 619: | Строка 642: | ||
|value|| | |value|| | ||
|} | |} | ||
- | |{{Есть}}||{{ | + | |{{Есть}}||{{Есть}}||in_test||progressbar |
|- valign="top" | |- valign="top" | ||
| | | | ||
{| class="wide collapsible collapsed" | {| class="wide collapsible collapsed" | ||
- | !radio | + | ![[#Radio|radio]] |
|- | |- | ||
!Attributes||Events | !Attributes||Events | ||
Строка 633: | Строка 656: | ||
|value|| | |value|| | ||
|} | |} | ||
- | |{{Есть}}||{{ | + | |{{Есть}}||{{Есть}}||in_test||radio |
|- valign="top" | |- valign="top" | ||
| | | | ||
{| class="wide collapsible collapsed" | {| class="wide collapsible collapsed" | ||
- | !radiolistbox | + | ![[#RadioListBox|radiolistbox]] |
|- | |- | ||
!Attributes||Events | !Attributes||Events | ||
Строка 687: | Строка 710: | ||
| | | | ||
{| class="wide collapsible collapsed" | {| class="wide collapsible collapsed" | ||
- | !textbox | + | ![[#TextBox|textbox]] |
|- | |- | ||
!Attributes||Events | !Attributes||Events | ||
Строка 703: | Строка 726: | ||
| | | | ||
{| class="wide collapsible collapsed" | {| class="wide collapsible collapsed" | ||
- | !timeedit | + | ![[#TimeEdit|timeedit]] |
|- | |- | ||
!Attributes||Events | !Attributes||Events | ||
Строка 715: | Строка 738: | ||
|value|| | |value|| | ||
|} | |} | ||
- | |{{Есть}}||{{ | + | |{{Есть}}||{{Есть}}||in_test||timeedit |
|- valign="top" | |- valign="top" | ||
| | | | ||
Строка 739: | Строка 762: | ||
|undefined ||{{Есть}}||{{Нет}}||in_test||undefined | |undefined ||{{Есть}}||{{Нет}}||in_test||undefined | ||
|- | |- | ||
- | |vbox ||{{Есть}}||{{ | + | |[[#Box|vbox]] ||{{Есть}}||{{Есть}}||in_test||vbox |
|- | |- | ||
|wizardface ||{{Есть}}||{{Нет}}||in_test||wizardface | |wizardface ||{{Есть}}||{{Нет}}||in_test||wizardface | ||
Строка 746: | Строка 769: | ||
- | ===Таблица общих атрибутов для всех виджетов=== | + | === Таблица общих атрибутов для всех виджетов === |
{| class="wikitable" style="text-align: left" | {| class="wikitable" style="text-align: left" | ||
Строка 781: | Строка 804: | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
+ | === Описание виджетов и их атрибутов === | ||
+ | |||
+ | |||
+ | ==== Корневой виджет ==== | ||
+ | Именно в этот виджет вставляются все остальные. Имеет следующие атрибуты: | ||
+ | * '''title''' — заголовок окна | ||
+ | * '''width''' — ширина окна | ||
+ | * '''height''' — высота окна | ||
+ | |||
+ | |||
+ | ==== Box ==== | ||
+ | Контейнер для других виджетов. | ||
+ | * '''orientation''' «''horizontal''» — это развернутый вариант виджета '''hbox'''; | ||
+ | * '''orientation''' «''vertical''» — развернутый вариант виджета '''vbox''' (по умолчанию). | ||
+ | |||
+ | ==== Button ==== | ||
+ | Кнопка с текстом и картинкой. | ||
+ | |||
+ | <u>Атрибуты:</u> | ||
+ | * '''text''' — текст на кнопке; | ||
+ | * '''pixmap''' — картинка из списка. | ||
+ | |||
+ | <u>События:</u> | ||
+ | * '''clicked''' — вызывается при нажатии кнопки. | ||
+ | |||
+ | |||
+ | ==== CheckBox ==== | ||
+ | Кнопка-флажок с двумя состояниями ''true'' или ''false''. | ||
+ | * '''text''' — описание кнопки; | ||
+ | * '''state''' — состояние флажка. Если значение ''#t'', то флажок выставлен. При значении ''#f'' флажок отсутствует; | ||
+ | * '''value''' — то же, что и '''state'''. | ||
+ | |||
+ | |||
+ | ==== DateEdit ==== | ||
+ | Виджет отображения даты, календаря. | ||
+ | * '''expanded''' — со значением ''#t'' дополнительно отображает календарь; | ||
+ | * '''value''' — атрибут для задания даты (строка формата ГГГГ-ММ-ДД). | ||
+ | |||
+ | ==== TimeEdit ==== | ||
+ | Отображает время. | ||
+ | * '''expanded''' — со значением ''#t'' добавляет графические часы; | ||
+ | * '''stop''' — остановка счета времени; | ||
+ | * '''start''' — запуск счета времени; | ||
+ | * '''value''' — задание времени. | ||
+ | |||
+ | |||
+ | ==== Radio ==== | ||
+ | Радиокнопка позволяет выбрать один пункт из набора, в пределах одного контейнера. | ||
+ | * '''state''' — состояние пункта. Данный пункт выбран при значении ''#t''; | ||
+ | * '''text''' — описание пункта; | ||
+ | |||
+ | |||
+ | ==== Edit ==== | ||
+ | Однострочное текстовое поле ввода. | ||
+ | * '''echo''' — режим отображения. Возможные варианты: ''normal'' (по умолчанию), ''stars'' (звёздочки, для паролей), ''no'' (ввод не отображается); | ||
+ | * '''alterability''' — разрешение на изменение текста. Если значение ''#f'', содержимое поля доступно только для чтения; | ||
+ | * '''text''' — содержимое поля; | ||
+ | * '''value''' — то же, что и '''text'''. | ||
+ | |||
+ | |||
+ | ==== GridBox ==== | ||
+ | Вертикальный контейнер «сетки». Основой способ организации виджетов на экране. | ||
+ | * '''columns''' — ширина стобцов сетки в процентном соотношении от общей ширины. | ||
+ | |||
+ | |||
+ | ==== Label ==== | ||
+ | Предназначен для отображения какой-либо надписи без возможности редактирования. | ||
+ | * '''text-wrap''' — отображение одной длинной строки в виде многострочного текста (''#t''/''#f''); | ||
+ | * '''text''' — отображаемый текст. | ||
+ | |||
+ | |||
+ | ==== GroupBox ==== | ||
+ | Объединение группы виджетов в один контейнер. | ||
+ | * '''checked''' — в случае значения #t рядом с заголовком отображается checkbox (если он не выделен, то содержимое группы неактивно и недоступно для работы); | ||
+ | * '''orientation''' — ориентация контейнера (''horizontal''/''vertical''); | ||
+ | * '''state''' — состояние checkbox в случае режима checked; | ||
+ | * '''title''' — заголовок группы. | ||
+ | |||
+ | |||
+ | ==== ProgressBar ==== | ||
+ | Строка прогресса некоторого процесса. | ||
+ | * '''maximum''' — максимальное допустимое значение, соответствует 100 %; | ||
+ | * '''minimum''' — минимальное допустимое значение, соответствует 0 %; | ||
+ | * '''text''' — информация в строке прогресса; | ||
+ | * '''value''' — текущее значение прогресса. | ||
+ | |||
+ | |||
+ | ==== SpinBox ==== | ||
+ | Поле со счетчиком для ввода чисел. | ||
+ | * '''maximum''' — максимальное допустимое значение; | ||
+ | * '''minimum''' — минимальное допустимое значение; | ||
+ | * '''step''' — шаг приращения значения; | ||
+ | * '''value''' — текущее значение. | ||
+ | |||
+ | |||
+ | ==== TextBox ==== | ||
+ | Многострочное текстовое поле ввода. | ||
+ | * '''alterability''' — разрешение на изменение текста. Если значение ''#f'', содержимое поля доступно только для чтения; | ||
+ | * '''text''' — содержимое поля; | ||
+ | * '''append-text''' — добавить текст в конец поля; | ||
+ | * '''url''' — показать содержимое указанного файла. | ||
+ | |||
+ | |||
+ | ==== FileSelect ==== | ||
+ | Выбор файла из файловой системы, для дальнейшей работы с ним. | ||
+ | * '''filter''' — допустимые расширения файлов; | ||
+ | * '''hints''' — условие выбора файла (обычно используется значение ''existing_file'' для проверки на существование выбранного файла); | ||
+ | * '''title''' — заголовок; | ||
+ | * '''url''' — путь поиска файлов. | ||
+ | |||
+ | <u>Пример:</u> | ||
+ | |||
+ | <pre style="width:30em"> | ||
+ | (document:surround "/std/frame") | ||
+ | |||
+ | (define fileselect (make-widget 'fileselect)) | ||
+ | (define url (make-attribute 'url)) | ||
+ | (define filter (make-attribute 'filter)) | ||
+ | (define hints (make-attribute 'hints)) | ||
+ | |||
+ | (gridbox columns "100" | ||
+ | margin "100" | ||
+ | (vbox | ||
+ | (label text "Simple import certificate") | ||
+ | (fileselect title (_"Import CA certificate") | ||
+ | url "/" | ||
+ | filter "*.cert *.crt *.pem" | ||
+ | hints "existing_file"))) | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | ==== SplitBox ==== | ||
+ | Контейнер с изменяемой шириной колонок. | ||
+ | * '''columns''' — изначальная ширина колонок. | ||
+ | |||
+ | |||
+ | ==== ListBox ==== | ||
+ | Прокручиваемый список, с возможностью создания нескольких столбцов. | ||
+ | |||
+ | <u>Атрибуты</u> | ||
+ | * '''columns''' — количество колонок в списке; | ||
+ | * '''header''' — заголовок таблицы, вектор из строк с названиями колонок; | ||
+ | * '''enumref''' — адрес списка данных; | ||
+ | * '''rows''' — возвращает список значений в виде единой строки; | ||
+ | * '''rows-clear''' — очищает список; | ||
+ | * '''append-row''' — добавление в конец списка новой строки; | ||
+ | * '''row-item''' — работа с отдельным полем в списке. Координаты задаются списком из двух значений '(строка столбец) или указанием порядкового номера строки; | ||
+ | * '''row-remove''' — удаляет строку с указанным порядковым номером; | ||
+ | * '''text''' — возвращает строку с содержимым первого поля активной строки; | ||
+ | * '''current''' — номер выделенной строки. Если ничего не выделено, то значение равно −1; | ||
+ | * '''count''' — возвращает количество строк в таблице. | ||
+ | |||
+ | <u>События</u> | ||
+ | Желательно использовать только одно событие. | ||
+ | * '''clicked''' — одинарный щелчок правой кнопки мышки по элементу списка; | ||
+ | * '''double-clicked''' — двойной щелчок правой кнопки мышки по элементу списка; | ||
+ | * '''selected''' — изменение активной строки; | ||
+ | * '''return-pressed''' — нажатиe ''Enter'' на активной строке списка; | ||
+ | * '''changed''' — любое действие с виджетом (не рекомендуется использовать). | ||
+ | |||
+ | {| style="align:left;" | ||
+ | | | ||
+ | {{Навигационная таблица | ||
+ | |state = collapsed | ||
+ | |заголовок = Пример 1 | ||
+ | |стиль_четных = background:#f0f0f0 | ||
+ | |||
+ | |заголовок1 = Описание | ||
+ | |список1 = | ||
+ | В данном примере событие ''return-pressed'' срабатывает при ''double-clicked''. Исправляется использованием ''clicked'' вместо ''double-clicked''. | ||
+ | |||
+ | |заголовок2 = index.scm | ||
+ | |список2 = | ||
+ | <pre style="width:70em"> | ||
+ | (document:surround "/std/frame") | ||
+ | |||
+ | (define (ui-list) | ||
+ | (let ((list_one_fn (woo-call "/simple_list/list_one"))) | ||
+ | (form-update-enum "name_one" list_one_fn) | ||
+ | (or (null? list_one_fn) | ||
+ | (let ((name (woo-get-option (car list_one_fn) 'name))) | ||
+ | (form-update-value "name_one" name) )))) | ||
+ | |||
+ | (document:root | ||
+ | (when loaded (ui-list))) | ||
+ | |||
+ | (gridbox columns 100 | ||
+ | margin 100 | ||
+ | align "center" | ||
+ | (label align "center" text "Simple label") | ||
+ | (document:id list_one (listbox columns 3 | ||
+ | focus #t | ||
+ | name "name_one" | ||
+ | enumref "/simple_list/list_one" | ||
+ | row '#((column0 . "") (column2 . "") (column3 . "")) | ||
+ | header (vector "column 0" "column 2" "column 3") | ||
+ | (when selected | ||
+ | (testlist value (list_one current)) | ||
+ | (testlist2 value (list_one text)) | ||
+ | (testlist3 value (list_one rows)) | ||
+ | (testlist4 value (list_one row-item (list (list_one current) 2) ))) | ||
+ | (when double-clicked | ||
+ | (list_one row-remove (list_one current))) | ||
+ | (when return-pressed | ||
+ | (list_one append-row '#("new-row" "test" "123"))) )) | ||
+ | (gridbox columns "0;100" | ||
+ | align "left" | ||
+ | width 200 | ||
+ | (label colspan 2) | ||
+ | (label align "left" text "current") | ||
+ | (document:id testlist (edit name "testlist" value (list_one current))) | ||
+ | (label value "text") | ||
+ | (document:id testlist2 (edit name "testlist2")) | ||
+ | (label text "count") | ||
+ | (document:id testlist3 (edit name "testlist3")) | ||
+ | (label value "row-item") | ||
+ | (document:id testlist4 (edit name "testlist4")) ) ) | ||
+ | </pre> | ||
+ | |||
+ | |заголовок3 = backend/simple_list | ||
+ | |список3 = | ||
+ | <pre style="width:70em"> | ||
+ | #!/bin/sh | ||
+ | |||
+ | alterator_api_version=1 | ||
+ | . alterator-sh-functions | ||
+ | |||
+ | list_one() | ||
+ | { | ||
+ | for i in 0 1 2 3 4 | ||
+ | do | ||
+ | write_table_item column0 "row-$i" \ | ||
+ | column1 "$i" \ | ||
+ | column2 "$(($i+$i))" \ | ||
+ | column3 "$(($i+12))" | ||
+ | done | ||
+ | } | ||
+ | |||
+ | alterator_export_proc list_one | ||
+ | message_loop | ||
+ | </pre> | ||
+ | |||
+ | |заголовок4 = simple_list.desktop | ||
+ | |список4 = | ||
+ | <pre style="width:70em"> | ||
+ | [Desktop Entry] | ||
+ | X-Alterator-URI=/simple_list | ||
+ | </pre> | ||
+ | }} | ||
+ | | | ||
|} | |} | ||
+ | <br/> | ||
+ | |||
+ | ==== ComboBox ==== | ||
+ | |||
+ | Выпадающий список. Поддерживает все события и атрибуты виджета [[#ListBox|''listbox'']] в '''одноколоночном''' режиме, а также: | ||
+ | |||
+ | <u>Атрибуты</u> | ||
+ | |||
+ | * '''alterability''' - значение #t переключает строку в редактируемый режим. | ||
+ | <br/> | ||
+ | |||
+ | ==== RadioListBox ==== | ||
+ | Список с возможностью выбора одного значения, где каждый элемент является радио-кнопкой. | ||
+ | Атрибуты и события заимствованы из виджета [[#ListBox|''listbox'']]. Некоторые проблемы возникают с атрибутом ''enumref'' при формировании списка из ''backend''. | ||
+ | |||
+ | |||
+ | ==== CheckListBox ==== | ||
+ | Прокручиваемый список с возможностью множественного выбора. Является объединением двух виджетов: [[#ListBox|''listbox'']] и [[#CheckBox|''checkbox'']]. Таким образом, поддерживает атрибуты и события обоих виджетов. | ||
+ | |||
- | ==== | + | ==== Tree ==== |
- | + | Древообразный список элементов. | |
- | + | ||
- | + | ||
- | + |
Текущая версия на 14:24, 23 сентября 2013
Текущее состояние модулей альтератора
Packages Internals
Таблица виджетов
Widget | X11 | Qt | ncurses | Описание | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| in_test | box | |||||||||||||||||||||||||||||||||
| in_test | button | |||||||||||||||||||||||||||||||||
centerface | in_test | centerface | |||||||||||||||||||||||||||||||||
| in_test | checkbox | |||||||||||||||||||||||||||||||||
| in_test | checklistbox | |||||||||||||||||||||||||||||||||
checktree | in_test | checktree | |||||||||||||||||||||||||||||||||
colorselect | in_test | colorselect | |||||||||||||||||||||||||||||||||
| in_test | combobox | |||||||||||||||||||||||||||||||||
| in_test | dateedit | |||||||||||||||||||||||||||||||||
| in_test | edit | |||||||||||||||||||||||||||||||||
| in_test | fileselect | |||||||||||||||||||||||||||||||||
| in_test | gridbox | |||||||||||||||||||||||||||||||||
| in_test | groupbox | |||||||||||||||||||||||||||||||||
hbox | in_test | hbox | |||||||||||||||||||||||||||||||||
| in_test | label | |||||||||||||||||||||||||||||||||
linkbutton | in_test | linkbutton | |||||||||||||||||||||||||||||||||
| in_test | ||||||||||||||||||||||||||||||||||
multilistbox | in_test | multilistbox | |||||||||||||||||||||||||||||||||
| in_test | progressbar | |||||||||||||||||||||||||||||||||
| in_test | radio | |||||||||||||||||||||||||||||||||
| in_test | radiolistbox | |||||||||||||||||||||||||||||||||
root | in_test | root | |||||||||||||||||||||||||||||||||
separator | in_test | separator | |||||||||||||||||||||||||||||||||
slider | in_test | slider | |||||||||||||||||||||||||||||||||
slideshow | in_test | slideshow | |||||||||||||||||||||||||||||||||
spacer | in_test | spacer | |||||||||||||||||||||||||||||||||
| in_test | spinbox | |||||||||||||||||||||||||||||||||
| in_test | splitbox | |||||||||||||||||||||||||||||||||
tabbox | in_test | tabbox | |||||||||||||||||||||||||||||||||
| in_test | textbox | |||||||||||||||||||||||||||||||||
| in_test | timeedit | |||||||||||||||||||||||||||||||||
| in_test | tree | |||||||||||||||||||||||||||||||||
undefined | in_test | undefined | |||||||||||||||||||||||||||||||||
vbox | in_test | vbox | |||||||||||||||||||||||||||||||||
wizardface | in_test | wizardface |
Таблица общих атрибутов для всех виджетов
Attribute | Значения | Описание |
---|---|---|
align | "left" "right" "middle" "hmiddle" "center" "top" "bottom" | выравнивание внутри ячейки «сетки» |
activity | #t #f | активирует/отключает виджет |
visibility | #t #f | видимость/невидимость виджета |
colspan | <число> | количество столбцов "сетки" под данный виджет |
rowspan | <число> | количество строк "сетки" под данный виджет |
tooltip | <текст> | справочная информация, выводимая во всплывающей подсказке |
focus | #t #f | атрибут только для записи, помещает фокус на виджет для которого указано значение #t |
width | <число> | ширина виджета |
height | <число> | высота виджета |
title | <текст> | заголовок родительского контейнера |
name | <текст> | имя виджета |
nameref | <текст> | аналог name (?) |
margin | <число> | ширина "рамки" вокруг контейнера |
spacing | <число> | промежуток между виджетами (применим только к контейнерам) |
Описание виджетов и их атрибутов
Корневой виджет
Именно в этот виджет вставляются все остальные. Имеет следующие атрибуты:
- title — заголовок окна
- width — ширина окна
- height — высота окна
Box
Контейнер для других виджетов.
- orientation «horizontal» — это развернутый вариант виджета hbox;
- orientation «vertical» — развернутый вариант виджета vbox (по умолчанию).
Button
Кнопка с текстом и картинкой.
Атрибуты:
- text — текст на кнопке;
- pixmap — картинка из списка.
События:
- clicked — вызывается при нажатии кнопки.
CheckBox
Кнопка-флажок с двумя состояниями true или false.
- text — описание кнопки;
- state — состояние флажка. Если значение #t, то флажок выставлен. При значении #f флажок отсутствует;
- value — то же, что и state.
DateEdit
Виджет отображения даты, календаря.
- expanded — со значением #t дополнительно отображает календарь;
- value — атрибут для задания даты (строка формата ГГГГ-ММ-ДД).
TimeEdit
Отображает время.
- expanded — со значением #t добавляет графические часы;
- stop — остановка счета времени;
- start — запуск счета времени;
- value — задание времени.
Radio
Радиокнопка позволяет выбрать один пункт из набора, в пределах одного контейнера.
- state — состояние пункта. Данный пункт выбран при значении #t;
- text — описание пункта;
Edit
Однострочное текстовое поле ввода.
- echo — режим отображения. Возможные варианты: normal (по умолчанию), stars (звёздочки, для паролей), no (ввод не отображается);
- alterability — разрешение на изменение текста. Если значение #f, содержимое поля доступно только для чтения;
- text — содержимое поля;
- value — то же, что и text.
GridBox
Вертикальный контейнер «сетки». Основой способ организации виджетов на экране.
- columns — ширина стобцов сетки в процентном соотношении от общей ширины.
Label
Предназначен для отображения какой-либо надписи без возможности редактирования.
- text-wrap — отображение одной длинной строки в виде многострочного текста (#t/#f);
- text — отображаемый текст.
GroupBox
Объединение группы виджетов в один контейнер.
- checked — в случае значения #t рядом с заголовком отображается checkbox (если он не выделен, то содержимое группы неактивно и недоступно для работы);
- orientation — ориентация контейнера (horizontal/vertical);
- state — состояние checkbox в случае режима checked;
- title — заголовок группы.
ProgressBar
Строка прогресса некоторого процесса.
- maximum — максимальное допустимое значение, соответствует 100 %;
- minimum — минимальное допустимое значение, соответствует 0 %;
- text — информация в строке прогресса;
- value — текущее значение прогресса.
SpinBox
Поле со счетчиком для ввода чисел.
- maximum — максимальное допустимое значение;
- minimum — минимальное допустимое значение;
- step — шаг приращения значения;
- value — текущее значение.
TextBox
Многострочное текстовое поле ввода.
- alterability — разрешение на изменение текста. Если значение #f, содержимое поля доступно только для чтения;
- text — содержимое поля;
- append-text — добавить текст в конец поля;
- url — показать содержимое указанного файла.
FileSelect
Выбор файла из файловой системы, для дальнейшей работы с ним.
- filter — допустимые расширения файлов;
- hints — условие выбора файла (обычно используется значение existing_file для проверки на существование выбранного файла);
- title — заголовок;
- url — путь поиска файлов.
Пример:
(document:surround "/std/frame") (define fileselect (make-widget 'fileselect)) (define url (make-attribute 'url)) (define filter (make-attribute 'filter)) (define hints (make-attribute 'hints)) (gridbox columns "100" margin "100" (vbox (label text "Simple import certificate") (fileselect title (_"Import CA certificate") url "/" filter "*.cert *.crt *.pem" hints "existing_file")))
SplitBox
Контейнер с изменяемой шириной колонок.
- columns — изначальная ширина колонок.
ListBox
Прокручиваемый список, с возможностью создания нескольких столбцов.
Атрибуты
- columns — количество колонок в списке;
- header — заголовок таблицы, вектор из строк с названиями колонок;
- enumref — адрес списка данных;
- rows — возвращает список значений в виде единой строки;
- rows-clear — очищает список;
- append-row — добавление в конец списка новой строки;
- row-item — работа с отдельным полем в списке. Координаты задаются списком из двух значений '(строка столбец) или указанием порядкового номера строки;
- row-remove — удаляет строку с указанным порядковым номером;
- text — возвращает строку с содержимым первого поля активной строки;
- current — номер выделенной строки. Если ничего не выделено, то значение равно −1;
- count — возвращает количество строк в таблице.
События Желательно использовать только одно событие.
- clicked — одинарный щелчок правой кнопки мышки по элементу списка;
- double-clicked — двойной щелчок правой кнопки мышки по элементу списка;
- selected — изменение активной строки;
- return-pressed — нажатиe Enter на активной строке списка;
- changed — любое действие с виджетом (не рекомендуется использовать).
|
ComboBox
Выпадающий список. Поддерживает все события и атрибуты виджета listbox в одноколоночном режиме, а также:
Атрибуты
- alterability - значение #t переключает строку в редактируемый режим.
RadioListBox
Список с возможностью выбора одного значения, где каждый элемент является радио-кнопкой. Атрибуты и события заимствованы из виджета listbox. Некоторые проблемы возникают с атрибутом enumref при формировании списка из backend.
CheckListBox
Прокручиваемый список с возможностью множественного выбора. Является объединением двух виджетов: listbox и checkbox. Таким образом, поддерживает атрибуты и события обоих виджетов.
Tree
Древообразный список элементов.