54 lines
1.3 KiB
C
54 lines
1.3 KiB
C
#include "include.h"
|
|
|
|
void waitForKey(char key) {
|
|
while (true) {
|
|
hidScanInput();
|
|
u32 key_down = hidKeysDown();
|
|
if (key_down & key) break;
|
|
}
|
|
}
|
|
|
|
int cursor_select(int items) {
|
|
int cursor_position = 1;
|
|
|
|
printf("\x1b[%d;1H>", cursor_position);
|
|
while (true) {
|
|
hidScanInput();
|
|
u32 key_down = hidKeysDown();
|
|
|
|
if (key_down & KEY_DDOWN) {
|
|
printf("\x1b[%d;1H ", cursor_position);
|
|
cursor_position = (cursor_position >= items) ? 1 : cursor_position + 1;
|
|
printf("\x1b[%d;1H>", cursor_position);
|
|
}
|
|
if (key_down & KEY_DUP) {
|
|
printf("\x1b[%d;1H ", cursor_position);
|
|
cursor_position = (cursor_position <= 1) ? items : cursor_position - 1;
|
|
printf("\x1b[%d;1H>", cursor_position);
|
|
}
|
|
if (key_down & KEY_B) {
|
|
return 0;
|
|
}
|
|
if (key_down & KEY_A) {
|
|
break;
|
|
}
|
|
|
|
printf("\x1b[10;16Hcursorpos: %d", cursor_position);
|
|
}
|
|
return cursor_position;
|
|
}
|
|
|
|
void print_menu(char menu_items[10][32], int items_length) {
|
|
for (int i = 0; i < items_length; i = i + 1) {
|
|
printf("\x1b[%d;2H%s", i+1, menu_items[i]);
|
|
}
|
|
}
|
|
|
|
int print_select_menu(char menu_items[10][32], int items_length) {
|
|
consoleClear();
|
|
print_menu(menu_items, items_length);
|
|
int selection = cursor_select(items_length);
|
|
return selection;
|
|
}
|
|
|