add ui:prepare_context_menu

This commit is contained in:
Evgeny
2021-08-10 12:25:17 +03:00
parent 971856bd33
commit 8364138f55
2 changed files with 33 additions and 0 deletions

View File

@@ -54,6 +54,24 @@ First line<br/>Second line
Нажатия на кнопки диалога должны обрабатываться в колбеке `on_dialog_action(number)`, где 1 - это первая кнопка, 2 - вторая, а -1 - нажатие кнопки "закрыть", если никакие кнопки не были указаны. `ui:show_edit_dialog()` возвращает текст в колбек `on_dialog_action(text)`.
# Контекстное меню
* `ui:prepare_context_menu(table)` - функция подготавливает контекстное меню, которое будет автоматически показано при долгом удержании элемента на экране.
В качестве аргумента функция принимает таблицу таблиц с иконками и названиями элементов меню. Например, следующий код подготовит контекстное меню из трех элементов:
```
ui:prepare_context_menu({
{ "share", "Menu item 1" },
{ "copy", "Menu item 2" },
{ "trash", "Menu item 3" },
})
```
Здесь `share`, `copy` и `trash` - это названия иконок, которое можно узнать на сайте [Fontawesome](https://fontawesome.com/).
При нажатии на любой элемент меню будет вызван колбек `function on_context_menu_click(item_idx, menu_idx)`, первый аргумент которого это индекс элемента, для которого было вызвано меню, а второй - индекса элемента самого меню.
# Системные функции
* `system:open_app(string)` - открывает приложение, имя пакета которого указано в аргументе;

15
samples/menu-sample.lua Normal file
View File

@@ -0,0 +1,15 @@
function on_resume()
ui:show_lines({
"1 item", "2 item", "3 item"
})
ui:prepare_context_menu({
{ "share", "Menu item 1" },
{ "copy", "Menu item 2" },
{ "trash", "Menu item 3" },
})
end
function on_context_menu_click(item_idx, menu_idx)
ui:show_toast("Clicked "..menu_idx.." menu item on "..item_idx.." screen element")
end