#include "virtual_dialogs.nvgt" string uiDefaultWindowTitle = ""; bool uiUsePromptAsDialogTitle = true; funcdef string ui_text_transform_callback(const string& in text); ui_text_transform_callback @uiTextTransformCallback = null; void ui_set_text_transform_callback(ui_text_transform_callback @callback) { @uiTextTransformCallback = @callback; } string ui_transform_text(const string& in text) { if (@uiTextTransformCallback is null) return text; return uiTextTransformCallback(text); } void ui_set_default_window_title(const string windowTitle) { uiDefaultWindowTitle = windowTitle; } void ui_set_use_prompt_as_dialog_title(const bool enabled) { uiUsePromptAsDialogTitle = enabled; } string ui_resolve_dialog_title(const string title, const string prompt) { if (uiUsePromptAsDialogTitle && prompt != "") { return prompt; } string dialogTitle = title; if (dialogTitle == "") { dialogTitle = prompt; } return dialogTitle; } void ui_restore_window(const string windowTitle = "") { string resolvedTitle = windowTitle; if (resolvedTitle == "") { resolvedTitle = uiDefaultWindowTitle; } if (resolvedTitle != "") { show_window(resolvedTitle); } } string ui_input_box(const string title, const string prompt, const string defaultValue = "", const string windowTitle = "") { string transformedTitle = ui_transform_text(title); string transformedPrompt = ui_transform_text(prompt); string dialogTitle = ui_resolve_dialog_title(transformedTitle, transformedPrompt); string result = virtual_input_box(dialogTitle, transformedPrompt, defaultValue); ui_restore_window(windowTitle); return result; } int ui_question(const string title, const string prompt, const string windowTitle = "", const bool canCancel = false) { string transformedTitle = ui_transform_text(title); string transformedPrompt = ui_transform_text(prompt); string dialogTitle = ui_resolve_dialog_title(transformedTitle, transformedPrompt); int result = virtual_question(dialogTitle, transformedPrompt, canCancel); ui_restore_window(windowTitle); return result; } void ui_info_box(const string title, const string heading, const string message, const string windowTitle = "") { virtual_info_box(ui_transform_text(title), ui_transform_text(heading), ui_transform_text(message)); ui_restore_window(windowTitle); }