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

[_Flyout(<подсказка>,   <пиктограмма-16>,   <пиктограмма-24>,   <какая>, <панель>)]

Параметры  <подсказка>, <пиктограмма-16> И <пиктограмма-24> имеют тот же смысл, что аналогичные параметры обычной кнопки. Параметр <какая> может принимать одно из значений:

_OwnIcon — показать собственную пиктограмму групповой кнопки;

_OtherIcon — показать пиктограмму последней нажатой кнопки группы.

Параметр <панель> является ссылкой на имя меню, которое содержит кнопки, входящие в данную группу (таким образом, группа должна оформляться в файле шаблона меню как обычная панель). Групповые кнопки, описание которых приведено в листинге 4.10, ссылаются на панели инструментов с именами меню TB__OBJECT_SNAP, ACAD.TB_UCS, ACAD.TB_JNQUIRY.

38. Операции с пиктограммами кнопок

Создавать свои пиктограммы для кнопок панелей инструментов можно любым растровым редактором (например, редактором Paint, входящим в состав операционной системы Windows). Можно пользоваться редактором пиктограмм, который входит в состав системы AutoCAD, и вызывается по щелчку кнопки Редактирование(Edit) диалогового окна Свойства кнопки (Button Properties).

Диалоговое окно Редактор кнопок (Buttons Editor) позволяет выполнять любые операции с пиктограммами кнопок. В верхней части окна горизонтальный ряд из четырех кнопок задает операцию (раскрашивание пикселей, рисование линии, рисование окружности, стирание пикселей). Справа расположена цветовая палитра, позволяющая назначить цвет для операций рисования и раскрашивания. Для облегчения операций редактирования изображения в центре диалогового окна Редактор кнопок (Buttons Editor) приводится укрупненное изображение кнопки. Флажок Сетка(Grid) выводит вспомогательную сетку пикселей. Кнопка <Убрать> (Clear) позволяет очистить изображение, если вы хотите нарисовать новую пиктограмму. Кнопка <Открыть> (Open) дает возможность открыть другой файл в BMP-формате. Назначение кнопок <Отменить> (Undo), <Сохранить как> (Save As), <Сохранить>(Save), <Закрыть>(Close), <Справка>(Help)понятно из их наименований. Отредактировав изображение, вы можете сохранить его под старым именем или записать в новый файл.

39. Контекстные меню

Контекстные меню — это меню, которые вызываются при нажатии правой кнопки мыши и пункты которых зависят от контекста (например, от имени выполняемой команды).        

40. Разделы с контекстными меню

Контекстным меню в файле шаблона соответствуют разделы РОР0, РОР500, РОР501 и другие разделы с именами типа РОРn, где п принимает значения от 500 до 999. Меню РОР0 вызывается щелчком правой кнопки мыши при нажатой клавише <Shift> (фактически оно вызывается через меню AUX2), а остальные — щелчком правой кнопки мыши без клавиши <Shift>.

Структура разделов контекстных меню аналогична структуре разделов падающих меню. После строки с именем раздела должна идти строка с именем контекстного меню (строка начинается двумя звездочками). Некоторые имена зарезервированы для нужд системы AutoCAD.

В приложении 4 приведен текст разделов РОР500 (имя меню — GRIPS), РОР501 (CMDEFAULT), POP502 (CMEDIT), POP503 (CMCOMMAND), РОР504 (OBJECTS_DIMENSION), POP505 (OBJECT_VIEWPORT), POP508  (OBJECT_TEXT).   

41. Схема работы контекстных меню      

Меню GRIPS вызывается по щелчку правой кнопки мыши, если в рисунке высвечены ручки объектов, и одна из ручек выбрана (т. е. имеет красный цвет). Меню CMDEFAULT работает в тот момент, когда нет высвеченных ручек, и не выполняется никакая команда системы AutoCAD. Если нет работающей команды, но высвечены ручки и ни одна из них не выбрана, то вызывается меню CMEDIT. К этому меню добавляется содержимое меню, имя которого формируется по следующему принципу. Если выбран только один объект, то меню должно иметь префикс object_. Если выбрано несколько объектов, то меню должно иметь префикс objects_. Далее к имени нужно добавить тип выбранного объекта или объектов (если выбрано несколько объектов, то они должны быть одного типа). Поэтому к зарезервированным относятся такие имена меню, как OBJECT_TEXT, OBJECT_LINE, OBJECTS_DIMENSION и т. п.