From 8364138f5502addcc45e62c8c6b2e3a1d5e34bf2 Mon Sep 17 00:00:00 2001 From: Evgeny Date: Tue, 10 Aug 2021 12:25:17 +0300 Subject: [PATCH] add ui:prepare_context_menu --- README_ru.md | 18 ++++++++++++++++++ samples/menu-sample.lua | 15 +++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 samples/menu-sample.lua diff --git a/README_ru.md b/README_ru.md index 906e938..896a8e9 100644 --- a/README_ru.md +++ b/README_ru.md @@ -54,6 +54,24 @@ First line
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)` - открывает приложение, имя пакета которого указано в аргументе; diff --git a/samples/menu-sample.lua b/samples/menu-sample.lua new file mode 100644 index 0000000..4d7ffc8 --- /dev/null +++ b/samples/menu-sample.lua @@ -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