Вход:  Пароль:  
FreeSource: AltLinux/Sisyphus/Alterator/evolution ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |
Это старая версия AltLinux/Sisyphus/Alterator/evolution за 2006-05-05 16:14:34..

Документ в alterator

Окружения


Описание интерфейса имеет структуру вложенных друг в друга окружений. Документ может как включать в себя окружения из других файлов,
с помощью инструкции (document:insert), так и вставлять себя в другие окружения с помощью инструкции (document:surround).



Возможно создание новых окружений прямо в документе с помощью
инструкций (document:envelop) и (document:end-envelop). Последнюю инструкцию можно не использовать – окружение автоматически закроется
на границе текущего (например в конце файла)



Каждое окружение можно рассматривать как область действия локальных переменных. Вы видите все определения в охватывающем окружении, но не видите переменных во вложенных окружениях, если они находятся ниже по тексту.


Особый случай – включение самостоятельного документа в данный
как в «рамку» – (document:subdocument). Включаемый документ, не знает о том что он находится в каком-то другом документе.
Главный документ не знает о включаемом ничего, ктоме того что тот предоставляет некоторый «корневой» виджет.



В примере выше документу передавались глобальные параметры, доступ к ним осуществляется
с помощью инструкции (global)
Отдельные элементы документа могут именоваться с помощью инструкции (document:id), позже по заданному идентификатору может производиться изменение свойств элементов.



Выше дано было описание «статической» структуры документа, но на этом возможности не ограничиваются.


Можно заменить содержимое документа другим с помощью (document:replace). Можно запустить диалог, содержащий требуемый документ инструкцией (document:popup). Завершается этот диалог – командой (document:end).



Конструкции document:* описывают общую структуру документа, из каких же элементов он состоит?

Представления


Документ состоит из «представлений», каждое представление соответствует тому или иному виджету.
Представление определяется с помощью инструкции (with-presentations), где задаётся – имя представления, «ключевое слово» по которому будет распознаваться
как именно надо отображать это представление, аттрибуты представления по-умолчанию.


Аттрибуты


Каждое представление обладает определёнными аттрибутами. Аттрибут задаются с помощью инструкции (with-attributes), где задаётся – имя аттрибута, количество обязательных параметров (по-умолчанию оно равно 1).



Аттрибуты и их значения перечисляются в форме
(<представление> <аттрибут> <параметры> <аттрибут> ...)


Если хочется задать аттрибут с количеством параметров, превышающим обязательное число, то
необходимо заключить его в скобки в месте со всеми желаемыми параметры:
(<представление> (<аттрибут> <большое количество параметров>) ... )



Кроме того в представлении могут задаваться отложенные действия при возникновении тех или иных внешних событий, например при щелчке мышью.


Запрос значений аттрибутов производится с помощью конструкции:
(<идентификатор элемента-представления> <аттрибут с недостаточным количеством параметров>)
Изменение значения:
(<идентификатор> <аттрибут с более чем достаточным количеством параметров>)


Функции обратного вызова (callbacks)


Обработчики событий – те же аттрибуты, но несущие в качестве содержимого фунции, вызываемые при возникновении каких-либо событий, например, при нажатии на кнопку.
Создаётся функция обработки при помощи функции make-callback,
возможна более удобная запись с помощью конструкции when.


Следующие две записи эквивалентны:



Возможно «программно» вызывать обработчики событий, принцип такой же как и при получении значения аттрибутута:
(<идентификатор> <событие>)


Пример:

Ключевые слова


Также возможно определение ключевых слов, кои по сути являются просто более удобной формой записи символов,



Задаются ключевые слова с помощью инструкции (with-keywords)


Мета-аттрибуты


Ну и наконец последняя не рассмотренная возможность – создание мета-аттрибутов. Иногда часто требуется выполнить комплексные действия над аттрибутами, например для listbox часто требуется получить его элементы и определнить их количество, или после получения элементов
произвести из них какую-то выборку, или изменить какие-то части сложных аттрибутов (иконка элемента). Для удобства обслуживания такой ситуации можно ввести аттрибуты высокого уровня, которые будут внешне выглядеть как обычные аттрибуты, а на-самом деле «неявно» производить достаточно сложные действия



Определяются мета-аттрибуты инструкцией (with-meta-attributes), где задаётся: имя аттрибута, количество обязательных параметров (по-умолчанию 1), мета-методы при «запросе» или «изменении».


Мета-методы задаются в форме методов объектов.



Заключение


Основые часто используемые в alterator представления, аттрибуты, мета-аттрибуты и ключевые слова, определены в документе /std/base который настоятельно рекомендуется посмотреть для изучения того как работает система описания интерфейсовю.


 
Файлов нет. [Показать файлы/форму]
Один комментарий. [Показать комментарии/форму]