Освой компьютер
Следующее
двойное слово определяет связи текущего пункта меню с другими пунктами: dc.l 0 ;нет связей
Далее следует указатель на текст заголовка определяемого пункта меню, либо
на графическую структуру, если флаг ITEMTEXT очищен. Например: dc.l menu01text ;указатель на текст заголовка Если говорить более точно, здесь указывается адрес не ASCII-строки текста,
а специальной структуры, определяющей текст заголовка. Формат этой
структуры мы описывали в п. 7.3. Следующее двойное слово имеет смысл только в том случае, если установлен
флаг HIGHIMAGE, и содержит указатель на графическую структуру, которая
должна использоваться для выделения текущего пункта меню при его выборе.
Если флаг HIGHIMAGE очищен, эта запись игнорируется, и, следовательно,
может содержать любое значение: dc.l 0 ;не использовать графику Следующий байт определяет клавишу, которая должна использоваться в
\"горячей\" комбинации (вместе с ) для выбора текущего пункта
меню, и имеет смысл только в том случае, если флаг COMMSEQ установлен: dc.b \'A\' ;выбираем комбинацию + \'A\' Следующее двойное слово определяет подменю, которое должно активизироваться
при выборе текущего пункта меню. Это слово должно содержать указатель на
блок данных подменю (который имеет ту же структуру, что и описываемый в
данный момент), либо ноль, если подменю не требуется. Заметим, что
допускается только один уровень вложенности меню, так что для подменю этот
указатель игнорируется. align
dc.l 0 ;не показывать подменю Здесь мы используем директиву align, так как предыдущая запись имеет размер
1 байт. И завершает описываемый блок данных двойное слово, которое используется
Intuition при выборе сразу нескольких пунктов меню: dc.l 0 ;заполняется системой Intuition
В качестве примера рассмотрим полный набор данных для определения двух
пунктов меню верхнего уровня, каждый из которых состоит из двух подпунктов.
AMIGA: ПРОГРАММИРОВАНИЕ НА АССЕМБЛЕРЕ.
|