Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
developers:references:core.plugin:contexts [2023/01/19 19:27] proxor [Подменю] |
developers:references:core.plugin:contexts [2023/01/19 20:02] (текущий) proxor [Элементы меню] |
||
---|---|---|---|
Строка 6: | Строка 6: | ||
^ Параметр ^ Описание ^ | ^ Параметр ^ Описание ^ | ||
- | | "priority" | Целочисленное значение приоритета сортировки. Чем выше значение, тем дальше объект сдвигается в порядке очереди | | + | | "priority" | (необязательный) Целочисленное значение приоритета сортировки. Чем выше значение, тем дальше объект сдвигается в порядке очереди | |
| "flags" | (необязательный) Флаги отображения. Допускаемые значения: «0» - показывать, «1» - скрыть.\\ По умолчанию установлено значение "1" | | | "flags" | (необязательный) Флаги отображения. Допускаемые значения: «0» - показывать, «1» - скрыть.\\ По умолчанию установлено значение "1" | | ||
| "items" | Массив вложенных элементов меню | | | "items" | Массив вложенных элементов меню | | ||
Строка 13: | Строка 13: | ||
===== Элементы меню ===== | ===== Элементы меню ===== | ||
Элементами меню могут быть объекты со следующими параметрами: | Элементами меню могут быть объекты со следующими параметрами: | ||
- | + | ^ [[developers:references:core.plugin:actions|Action]] или [[developers:references:core.plugin.macros|Макрос]] ^^ | |
- | ^ [[developers:references:core.plugin:actions|Action]] или [[developers:references:core.plugin.macros|Макрос]] ^^ | + | |
| В качестве элемента указывается строковый идентификатор **[[developers:references:core.plugin:actions|action'а]]** или **[[developers:references:core.plugin.macros|макрос]]** || | | В качестве элемента указывается строковый идентификатор **[[developers:references:core.plugin:actions|action'а]]** или **[[developers:references:core.plugin.macros|макрос]]** || | ||
- | ^ Элемент вызываемый по умолчанию при двойном клике мыши по объекту ^^ | + | ^ Элемент вызываемый по умолчанию при двойном клике мыши по объекту ^^ |
| "default" | Строковый идентификатор **[[developers:references:core.plugin:actions|action'а]]** или **[[developers:references:core.plugin.macros|макрос]]** | | | "default" | Строковый идентификатор **[[developers:references:core.plugin:actions|action'а]]** или **[[developers:references:core.plugin.macros|макрос]]** | | ||
- | ^ Подменю ^^ | + | ^ Подменю ^^ |
| "id" | Строковый идентификатор подменю | | | "id" | Строковый идентификатор подменю | | ||
| "title" | Строка отображаемая на экране в родительском контекстном меню | | | "title" | Строка отображаемая на экране в родительском контекстном меню | | ||
| "items" | Массив вложенных элементов | | | "items" | Массив вложенных элементов | | ||
- | ^ Встраиваемое контекстное меню ^^ | + | ^ Встраиваемое контекстное меню ^^ |
| "contextrefs" | Ключ-идентификатор контекстного меню (объекта секции "contexts") | | | "contextrefs" | Ключ-идентификатор контекстного меню (объекта секции "contexts") | | ||
- | ^ Разделитель ^^ | + | ^ Разделитель ^^ |
| Разделитель обозначается знаком дефиса заключённого в кавычки **("-")** || | | Разделитель обозначается знаком дефиса заключённого в кавычки **("-")** || | ||
- | ==== Пример plugin-файла ==== | + | ===== Пример plugin-файла ===== |
- | Ниже приведён пример plugin-файла, в котором мы создадим контекстное меню **"my_custom_ctx"** и встроим его в уже существующее меню **"rbproj"**, с целью его расширения. Контекстное меню **"rbproj"** связано с корневым элементом структуры проекта. Plugin-файл сформирует следующий вид расширенного контекстного меню: | + | Ниже приведён пример plugin-файла, в котором мы создадим контекстное меню **"my_custom_ctx"** и встроим его в уже существующее меню **"rbproj"**, с целью его расширения. Контекстное меню **"rbproj"** связано с корневым элементом структуры проекта. **Plugin-файл** сформирует следующий вид расширенного контекстного меню: |
{{ :developers:tutorial:ctx:tut_custom_ctx.png?direct |}} | {{ :developers:tutorial:ctx:tut_custom_ctx.png?direct |}} | ||
+ | |||
+ | <file javascript my_contexts.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" } | ||
+ | ] | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </file> |