mirror of
https://github.com/DarkStore-3DS/DarkStore.git
synced 2026-07-03 08:39:05 +00:00
102 lines
3.4 KiB
C++
102 lines
3.4 KiB
C++
/*
|
||
* This file is part of Universal-Updater
|
||
* Copyright (C) 2019-2020 Universal-Team
|
||
*
|
||
* This program is free software: you can redistribute it and/or modify
|
||
* it under the terms of the GNU General Public License as published by
|
||
* the Free Software Foundation, either version 3 of the License, or
|
||
* (at your option) any later version.
|
||
*
|
||
* This program is distributed in the hope that it will be useful,
|
||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
* GNU General Public License for more details.
|
||
*
|
||
* You should have received a copy of the GNU General Public License
|
||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||
*
|
||
* Additional Terms 7.b and 7.c of GPLv3 apply to this file:
|
||
* * Requiring preservation of specified reasonable legal notices or
|
||
* author attributions in that material or in the Appropriate Legal
|
||
* Notices displayed by works containing it.
|
||
* * Prohibiting misrepresentation of the origin of that material,
|
||
* or requiring that modified versions of such material be marked in
|
||
* reasonable ways as different from the original version.
|
||
*/
|
||
|
||
#include "animation.hpp"
|
||
#include "storeUtils.hpp"
|
||
#include "structs.hpp"
|
||
|
||
extern bool touching(touchPosition touch, Structs::ButtonPos button);
|
||
static const std::vector<Structs::ButtonPos> sidePos = {
|
||
{ 0, 0, 40, 40 },
|
||
{ 0, 40, 40, 40 },
|
||
{ 0, 80, 40, 40 },
|
||
{ 0, 120, 40, 40 },
|
||
{ 0, 160, 40, 40 },
|
||
{ 0, 200, 40, 40 }
|
||
};
|
||
|
||
/*
|
||
Dessinez la partie Menu latéral.
|
||
int currentMenu : Le Mode Store / Menu courant.
|
||
*/
|
||
void StoreUtils::DrawSideMenu(int currentMenu) {
|
||
for (int i = 0; i < 6; i++) {
|
||
if (i == currentMenu) {
|
||
Gui::Draw_Rect(sidePos[i].x, sidePos[i].y, sidePos[i].w, sidePos[i].h, SIDEBAR_SELECTED_COLOR);
|
||
|
||
} else {
|
||
Gui::Draw_Rect(sidePos[i].x, sidePos[i].y, sidePos[i].w, sidePos[i].h, SIDEBAR_UNSELECTED_COLOR);
|
||
}
|
||
}
|
||
|
||
GFX::DrawSprite(sprites_info_idx, sidePos[0].x, sidePos[0].y);
|
||
GFX::DrawSprite(sprites_download_idx, sidePos[1].x, sidePos[1].y);
|
||
Animation::DrawQueue(sidePos[2].x, sidePos[2].y);
|
||
GFX::DrawSprite(sprites_search_idx, sidePos[3].x, sidePos[3].y);
|
||
GFX::DrawSprite(sprites_sort_idx, sidePos[4].x, sidePos[4].y);
|
||
GFX::DrawSprite(sprites_settings_idx, sidePos[5].x, sidePos[5].y);
|
||
|
||
Gui::Draw_Rect(40, 0, 1, 240, BAR_OUTL_COLOR);
|
||
}
|
||
|
||
/*
|
||
Poignée de menu latéral.
|
||
Ici vous pouvez..
|
||
- Basculer entre les menus à travers la barre latérale.
|
||
int tMenu : Référence au Mode Store / Menu.
|
||
bool &fetch : Référence de la variable download fetch.. donc nous savons, si nous avons besoin de récupérer les entrées de téléchargement.
|
||
int &lastMenu : Référence au dernier menu.
|
||
*/
|
||
void StoreUtils::SideMenuHandle(int ¤tMenu, bool &fetch, int &lastMenu) {
|
||
Animation::QueueAnimHandle();
|
||
|
||
if (hDown & KEY_TOUCH) {
|
||
for (int i = 0; i < 6; i++) {
|
||
if (touching(touch, sidePos[i])) {
|
||
lastMenu = currentMenu;
|
||
if (i == 1) fetch = true; // Récupérez la liste des téléchargements, si 1.
|
||
currentMenu = i;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
if (hRepeat & KEY_R) {
|
||
if (currentMenu < 5) {
|
||
lastMenu = currentMenu;
|
||
if (currentMenu + 1 == 1) fetch = true; // Récupérez la liste des téléchargements, si 1.
|
||
currentMenu++;
|
||
}
|
||
}
|
||
|
||
if (hRepeat & KEY_L) {
|
||
if (currentMenu > 0) {
|
||
lastMenu = currentMenu;
|
||
if (currentMenu - 1 == 1) fetch = true; // Récupérez la liste des téléchargements, si 1.
|
||
currentMenu--;
|
||
}
|
||
}
|
||
} |