Вторую часть статьи я посвятил новому типу пользовательского провайдера – CustomContextMenu.
Прошлые статьи по теме:
- AIMP4: Skin Engine
- AIMP4: Skin Engine – элементы управления. Часть 1
- AIMP4: Skin Engine – элементы управления. Часть 2
- AIMP4: Skin Engine – пользовательские локализации
- AIMP4: Skin Engine – графика
- AIMP4: Skin Engine – оптимизации
- AIMP4: Skin Engine – пользовательские провайдеры. Часть 1
Пользовательское контекстное меню
CustomContextMenu позволит создать свое собственное контекстное меню и вынести в него любую из команд, что представлена стандартным или пользовательским провайдером.
Как и любой другой пользовательский провайдер, контекстное меню создается через одноименный диалог. Провайдер не имеет точек доступа, а в качестве параметров выступает редактор пунктов меню:
Каждому из пунктов меню можно задать заголовок (как напрямую, так и посредством биндинга), иконку (чей размер должен быть строго равен 16х16 пикселей), а так же связи:
State, в данном случае, отвечает за состояние “галочки”, что вы можете сейчас наблюдать у некоторых пунктов стандартных меню.
Для добавления разделителя, необходимо задать пункту меню в качестве заголовка ‘-‘. Непосредственно перед показом меню из него временно убираются невидимые пункты меню, а так же разделители, что располагаются по краям меню после этой операции. Помимо этого разделители, идущие друг за другом, схлопываются до одного.
Пользовательское контекстное меню можно привязать к элементу управления двумя способами: путем его назначения через свойство PopupMenu у элемента или посредством биндинга:
Иконка для пункта меню указывается индивидуально или из списка стандартных иконок?
Только индивидуально
Свойство Caption поддерживает макросы пользовательских локализаций?
Видимо, будет ещё третья часть про пользовательские провайдеры?
Потому, что в первых двух записях не было сказано про “провайдеры-скрипты”.
Да, естественно