Latest changes.

This commit is contained in:
Storm Dragon
2026-02-24 23:11:47 -05:00
parent 7531eacf64
commit 59f2880498
3 changed files with 63 additions and 16 deletions

26
ui.nvgt
View File

@@ -2,6 +2,18 @@
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;
@@ -36,20 +48,24 @@ void ui_restore_window(const string windowTitle = "") {
string ui_input_box(const string title, const string prompt, const string defaultValue = "",
const string windowTitle = "") {
string dialogTitle = ui_resolve_dialog_title(title, prompt);
string result = virtual_input_box(dialogTitle, prompt, defaultValue);
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 dialogTitle = ui_resolve_dialog_title(title, prompt);
int result = virtual_question(dialogTitle, prompt, canCancel);
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(title, heading, message);
virtual_info_box(ui_transform_text(title), ui_transform_text(heading), ui_transform_text(message));
ui_restore_window(windowTitle);
}