Simulate a progressbar. (For testing purpose) ( ͡° ͜ʖ ͡°)

Press Select in the MainMenu, to show the progressbar. This will get removed after the download progressbar is implemented.
This commit is contained in:
VoltZ
2019-11-15 19:13:41 +01:00
parent bb2cecc622
commit bd25846c4d
2 changed files with 128 additions and 65 deletions
+7
View File
@@ -38,7 +38,14 @@ public:
void Draw(void) const override; void Draw(void) const override;
void Logic(u32 hDown, u32 hHeld, touchPosition touch) override; void Logic(u32 hDown, u32 hHeld, touchPosition touch) override;
private: private:
void DrawMainMenu(void) const;
void DisplayTestbar(void) const;
void ProgressBarLogic(u32 hDown, u32 hHeld);
int keyRepeatDelay = 3;
int mode = 0;
int Selection = 0; int Selection = 0;
std::vector<Structs::ButtonPos> mainButtons = { std::vector<Structs::ButtonPos> mainButtons = {
{10, 40, 140, 35, -1}, // Scriptlist. {10, 40, 140, 35, -1}, // Scriptlist.
{170, 40, 140, 35, -1}, // ScriptBrowse. {170, 40, 140, 35, -1}, // ScriptBrowse.
+56
View File
@@ -40,10 +40,21 @@ extern bool exiting;
extern bool touching(touchPosition touch, Structs::ButtonPos button); extern bool touching(touchPosition touch, Structs::ButtonPos button);
extern bool checkWifiStatus(void); extern bool checkWifiStatus(void);
u64 current = 0;
u64 total = 100;
// This is for the Script Creator, so no one can access it for now, until it is stable or so. // This is for the Script Creator, so no one can access it for now, until it is stable or so.
bool isTesting = false; bool isTesting = false;
void MainMenu::Draw(void) const { void MainMenu::Draw(void) const {
if (mode == 0) {
DrawMainMenu();
} else if (mode == 1) {
DisplayTestbar();
}
}
void MainMenu::DrawMainMenu(void) const {
Gui::DrawTop(); Gui::DrawTop();
Gui::DrawStringCentered(0, 2, 0.7f, Config::TxtColor, "Universal-Updater", 400); Gui::DrawStringCentered(0, 2, 0.7f, Config::TxtColor, "Universal-Updater", 400);
Gui::DrawString(397-Gui::GetStringWidth(0.5f, V_STRING), 237-Gui::GetStringHeight(0.5f, V_STRING), 0.5f, Config::TxtColor, V_STRING); Gui::DrawString(397-Gui::GetStringWidth(0.5f, V_STRING), 237-Gui::GetStringHeight(0.5f, V_STRING), 0.5f, Config::TxtColor, V_STRING);
@@ -65,7 +76,51 @@ void MainMenu::Draw(void) const {
Gui::DrawString((320-Gui::GetStringWidth(0.6f, "FTP"))/2+150-70, mainButtons[5].y+10, 0.6f, Config::TxtColor, "FTP", 140); Gui::DrawString((320-Gui::GetStringWidth(0.6f, "FTP"))/2+150-70, mainButtons[5].y+10, 0.6f, Config::TxtColor, "FTP", 140);
} }
void MainMenu::DisplayTestbar(void) const {
Gui::DrawTop();
Gui::DrawStringCentered(0, 2, 0.7f, Config::TxtColor, "Downloading <Filename> . <Extension>...", 400);
std::string progressDownload = std::to_string(current);
progressDownload += " KB / ";
progressDownload += std::to_string(total);
progressDownload += " KB downloaded.";
Gui::DrawStringCentered(0, 80, 0.6f, Config::TxtColor, progressDownload, 400);
Gui::Draw_Rect(30, 120, 340, 30, BLACK);
Gui::Draw_Rect(31, 121, (((double)current/(double)total) * 338.0), 28, WHITE);
Gui::DrawBottom();
}
void MainMenu::ProgressBarLogic(u32 hDown, u32 hHeld) {
if (keyRepeatDelay) keyRepeatDelay--;
if (hHeld & KEY_LEFT && !keyRepeatDelay) {
if (current > 0) {
current--;
} else {
current = total;
}
}
if (hHeld & KEY_RIGHT && !keyRepeatDelay) {
if (current < total) {
current++;
} else {
current = 0;
}
}
if (hDown & KEY_SELECT) {
mode = 0;
}
}
void MainMenu::Logic(u32 hDown, u32 hHeld, touchPosition touch) { void MainMenu::Logic(u32 hDown, u32 hHeld, touchPosition touch) {
if (mode == 1) {
ProgressBarLogic(hDown, hHeld);
} else {
if (hDown & KEY_SELECT) {
mode = 1;
}
if (hDown & KEY_START) { if (hDown & KEY_START) {
exiting = true; exiting = true;
} }
@@ -160,3 +215,4 @@ void MainMenu::Logic(u32 hDown, u32 hHeld, touchPosition touch) {
} }
} }
} }
}