Секция «contexts» - описание структуры контекстного меню объекта.
Объекты контекстных меню состоят из ключа-идентификатора и набора параметров:
Параметр | Описание |
---|---|
«priority» | (необязательный) Целочисленное значение приоритета сортировки. Чем выше значение, тем дальше объект сдвигается в порядке очереди |
«flags» | (необязательный) Флаги отображения. Допускаемые значения: «0» - показывать, «1» - скрыть. По умолчанию установлено значение «1» |
«items» | Массив вложенных элементов меню |
Элементами меню могут быть объекты со следующими параметрами:
Action или Макрос | |
---|---|
В качестве элемента указывается строковый идентификатор action'а или макрос | |
Элемент вызываемый по умолчанию при двойном клике мыши по объекту | |
«default» | Строковый идентификатор action'а или макрос |
Подменю | |
«id» | Строковый идентификатор подменю |
«title» | Строка отображаемая на экране в родительском контекстном меню |
«items» | Массив вложенных элементов |
Встраиваемое контекстное меню | |
«contextrefs» | Ключ-идентификатор контекстного меню (объекта секции «contexts») |
Разделитель | |
Разделитель обозначается знаком дефиса заключённого в кавычки («-») |
Ниже приведён пример plugin-файла, в котором мы создадим контекстное меню «my_custom_ctx» и встроим его в уже существующее меню «rbproj», с целью его расширения. Контекстное меню «rbproj» связано с корневым элементом структуры проекта. Plugin-файл сформирует следующий вид расширенного контекстного меню:
{ "actions":{ "my_action_id_1": { "cmd": "my_command_1", "title": "Пользовательская команда 1", "description": "Вызов пользовательской комманды 1", "icon": "my_icon1" }, "my_action_id_2": { "cmd": "my_command_2", "title": "Пользовательская команда 2", "description": "Вызов пользовательской комманды 2", "icon": "my_icon2" }, "my_action_id_3": { "cmd": "my_command_3", "title": "Пользовательская команда 3", "description": "Вызов пользовательской комманды 3", "icon": "my_icon3" } }, // Секция контекстных меню "contexts" :{ // Идентификатор контекстного меню "my_custom_ctx" :{ // Значение для сортировки "priority": 1000, // Отображения меню "flags": "$(editor)", // Вложенные элементы "items":[ // Идентификатор action'а (объект секции "actions") "my_action_id_1", // Подменю { // Идентификатор подменю "id": "my_sub_ctx", // Строка отображаемая в родительском контекстном меню "title": "Пользовательское подменю", // Вложенные элементы "items": [ // Элемент вызываемый при двойном клике мыши по объекту { "default" : "my_action_id_2" }, // Разделитель "-", // Макрос "$(if,$(editor),my_action_id_3,my_action_id_4)" ] } ] }, // Существующее контекстное меню "rbproj" :{ "items":[ "-", // Встраиваем описаное выше контекстное меню в существующее { "contextrefs": "my_custom_ctx" } ] } } }