72 lines
2.4 KiB
Plaintext
72 lines
2.4 KiB
Plaintext
#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);
|
|
}
|