disable OK button while seed is generating

This commit is contained in:
TakaRikka
2026-08-22 23:01:09 -07:00
parent dd5da64332
commit 2885c7d9d8
2 changed files with 11 additions and 6 deletions
+6 -6
View File
@@ -392,8 +392,8 @@ void SaveNewRandomizerPreset(const std::string& presetName, bool overwriteExisti
// again but force overwrite the existing preset
if (std::filesystem::exists(presetFilepath) && !overwriteExisting) {
UiDialogAction actions[] = {
{"No", onOverwriteDialogNo, nullptr, false},
{"Yes", onOverwriteDialogYes, nullptr, false},
{sizeof(UiDialogAction), "No", onOverwriteDialogNo, nullptr, false, nullptr},
{sizeof(UiDialogAction), "Yes", onOverwriteDialogYes, nullptr, false, nullptr},
};
actions[1].user_data = (void*)presetName.data();
@@ -476,8 +476,8 @@ void onPresetDialogCancel(ModContext* ctx, UiDialogHandle dialog, void* user_dat
void buildPresetSaveDialog(ModContext* ctx, void* user_data) {
UiDialogAction actions[] = {
{"Save", onPresetDialogSave, nullptr, false},
{"Cancel", onPresetDialogCancel, nullptr, false},
{sizeof(UiDialogAction), "Save", onPresetDialogSave, nullptr, false, nullptr},
{sizeof(UiDialogAction), "Cancel", onPresetDialogCancel, nullptr, false, nullptr},
};
auto buildPaneFn = [](ModContext* ctx, UiElementHandle pane, void* user_data, ModError* out_error) {
@@ -516,7 +516,7 @@ void onPresetLoad(ModContext* ctx, void* user_data) {
std::vector<std::string> presetList{};
void buildPresetLoadDialog(ModContext* ctx, void* user_data) {
UiDialogAction actions[] = {
{"Cancel", onPresetDialogLoadCancel, nullptr, false},
{sizeof(UiDialogAction), "Cancel", onPresetDialogLoadCancel, nullptr, false, nullptr},
};
auto buildPaneFn = [](ModContext* ctx, UiElementHandle pane, void* user_data, ModError* out_error) {
@@ -577,7 +577,7 @@ bool isSeedDeleteDisabled(ModContext* ctx, void* user_data) {
void buildSeedDeleteDialog(ModContext* ctx, void* user_data) {
UiDialogAction actions[] = {
{"Cancel", onSeedDeleteCancel, nullptr, false},
{sizeof(UiDialogAction), "Cancel", onSeedDeleteCancel, nullptr, false, nullptr},
};
auto buildPaneFn = [](ModContext* ctx, UiElementHandle pane, void* user_data, ModError* out_error) {
@@ -49,10 +49,15 @@ static ModResult buildDialog() {
desc.variant = UI_DIALOG_NORMAL;
UiDialogAction action = {
.struct_size = sizeof(UiDialogAction),
.label = "OK",
.on_pressed = OnDialogActionOK,
.user_data = nullptr,
.keep_open = false,
.is_disabled = [](ModContext*, void*) {
// disable button while seed is generating
return seedGenStatus.load() == SeedGenerateStatus::Generating;
}
};
desc.actions = &action;
desc.action_count = 1;