mirror of
https://github.com/J-D-K/JKSV.git
synced 2026-08-23 02:45:15 -05:00
Fix some text UI stuff, get rid of gross if.
This commit is contained in:
11
inc/menu.h
11
inc/menu.h
@@ -7,12 +7,6 @@
|
||||
#include "gfx.h"
|
||||
#include "miscui.h"
|
||||
|
||||
enum menuTouch
|
||||
{
|
||||
MENU_NOTHING,
|
||||
MENU_DOUBLE_REL
|
||||
};
|
||||
|
||||
namespace ui
|
||||
{
|
||||
class menu
|
||||
@@ -32,9 +26,6 @@ namespace ui
|
||||
//Returns selected option
|
||||
int getSelected() { return selected; }
|
||||
|
||||
//Returns touch event from buttons
|
||||
int getTouchEvent() { return retEvent; }
|
||||
|
||||
//Draws the menu at x and y. rectWidth is the width of the rectangle drawn under the selected
|
||||
void draw(const clr& textClr);
|
||||
|
||||
@@ -53,7 +44,7 @@ namespace ui
|
||||
//Options vector
|
||||
std::vector<std::string> opt;
|
||||
//Selected + frame counting for auto-scroll
|
||||
int selected = 0, fc = 0, start = 0, retEvent = MENU_NOTHING;
|
||||
int selected = 0, fc = 0, start = 0;
|
||||
//How much we shift the color of the rectangle
|
||||
uint8_t clrSh = 0;
|
||||
bool clrAdd = true;
|
||||
|
||||
42
inc/uistrmap.h
Normal file
42
inc/uistrmap.h
Normal file
@@ -0,0 +1,42 @@
|
||||
#ifndef UISTRMAP_H
|
||||
#define UISTRMAP_H
|
||||
|
||||
#include <unordered_map>
|
||||
//This is only included in UI so I don't have a nasty if else if else if else if else if
|
||||
//Might be a shitty way to pull this off, but meh
|
||||
static std::unordered_map<std::string, unsigned> uistrdef;
|
||||
|
||||
inline void transLoadInit()
|
||||
{
|
||||
uistrdef["author"] = 0;
|
||||
uistrdef["userHelp"] = 1;
|
||||
uistrdef["titleHelp"] = 2;
|
||||
uistrdef["folderHelp"] = 3;
|
||||
uistrdef["optHelp"] = 4;
|
||||
uistrdef["yt"] = 5;
|
||||
uistrdef["nt"] = 6;
|
||||
uistrdef["on"] = 7;
|
||||
uistrdef["off"] = 8;
|
||||
uistrdef["confirmBlacklist"] = 9;
|
||||
uistrdef["confirmOverwrite"] = 10;
|
||||
uistrdef["confirmRestore"] = 11;
|
||||
uistrdef["confirmDelete"] = 12;
|
||||
uistrdef["confirmCopy"] = 13;
|
||||
uistrdef["confirmEraseNand"] = 14;
|
||||
uistrdef["confirmEraseFolder"] = 15;
|
||||
uistrdef["confirmHead"] = 16;
|
||||
uistrdef["copyHead"] = 17;
|
||||
uistrdef["noSavesFound"] = 18;
|
||||
uistrdef["advMenu"] = 19;
|
||||
uistrdef["extMenu"] = 20;
|
||||
uistrdef["optMenu"] = 21;
|
||||
uistrdef["optMenuExp"] = 22;
|
||||
uistrdef["holdingText"] = 23;
|
||||
}
|
||||
|
||||
inline void transLoadExit()
|
||||
{
|
||||
uistrdef.clear();
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -1,5 +1,5 @@
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <unordered_map>
|
||||
#include <string>
|
||||
#include <cstring>
|
||||
#include <algorithm>
|
||||
|
||||
@@ -369,7 +369,6 @@ size_t textGetWidth(const char *str, const font *f, int sz)
|
||||
|
||||
width += slot->advance.x >> 6;
|
||||
}
|
||||
|
||||
return width;
|
||||
}
|
||||
|
||||
|
||||
185
src/ui.cpp
185
src/ui.cpp
@@ -10,6 +10,9 @@
|
||||
#include "util.h"
|
||||
#include "file.h"
|
||||
|
||||
//for ui translation loading
|
||||
#include "uistrmap.h"
|
||||
|
||||
#define VER_STRING "v. 06.07.2020"
|
||||
|
||||
//text mode
|
||||
@@ -120,77 +123,129 @@ static void loadTrans()
|
||||
}
|
||||
}
|
||||
|
||||
transLoadInit();
|
||||
fs::dataFile lang(file);
|
||||
while(lang.readNextLine(true))
|
||||
{
|
||||
std::string varName = lang.getName();
|
||||
//Holy shit this'll be fun
|
||||
if(varName == "author")
|
||||
author = lang.getNextValueStr();
|
||||
else if(varName == "userHelp")
|
||||
ui::userHelp = lang.getNextValueStr();
|
||||
else if(varName == "titleHelp")
|
||||
ui::titleHelp = lang.getNextValueStr();
|
||||
else if(varName == "folderHelp")
|
||||
ui::folderHelp = lang.getNextValueStr();
|
||||
else if(varName == "optHelp")
|
||||
ui::optHelp = lang.getNextValueStr();
|
||||
else if(varName == "yt")
|
||||
ui::yt = lang.getNextValueStr();
|
||||
else if(varName == "nt")
|
||||
ui::nt = lang.getNextValueStr();
|
||||
else if(varName == "on")
|
||||
ui::on = lang.getNextValueStr();
|
||||
else if(varName == "off")
|
||||
ui::off = lang.getNextValueStr();
|
||||
else if(varName == "confirmBlacklist")
|
||||
ui::confBlacklist = lang.getNextValueStr();
|
||||
else if(varName == "confirmOverwrite")
|
||||
ui::confOverwrite = lang.getNextValueStr();
|
||||
else if(varName == "confirmRestore")
|
||||
ui::confRestore = lang.getNextValueStr();
|
||||
else if(varName == "confirmDelete")
|
||||
ui::confDel = lang.getNextValueStr();
|
||||
else if(varName == "confirmCopy")
|
||||
ui::confCopy = lang.getNextValueStr();
|
||||
else if(varName == "confirmEraseNand")
|
||||
ui::confEraseNand = lang.getNextValueStr();
|
||||
else if(varName == "confirmEraseFolder")
|
||||
ui::confEraseFolder = lang.getNextValueStr();
|
||||
else if(varName == "confirmHead")
|
||||
ui::confirmHead = lang.getNextValueStr();
|
||||
else if(varName == "copyHead")
|
||||
ui::copyHead = lang.getNextValueStr();
|
||||
else if(varName == "noSavesFound")
|
||||
ui::noSavesFound = lang.getNextValueStr();
|
||||
else if(varName == "advMenu")
|
||||
switch(uistrdef[lang.getName()])
|
||||
{
|
||||
int ind = lang.getNextValueInt();
|
||||
ui::advMenuStr[ind] = lang.getNextValueStr();
|
||||
case 0:
|
||||
author = lang.getNextValueStr();
|
||||
break;
|
||||
|
||||
case 1:
|
||||
ui::userHelp = lang.getNextValueStr();
|
||||
break;
|
||||
|
||||
case 2:
|
||||
ui::titleHelp = lang.getNextValueStr();
|
||||
break;
|
||||
|
||||
case 3:
|
||||
ui::folderHelp = lang.getNextValueStr();
|
||||
break;
|
||||
|
||||
case 4:
|
||||
ui::optHelp = lang.getNextValueStr();
|
||||
break;
|
||||
|
||||
case 5:
|
||||
ui::yt = lang.getNextValueStr();
|
||||
break;
|
||||
|
||||
case 6:
|
||||
ui::nt = lang.getNextValueStr();
|
||||
break;
|
||||
|
||||
case 7:
|
||||
ui::on = lang.getNextValueStr();
|
||||
break;
|
||||
|
||||
case 8:
|
||||
ui::off = lang.getNextValueStr();
|
||||
break;
|
||||
|
||||
case 9:
|
||||
ui::confBlacklist = lang.getNextValueStr();
|
||||
break;
|
||||
|
||||
case 10:
|
||||
ui::confOverwrite = lang.getNextValueStr();
|
||||
break;
|
||||
|
||||
case 11:
|
||||
ui::confRestore = lang.getNextValueStr();
|
||||
break;
|
||||
|
||||
case 12:
|
||||
ui::confDel = lang.getNextValueStr();
|
||||
break;
|
||||
|
||||
case 13:
|
||||
ui::confCopy = lang.getNextValueStr();
|
||||
break;
|
||||
|
||||
case 14:
|
||||
ui::confEraseNand = lang.getNextValueStr();
|
||||
break;
|
||||
|
||||
case 15:
|
||||
ui::confEraseFolder = lang.getNextValueStr();
|
||||
break;
|
||||
|
||||
case 16:
|
||||
ui::confirmHead = lang.getNextValueStr();
|
||||
break;
|
||||
|
||||
case 17:
|
||||
ui::copyHead = lang.getNextValueStr();
|
||||
break;
|
||||
|
||||
case 18:
|
||||
ui::noSavesFound = lang.getNextValueStr();
|
||||
break;
|
||||
|
||||
case 19:
|
||||
{
|
||||
int ind = lang.getNextValueInt();
|
||||
ui::advMenuStr[ind] = lang.getNextValueStr();
|
||||
}
|
||||
break;
|
||||
|
||||
case 20:
|
||||
{
|
||||
int ind = lang.getNextValueInt();
|
||||
ui::exMenuStr[ind] = lang.getNextValueStr();
|
||||
}
|
||||
break;
|
||||
|
||||
case 21:
|
||||
{
|
||||
int ind = lang.getNextValueInt();
|
||||
ui::optMenuStr[ind] = lang.getNextValueStr();
|
||||
}
|
||||
break;
|
||||
|
||||
case 22:
|
||||
{
|
||||
int ind = lang.getNextValueInt();
|
||||
ui::optMenuExp[ind] = lang.getNextValueStr();
|
||||
}
|
||||
break;
|
||||
|
||||
case 23:
|
||||
{
|
||||
int ind = lang.getNextValueInt();
|
||||
ui::holdingText[ind] = lang.getNextValueStr();
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
ui::showMessage("*Translation File Error:*", "On Line: %s\n*%s* is not a known or valid string name.", lang.getLine(), lang.getName());
|
||||
break;
|
||||
}
|
||||
else if(varName == "extMenu")
|
||||
{
|
||||
int ind = lang.getNextValueInt();
|
||||
ui::exMenuStr[ind] = lang.getNextValueStr();
|
||||
}
|
||||
else if(varName == "optMenu")
|
||||
{
|
||||
int ind = lang.getNextValueInt();
|
||||
ui::optMenuStr[ind] = lang.getNextValueStr();
|
||||
}
|
||||
else if(varName == "optMenuExp")
|
||||
{
|
||||
int ind = lang.getNextValueInt();
|
||||
ui::optMenuExp[ind] = lang.getNextValueStr();
|
||||
}
|
||||
else if(varName == "holdingText")
|
||||
{
|
||||
int ind = lang.getNextValueInt();
|
||||
ui::holdingText[ind] = lang.getNextValueStr();
|
||||
}
|
||||
else
|
||||
ui::showMessage("*Translation File Error:*", "On Line: %s\n*%s* is not a known or valid string name.", lang.getLine(), varName.c_str());
|
||||
}
|
||||
transLoadExit();
|
||||
}
|
||||
|
||||
void ui::initTheme()
|
||||
|
||||
@@ -149,9 +149,7 @@ void performCopyMenuOps()
|
||||
std::remove(delPath.c_str());
|
||||
}
|
||||
if(commit)
|
||||
{
|
||||
fsdevCommitDevice(dev.c_str());
|
||||
};
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -354,6 +352,7 @@ void ui::advModePrep(const std::string& svDev, const FsSaveDataType& _type, bool
|
||||
{
|
||||
commit = commitOnWrite;
|
||||
type = _type;
|
||||
|
||||
saveMenu.setParams(30, 98, 602);
|
||||
sdMenu.setParams(648, 98, 602);
|
||||
copyMenu.setParams(472, 278, 304);
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
|
||||
static const clr menuColorLight = clrCreateU32(0xFFF05032), menuColorDark = clrCreateU32(0xFFC5FF00);
|
||||
|
||||
|
||||
void ui::menu::setParams(const unsigned& _x, const unsigned& _y, const unsigned& _rW)
|
||||
{
|
||||
x = _x;
|
||||
|
||||
@@ -159,9 +159,9 @@ void ui::textFolderMenuUpdate(const uint64_t& down, const uint64_t& held)
|
||||
else
|
||||
overwriteBackup(folderMenu.getSelected() - 1);
|
||||
}
|
||||
else if(down & KEY_Y)
|
||||
else if(down & KEY_Y && folderMenu.getSelected() > 0)
|
||||
restoreBackup(folderMenu.getSelected() - 1);
|
||||
else if(down & KEY_X)
|
||||
else if(down & KEY_X && folderMenu.getSelected() > 0)
|
||||
deleteBackup(folderMenu.getSelected() - 1);
|
||||
else if(down & KEY_MINUS)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user