diff --git a/res/modules/internal/gui_util.lua b/res/modules/internal/gui_util.lua index 4766cbfd9..81e50b21e 100644 --- a/res/modules/internal/gui_util.lua +++ b/res/modules/internal/gui_util.lua @@ -136,6 +136,36 @@ function gui.show_message(text, actual_callback) input.add_callback("key:escape", callback, gui.root[id]) end +function gui.show_input_dialog(text, actual_callback, validator, confirm_text) + local id = "dialog_"..random.uuid() + + local callback = function() + if not gui.root[id.."_input"].valid then + return + end + gui.root[id]:destruct() + if actual_callback then + actual_callback(gui.root[id.."_input"].text) + end + end + gui.root.root:add(string.format([[ + + + + + + + + ]], id, string.escape_xml(text), id, string.escape_xml(confirm_text or gui.str("OK"))), { + callback=callback, + validator=validator or function() return #text > 0 end + }) + input.add_callback("key:escape", callback, gui.root[id]) + gui.root[id.."_input"].focused = true +end + + function gui.ask(text, on_yes, on_no) on_yes = on_yes or function() end on_no = on_no or function() end