Alterator/New/Packages: различия между версиями
Qwest (обсуждение | вклад) |
Qwest (обсуждение | вклад) |
||
Строка 899: | Строка 899: | ||
(gridbox columns "100" | (gridbox columns "100" | ||
margin "100" | |||
(vbox | |||
(label text "Simple import certificate") | |||
(fileselect title (_"Import CA certificate") | (fileselect title (_"Import CA certificate") | ||
url "/" | url "/" | ||
filter "*.cert *.crt *.pem" | filter "*.cert *.crt *.pem" | ||
hints "existing_file")) | 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''' - любое действие с виджетом (не рекомендуется использовать). | |||
<u>Пример:</u> | |||
<pre style="width:70em"> | |||
(document:surround "/std/frame") | |||
(gridbox columns 100 | |||
margin 100 | |||
align "center" | |||
(label align "center" text "Simple label") | |||
(document:id list_one (listbox columns 3 | |||
name "new_list" | |||
enumref "/tests/list_columns" | |||
row '#((column1 . "") (column2 . "") (column3 . "")) | |||
header (vector "column 1" "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))) )) | |||
(listbox name "list_two") | |||
(edit name "counter" visibility #t activity #f) | |||
(edit name "column" visibility #t) | |||
(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> | </pre> |
Версия от 17:33, 4 сентября 2013
Текущее состояние модулей альтератора
Packages Internals
Таблица виджетов
Таблица общих атрибутов для всех виджетов
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 - любое действие с виджетом (не рекомендуется использовать).
Пример:
(document:surround "/std/frame") (gridbox columns 100 margin 100 align "center" (label align "center" text "Simple label") (document:id list_one (listbox columns 3 name "new_list" enumref "/tests/list_columns" row '#((column1 . "") (column2 . "") (column3 . "")) header (vector "column 1" "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))) )) (listbox name "list_two") (edit name "counter" visibility #t activity #f) (edit name "column" visibility #t) (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")) ) )