====== Ключ "menubars" ======
Секция "menubars" - описывает структуру главного меню программы.
{
"menubars": {
"rbproj": {
"priority": 1001,
"items": [
{
"id": "mnu_project",
"title": "&Проект",
"flags": "0",
"priority": 1002,
"items": [
"id_create",
{
"id": "mnu_open",
"title": "&Открыть",
"items": [
"id_open_file",
"id_open_project"
]
},
"-",
{
"id": "mnu_recent",
"title": "Последние файлы",
"flags": "$(if,$(mru,0),0,2)"
}
]
}
]
},
"rbproj": {
"priority": -1001,
"items": [
"id_create",
{
"id": "mnu_project2",
"title": "&Проект2"
}
]
},
"rbproj.mnu_project.mnu_recent": [
"id_mru 0",
"id_mru 1",
"id_mru 2",
"id_mru 3",
"id_mru 4",
"id_mru 5",
"id_mru 6",
"-",
"id_mru_clear"
]
}
}
Меню имеет древовидную структуру. Корневым элементом по умолчанию является элемент с ключом, совпадающим с ключом проектной модели. Для проектов [[http://www.topomatic.ru|Топоматик Робур]] по умолчанию это "rbproj".
Каждый элемент меню состоит из следующих параметров
{
"id": "mnu_recent"
"title": "Последние файлы",
"flags": "$(if,$(mru,0),0,2)",
"priority": 1002,
"items": [
"id_create"
]
}
* "id" - ключ меню
* "title" - заголовок меню
* "flags" - флаги отображения, допускается следующие значения: «0» - показывать, «1» - скрыть, «2» - выключить
* "priority" - приоритет определяющий положение
* "items" - список вложенных элементов, в качестве элементов могут быть использованы, ключи команд из секции [[developers:references:core.plugin:actions|actions]], ключи элементов меню, или их полное описание.
Структура меню и его содержимое может быть. объявлено в разных местах. В этом случае содержимое меню описывается в виде
"ключ": [ "значение1", "значение2", ... "значениеN"]. Ключ - это полный путь до меню, от корневого элемента, разделенный символом ".". Значение это ключи команд из секции [[developers:references:core.plugin:actions|actions]], ключи элементов меню, или их полное описание.
"rbproj.mnu_project.mnu_recent": [
"id_mru 0",
"id_mru 1",
"id_mru 2",
"id_mru 3",
"id_mru 4",
"id_mru 5",
"id_mru 6",
"-",
"id_mru_clear"
]
}
Чтобы разделить содержимое одной группы меню, можно использовать разделитель.
Разделитель между элементами меню добавляется с помощью ключа "-"
В примере ниже, в файле 1.plugin в рамках проекта [[http://www.topomatic.ru|Топоматик Робур]] объявляется меню с названием "Примеры", а в файле 2.plugin формируется содержимое этого меню.
...
#файл plugin1
{
...
"menubars": {
"rbproj": {
"items":[
{
"id": "mu_example",
"title": "Примеры"
}
]
}
}
#файл plugin2
{
...
"menubars": {
"rbproj.mu_example":[
"id_action1",
"id_action2",
{
"id": "mu_example2",
"title": "Примеры2"
}
],
"rbproj.mu_example.mu_example2":[
"id_action3",
"id_action4"
]
}
}