Перейти к основному содержимому
Версия: 6.x

Дизайн навигатора

Дизайн навигатора определяет то, каким образом навигатор будет отображаться пользователю на экране используемого им устройства (будем называть пространство экрана, на котором отображается навигатор, рабочим столом).

Дизайн навигатора состоит из множества окон - компонентов рабочего стола, каждый из которых отображает некоторые элементы навигатора.

Для каждого окна должен быть задан заголовок, который будет использоваться при отображении окна в пользовательском интерфейсе.

Расположение элементов навигатора в окнах

Каждому элементу навигатора можно задать, в какое окно должны рисоваться его потомки. При необходимости, в него может рисоваться и сам элемент. Таким образом, для каждого окна однозначно определяется множество поддеревьев элементов навигатора, которое в нем отображается. Графически это можно представить следующим образом:

Docusaurus themed imageDocusaurus themed image

Расположение окон на рабочем столе

Каждое окно занимает предопределенный участок рабочего стола. Графически это можно представить следующим образом:

Docusaurus themed imageDocusaurus themed image

Весь рабочий стол имеет размеры 100 x 100 точек. При создании окна необходимо указать левую верхнюю координату, ширину и высоту окна, выраженную в точках. Желательно, чтобы окна "накрывали" всю область рабочего стола. Если этого не происходит, то свободная область будет отдана одному из окон (не гарантируется какому именно). Также допускается, чтобы два окна имели абсолютно идентичные координаты и размеры. В таком случае они будут отображаться на одном и том же месте, но переключение между ними будет идти при помощи вкладок.

Выбранная папка

В любой момент времени в каждом окне может быть одна текущая выбранная пользователем папка навигатора. Соответственно, если элемент навигатора принадлежит окну, отличному от окна его родительской папки, то этот элемент показывается в своем окне в том и только в том случае, если его родительская папка является выбранной в своем окне. Предопределенная папка System.root всегда считается выбранной. Если в каком-то окне не должен отображаться ни один элемент навигатора, то это окно автоматически прячется.

Системные окна

Существует несколько предопределенных системных окон, которые необходимы для работы клиентского приложения:

  • System.forms - окно, в котором будут открываться все пользовательские формы.
  • System.log - окно, в которое будут выводиться все сообщения пользователю. Если это окно будет невидимо, то сообщения будут выдаваться пользователю в виде системных диалоговых форм.

Также для удобства разработки автоматически создаются дополнительные окна:

  • System.root - горизонтальный тулбар, в который рекомендуется отображать непосредственные потомки элемента навигатора System.root. В этом окне по умолчанию отображается папка навигатора System.root.
  • System.toolbar - вертикальный тулбар, в который рекомендуется отображать часть потомков элементов навигатора, которые отображаются в окне System.root.
  • System.system - тулбар с системными кнопками, предоставляющими удобный доступ к основным функциям интерфейса.
  • System.logo - окно для отображения логотипа.

Расположение по умолчанию

По умолчанию, рабочий стол имеет следующее расположение (в скобках указаны левая координата, верхняя координата, ширина, высота):

Docusaurus themed imageDocusaurus themed image

Язык

Для управления окнами необходимо использовать инструкцию 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);