Дизайн навигатора
Дизайн навигатора определяет то, каким образом навигатор будет отображаться пользователю на экране используемого им устройства (будем называть пространство экрана, на котором отображается навигатор, рабочим столом).
Дизайн навигатора состоит из множества окон - компонентов рабочего стола, каждый из котор ых отображает некоторые элементы навигатора.
Для каждого окна должен быть задан заголовок, который будет использоваться при отображении окна в пользовательском интерфейсе.
Расположение элементов навигатора в окнах
Каждому элементу навигатора можно задать, в какое окно должны рисоваться его потомки. При необходимости, в него может рисоваться и сам элемент. Таким образом, для каждого окна однозначно определяется множество поддеревьев элементов навигатора, которое в нем отображается. Графически это можно представить следующим образом:
Расположение окон на рабочем столе
Каждое окно занимает предопределенный участок рабочего стола. Графически это можно представить следующим образом:
Весь рабочий стол имеет размеры 100 x 100
точек. При создании окна необходимо указать левую верхнюю координату, ширину и высоту окна, выраженную в точках. Желательно, чтобы окна "накрывали" всю область рабочего стола. Если этого не происходит, то свободная область будет отдана одному из окон (не гарантируется какому именно). Также допускается, чтобы два окна имели абсолютно идентичные координаты и размеры. В таком случае они будут отображаться на одном и том же месте, но переключение между ними будет идти при помощи вкладок.
Выбранная папка
В любой момент времени в каждом окне может быть одна текущая выбранная пользователем папка навигатора. Соответственно, если элемент навигатора принадлежит окну, отличному от окна его родительской папки, то этот элемент показывается в своем окне в том и только в том случае, если его родительская папка является выбранной в своем окне. Предопределенная папка System.root
всегда считается выбранной. Если в каком-то окне не должен отображаться ни один элемент навигатора, то это окно автоматически прячется.
Системные окна
Существует несколько предопределенных системных окон, которые необходимы для работы клиентского приложения:
System.forms
- окно, в котором будут открываться все пользовательские формы.System.log
- окно, в которое будут выводиться все сообщения пользователю. Если это окно будет невидимо, то сообщения будут выдаваться пользователю в виде системных диалоговых форм.
Также для удобства разработки автоматически создаются дополнительные окна:
System.root
- горизонтальный тулбар, в который рекомендуется отображать непосредственные потомки элемента навигатораSystem.root
. В этом окне по умолчанию отображается папка навигатораSystem.root
.System.toolbar
- вертикальный тулбар, в который рекомендуется отображать часть потомков элементов навигатора, кото рые отображаются в окнеSystem.root
.System.system
- тулбар с системными кнопками, предоставляющими удобный доступ к основным функциям интерфейса.System.logo
- окно для отображения логотипа.
Расположение по умолчанию
По умолчанию, рабочий стол имеет следующее расположение (в скобках указаны левая координата, верхняя координата, ширина, высота):
Язык
Для управления окнами необходимо использовать инструкцию WINDOW
.
Примеры
// cоздание системных окон в модуле System
WINDOW logo HORIZONTAL POSITION(0, 0, 10, 6) VALIGN(CENTER) HALIGN(START) HIDETITLE HIDESCROLLBARS CLASS logoWindowClass();
WINDOW root HORIZONTAL POSITION(10, 0, 70, 6) VALIGN(CENTER) HALIGN(CENTER) HIDETITLE HIDESCROLLBARS CLASS rootWindowClass();
WINDOW system HORIZONTAL POSITION(80, 0, 20, 6) VALIGN(CENTER) HALIGN(END) HIDETITLE HIDESCROLLBARS CLASS systemWindowClass();
WINDOW toolbar VERTICAL POSITION(0, 6, 20, 94) HIDETITLE CLASS toolbarWindowClass();
// горизонтальное окно внизу рабочего стола, в котором все кнопки будут выравниваться по центру, а текст - выравниваться вверх
// в это окно можно, например, помещать формы для быстрого открытия
WINDOW hotforms HORIZONTAL BOTTOM VALIGN(CENTER) TEXTVALIGN(START);