Пользовательский интерфейс системы AutoCAD. Адаптация существующих меню, создание новых меню, изменение функций элементов, страница 10

[ВИД 2]$S=ACAD.04_VIEW2                                                

[ВСТАВКА]$S=ACAD.05_INSERT                                        

Сразу после строки с именем раздела SCREEN следует строка с именем экранного меню (S), предваряемым двумя звездочками. Затем следует описание пунктов меню s, которое подчиняется общей структуре пунктов меню, хотя тег не используется и он может отсутствовать. Обычно длина пункта экранного меню не превышает восьми символов.              В наименованиях пунктов экранных меню традиционно применяется следующий принцип. Если с помощью пункта вызывается другое экранное меню, то наименование пункта не имеет на конце никаких символов. Если с помощью пункта выполняется команда системы AutoCAD или приложения, то наименование пункта завершается двоеточием. Если с помощью пункта вызывается диалоговое окно, то наименование пункта заканчивается многоточием.                                      

В  верхнем  пункте  (с  наименованием  AutoCAD)  указано  LISP-выражение   (ai_rootmenu),   которое   возвращает  корневое  экранное   меню. Операция, начинающаяся с символов $s=, вызывает экранное меню первого уровня. Имя экранного меню обычно указывается с именем группы, которое отделяется точкой от имени меню (например, acad.osnap). Если имя группы опущено, то AutoCAD считает, что нужно загрузить экранное меню с таким именем из базовой группы. Если щелкнуть левой кнопкой мыши по пункту *  *  *  *, то появится экранное меню следующего (первого) уровня с функциями объектной привязки.                                                                                                        

В листинге 4.5 приведено экранное меню OSNAP из группы меню ACAD.

Листинг 4.5. Экранное меню первого уровня OSNAP из файла «acad.mnu»

**OSNAP 3  

[Отслеж  ]_tt                                       

[Смещение]_from        [Привяз:]'_-osnap

[Конточка] _endp

[Середина]_ mid

[Пересеч   ]_int

[Каж пер  ]_appint  

[Продолж]_ехt

[Параллел]_раr

[Центр       ]_cen

[Квадрант]__qua         

[KacaT]_tan

[Нормаль   ]_per

[Узел         ]_nod

[Твставки")_ ins

[Ближайш   ] _ nea

[Ничего     ]_non

[Привяз. . ] '_+dsettings  2 

Это экранное меню содержит, в основном, функции объектной привязки и используется обычно во время работы команд, требующих указания на экране графических объектов. Один пункт заканчивается двоеточием и один — многоточием. В строке с именем этого меню присутствует еще число 3. Это означает, что данное меню будет загружаться таким образом, что первый пункт (отслеж) займет в зоне экранных меню боксы, начиная с третьего. Поэтому содержимое боксов 1 и 2 останется прежним. При загрузке экранного меню следующего уровня желательно, чтобы оно закрывало только пункты меню предыдущего уровня (и, может быть, даже не полностью) и не перекрывало постоянно используемых пунктов меню (например, корневого меню).

28. Средства смены меню

Смена экранного меню выполняется либо с помощью комбинации символов, начинающихся в макросе с $s= (см. листинг 4.4), либо с помощью функции «menucmd». LISP-выражение (menucmd "s=ACAD.OSNAP") тоже загружает меню первого уровня OSNAP в зону экранных меню.

Для возврата к предыдущему меню используется либо комбинация $s= (на конце пробел или точка с запятой), либо аналогичная комбинация с именем группы (например, $s=acad. , что означает возврат к предыдущему меню группы ACAD). Такой же принцип работает при загрузке с помощью функции «menucmd».

Системная переменная MENUCTL, если она имеет значение «1», заставляет при работе команд системы AutoCAD автоматически менять содержимое экранного меню на экранное меню, соответствующее выполняемой команде (в таком меню обычно отображаются опции этой команды). Так, например, при выполнении команды КРУГ (CIRCLE) на экране появляется меню с I именем CIRCLE (листинг 4.6).

 Листинг 4.6. Экранное меню CIRCLE из файла acad.mnu

**CIRCLE   3

[Круг:        ]^C^C_circle