mirror of
https://github.com/d0k3/GodMode9.git
synced 2025-06-26 13:42:47 +00:00
Show wait message when deleting
This commit is contained in:
parent
c948a5a471
commit
d83ad781ee
@ -580,16 +580,22 @@ u32 GodMode() {
|
|||||||
if (n_marked) {
|
if (n_marked) {
|
||||||
if (ShowPrompt(true, "Delete %u path(s)?", n_marked)) {
|
if (ShowPrompt(true, "Delete %u path(s)?", n_marked)) {
|
||||||
u32 n_errors = 0;
|
u32 n_errors = 0;
|
||||||
|
ShowString("Deleting files, please wait...");
|
||||||
for (u32 c = 0; c < current_dir->n_entries; c++)
|
for (u32 c = 0; c < current_dir->n_entries; c++)
|
||||||
if (current_dir->entry[c].marked && !PathDelete(current_dir->entry[c].path))
|
if (current_dir->entry[c].marked && !PathDelete(current_dir->entry[c].path))
|
||||||
n_errors++;
|
n_errors++;
|
||||||
|
ClearScreenF(true, false, COLOR_STD_BG);
|
||||||
if (n_errors) ShowPrompt(false, "Failed deleting %u/%u path(s)", n_errors, n_marked);
|
if (n_errors) ShowPrompt(false, "Failed deleting %u/%u path(s)", n_errors, n_marked);
|
||||||
}
|
}
|
||||||
} else if (curr_entry->type != T_DOTDOT) {
|
} else if (curr_entry->type != T_DOTDOT) {
|
||||||
char namestr[36+1];
|
char namestr[36+1];
|
||||||
TruncateString(namestr, curr_entry->name, 36, 12);
|
TruncateString(namestr, curr_entry->name, 36, 12);
|
||||||
if ((ShowPrompt(true, "Delete \"%s\"?", namestr)) && !PathDelete(curr_entry->path))
|
if (ShowPrompt(true, "Delete \"%s\"?", namestr)) {
|
||||||
ShowPrompt(false, "Failed deleting:\n%s", namestr);
|
ShowString("Deleting %s\nPlease wait...", namestr);
|
||||||
|
if (!PathDelete(curr_entry->path))
|
||||||
|
ShowPrompt(false, "Failed deleting:\n%s", namestr);
|
||||||
|
ClearScreenF(true, false, COLOR_STD_BG);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
GetDirContents(current_dir, current_path);
|
GetDirContents(current_dir, current_path);
|
||||||
} else if ((pad_state & BUTTON_Y) && (clipboard->n_entries == 0)) { // fill clipboard
|
} else if ((pad_state & BUTTON_Y) && (clipboard->n_entries == 0)) { // fill clipboard
|
||||||
|
22
source/ui.c
22
source/ui.c
@ -155,6 +155,28 @@ void FormatBytes(char* str, u64 bytes) { // str should be 32 byte in size, just
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ShowString(const char *format, ...)
|
||||||
|
{
|
||||||
|
if (format && *format) { // only if there is something in there
|
||||||
|
u32 str_width, str_height;
|
||||||
|
u32 x, y;
|
||||||
|
|
||||||
|
char str[STRBUF_SIZE] = { 0 };
|
||||||
|
va_list va;
|
||||||
|
va_start(va, format);
|
||||||
|
vsnprintf(str, STRBUF_SIZE, format, va);
|
||||||
|
va_end(va);
|
||||||
|
|
||||||
|
str_width = GetDrawStringWidth(str);
|
||||||
|
str_height = GetDrawStringHeight(str);
|
||||||
|
x = (str_width >= SCREEN_WIDTH_TOP) ? 0 : (SCREEN_WIDTH_TOP - str_width) / 2;
|
||||||
|
y = (str_height >= SCREEN_HEIGHT) ? 0 : (SCREEN_HEIGHT - str_height) / 2;
|
||||||
|
|
||||||
|
ClearScreenF(true, false, COLOR_STD_BG);
|
||||||
|
DrawStringF(TOP_SCREEN, x, y, COLOR_STD_FONT, COLOR_STD_BG, str);
|
||||||
|
} else ClearScreenF(true, false, COLOR_STD_BG);
|
||||||
|
}
|
||||||
|
|
||||||
bool ShowPrompt(bool ask, const char *format, ...)
|
bool ShowPrompt(bool ask, const char *format, ...)
|
||||||
{
|
{
|
||||||
u32 str_width, str_height;
|
u32 str_width, str_height;
|
||||||
|
@ -66,6 +66,7 @@ void TruncateString(char* dest, const char* orig, int nsize, int tpos);
|
|||||||
void FormatNumber(char* str, u64 number);
|
void FormatNumber(char* str, u64 number);
|
||||||
void FormatBytes(char* str, u64 bytes);
|
void FormatBytes(char* str, u64 bytes);
|
||||||
|
|
||||||
|
void ShowString(const char *format, ...);
|
||||||
bool ShowPrompt(bool ask, const char *format, ...);
|
bool ShowPrompt(bool ask, const char *format, ...);
|
||||||
bool ShowUnlockSequence(u32 seqlvl, const char *format, ...);
|
bool ShowUnlockSequence(u32 seqlvl, const char *format, ...);
|
||||||
u32 ShowSelectPrompt(u32 n, const char** options, const char *format, ...);
|
u32 ShowSelectPrompt(u32 n, const char** options, const char *format, ...);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user