Add touch keyboard based file renaming (#16)

This commit is contained in:
Epicpkmn11 2018-10-22 14:37:34 -05:00 committed by RocketRobz
parent 554c2a3efa
commit d6ca3e7dfd
2 changed files with 24 additions and 2 deletions

View File

@ -80,7 +80,7 @@ int main() {
// Start the RTC tracking IRQ
initClockIRQ();
//touchInit();
touchInit();
fifoInit();

View File

@ -56,6 +56,11 @@ bool nameEndsWith (const string& name) {
return true;
}
void OnKeyPressed(int key) {
if(key > 0)
iprintf("%c", key);
}
bool dirEntryPredicate (const DirEntry& lhs, const DirEntry& rhs) {
if (!lhs.isDirectory && rhs.isDirectory) {
@ -224,6 +229,9 @@ int fileBrowse_A(DirEntry* entry, char path[PATH_MAX]) {
assignedOp[maxCursors] = 2;
printf(" Copy to fat:/gm9i/out\n");
}
maxCursors++;
assignedOp[maxCursors] = 4;
printf(" Rename file\n");
printf("\n");
printf("(<A> select, <B> cancel)");
while (true) {
@ -294,6 +302,20 @@ int fileBrowse_A(DirEntry* entry, char path[PATH_MAX]) {
nitroSecondaryDrive = secondaryDrive;
}
}
else if (assignedOp[optionOffset] == 4) {
consoleDemoInit();
Keyboard *kbd = keyboardDemoInit();
char newName[256];
kbd->OnKeyPressed = OnKeyPressed;
keyboardShow();
printf("Rename to: ");
iscanf("%s", newName);
keyboardHide();
consoleClear();
rename(entry->name.c_str(), newName);
}
return assignedOp[optionOffset];
}
if (pressed & KEY_B) {
@ -525,7 +547,7 @@ string browseForFile (void) {
if (getOp == 0) {
// Return the chosen file
return entry->name;
} else if (getOp == 1 || getOp == 2 || (getOp == 3 && nitroMounted)) {
} else if (getOp == 1 || getOp == 2 || (getOp == 3 && nitroMounted) || getOp == 4) {
getDirectoryContents (dirContents); // Refresh directory listing
if (getOp == 3 && nitroMounted) {
screenOffset = 0;