From f98e28e16c6f89314434d19c03d7bd64038f5655 Mon Sep 17 00:00:00 2001 From: Steven Smith Date: Mon, 2 Feb 2015 16:07:47 -0800 Subject: [PATCH] Make use of new ctrcommon UI functions. --- source/main.cpp | 97 ++++++------------------------------------------- 1 file changed, 11 insertions(+), 86 deletions(-) diff --git a/source/main.cpp b/source/main.cpp index e467101..5010e1a 100644 --- a/source/main.cpp +++ b/source/main.cpp @@ -8,87 +8,6 @@ typedef enum { DELETE } Mode; -bool ui_display_install_progress(int progress) { - std::stringstream stream; - stream << "Installing: ["; - int progressBars = progress / 4; - for(int i = 0; i < 25; i++) { - if(i < progressBars) { - stream << '|'; - } else { - stream << ' '; - } - } - - std::ios state(NULL); - state.copyfmt(stream); - stream << "] " << std::setfill('0') << std::setw(3) << progress; - stream.copyfmt(state); - stream << "%" << "\n"; - stream << "Press B to cancel." << "\n"; - - std::string str = stream.str(); - - screen_begin_draw(TOP_SCREEN); - screen_clear(0, 0, 0); - screen_draw_string(str, (screen_get_width() - screen_get_str_width(str)) / 2, (screen_get_height() - screen_get_str_height(str)) / 2, 255, 255, 255); - screen_end_draw(); - screen_swap_buffers_quick();; - - input_poll(); - return !input_is_pressed(BUTTON_B); -} - -void ui_display_deleting() { - std::string msg = "Deleting title..."; - screen_begin_draw(TOP_SCREEN); - screen_clear(0, 0, 0); - screen_draw_string(msg, (screen_get_width() - screen_get_str_width(msg)) / 2, (screen_get_height() - screen_get_str_height(msg)) / 2, 255, 255, 255); - screen_end_draw(); - screen_swap_buffers(); -} - -void ui_display_result(bool install, bool state) { - std::string msg = install ? (state ? "Install succeeded! Press start." : "Install failed! Press start.") : (state ? "Delete succeeded! Press start." : "Delete failed! Press start."); - while(platform_is_running()) { - input_poll(); - if(input_is_pressed(BUTTON_START)) { - break; - } - - screen_begin_draw(TOP_SCREEN); - screen_clear(0, 0, 0); - screen_draw_string(msg, (screen_get_width() - screen_get_str_width(msg)) / 2, (screen_get_height() - screen_get_str_height(msg)) / 2, 255, 255, 255); - screen_end_draw(); - screen_swap_buffers(); - } -} - -bool ui_prompt_operation(Mode mode) { - std::stringstream stream; - stream << (mode == INSTALL ? "Install" : "Delete") << " the selected title?" << "\n"; - stream << "Press A to confirm, B to cancel." << "\n"; - std::string str = stream.str(); - while(platform_is_running()) { - input_poll(); - if(input_is_pressed(BUTTON_A)) { - return true; - } - - if(input_is_pressed(BUTTON_B)) { - return false; - } - - screen_begin_draw(TOP_SCREEN); - screen_clear(0, 0, 0); - screen_draw_string(str, (screen_get_width() - screen_get_str_width(str)) / 2, (screen_get_height() - screen_get_str_height(str)) / 2, 255, 255, 255); - screen_end_draw(); - screen_swap_buffers(); - } - - return false; -} - int main(int argc, char **argv) { if(!platform_init()) { return 0; @@ -136,6 +55,12 @@ int main(int argc, char **argv) { return breakLoop; }; + auto onProgress = [&](int progress) { + ui_display_progress("Installing", "Press B to cancel.", true, progress); + input_poll(); + return !input_is_pressed(BUTTON_B); + }; + while(platform_is_running()) { std::string targetInstall; App targetDelete; @@ -148,13 +73,13 @@ int main(int argc, char **argv) { if(obtained) { if(mode == INSTALL) { - if(ui_prompt_operation(mode)) { - ui_display_result(true, app_install(destination, targetInstall, &ui_display_install_progress)); + if(ui_prompt("Install the selected title?", true)) { + ui_prompt(app_install(destination, targetInstall, onProgress) ? "Install succeeded!" : "Install failed!", false); } } else if(mode == DELETE) { - if(ui_prompt_operation(mode)) { - ui_display_deleting(); - ui_display_result(false, app_delete(targetDelete)); + if(ui_prompt("Delete the selected title?", true)) { + ui_display_message("Deleting title..."); + ui_prompt(app_delete(targetDelete) ? "Delete succeeded!" : "Delete failed!", false); } }