Строки статуса |
Линия статуса предназначена для связи горячих клавиш с командами. Под горячими клавишами подразумеваются комбинации клавиш, которые действуют как элементы меню. Линия статуса выводится в нижней части экрана, начиная с левого края.
При активизации элемента графического интерфейса в нижней части окна прорисовывается соответствующая ему линия статуса. Для выбора линии статуса приложение последовательно просматривает все заданные в программе интервалы. Как только status-контекст активного элемента попадает в какой-либо интервал, активизируется соответствующая ему строка статуса. Если константа не принадлежит ни одному интервалу, строка статуса будет пустой. Поэтому рекомендуется последний интервал описывать scNoContext..scAllContexts. Рекомендуется описывать интервалы так, чтобы меньший интервал был описан до большего.
При нажатии клавиши последовательно просматриваются элементы строки статуса активного элемента. Если в строке статуса отсутствует код этой клавиши, то управление передается активному элементу. В противном случае создается событие типа evCommand с полем command, равному полю command, найденного элемента status-line.
<описание-линий-статуса> = <идентификатор> statusline { { <описание-интервала> <описание-линии> } };
<идентификатор> - идентификатор описания строк статуса.
<описание-интервала> - интервал значений статус-контекста, соответствующих данному описанию статус-линии:
<описание-интервала> = (<идентификатор-status-1> .. <идентификатор-status-2>)
<идентификатор-status-1> и <идентификатор-status-2> - ранее объявленные константы, например, использованные при задании элемента меню.
<описание-линии> - описание статус-линии, выводимой при попадании статус-контекста активного элемента в указанный интервал.
<описание-линии> = { <описание-клавиши> { <описание-клавиши> } };
<описание-клавиши> - описание элемента статус-строки.
<описание-клавиши> = <текст>, <идентификатор-команды>, <идентификатор-горячего-ключа>;
<текст> - строка в кавычках, текст между символами "~" выделяется цветом.
<идентификатор-команды> - имя константы типа word, генерируется событие evCommand с полем command, равным значению константы, и infoPtr = nil.
<идентификатор-горячего-ключа> - имя константы типа word, код горячей клавиши.
Здесь заданы две линии статуса: первая для меню и вторая для всех остальных случаев. Константы scNoContext и scAllContexts являются стандартными и предопределенными.
application statusLine { // Объявление контекстно-зависимой линии статуса (scMenuContext..scMenuContext) { // Объявление элемента линии статуса '~F1~ - Help ¦ Вы в меню', cmHelp, kbF1; } (scNoContext..scAllContexts) { '~Alt-X~ - Quit', cmQuit, scAltX; '~Alt-C~ - Colour Setup', cmColourSetup, kbAltC; '~F10~ - Menu', cmMenu, kbF10 '', cmAbout, kbShiftF10 } }