Display price of sol in main menu
This commit is contained in:
parent
7c65367a71
commit
6fff2e7525
96
main.cpp
96
main.cpp
|
@ -36,16 +36,17 @@ double getConversionRate() {
|
|||
return rate;
|
||||
}
|
||||
|
||||
void displayMenu(WINDOW *menu_win, int highlight, const std::string choices[], int n_choices) {
|
||||
void displayMenu(WINDOW *menu_win, int highlight, const std::string choices[], int n_choices, double solRate) {
|
||||
int x = 2, y = 2;
|
||||
box(menu_win, 0, 0);
|
||||
mvwprintw(menu_win, 1, 1, "1 SOL = $%.2f", solRate);
|
||||
for(int i = 0; i < n_choices; ++i) {
|
||||
if(highlight == i + 1) {
|
||||
wattron(menu_win, A_REVERSE);
|
||||
mvwprintw(menu_win, y, x, "%s", choices[i].c_str());
|
||||
mvwprintw(menu_win, y + 1, x, "%s", choices[i].c_str());
|
||||
wattroff(menu_win, A_REVERSE);
|
||||
} else
|
||||
mvwprintw(menu_win, y, x, "%s", choices[i].c_str());
|
||||
mvwprintw(menu_win, y + 1, x, "%s", choices[i].c_str());
|
||||
++y;
|
||||
}
|
||||
wrefresh(menu_win);
|
||||
|
@ -73,61 +74,64 @@ int main() {
|
|||
noecho();
|
||||
cbreak();
|
||||
|
||||
int highlight = 1;
|
||||
int choice = 0;
|
||||
int c;
|
||||
|
||||
start_color();
|
||||
init_pair(1, COLOR_CYAN, COLOR_BLACK);
|
||||
|
||||
double rate = getConversionRate();
|
||||
|
||||
WINDOW *menu_win = newwin(7, 60, 4, 4);
|
||||
keypad(menu_win, TRUE);
|
||||
mvprintw(0, 0, "Use arrow keys to go up and down, Press enter to select a choice");
|
||||
refresh();
|
||||
|
||||
const std::string choices[] = { "Convert SOL to USD", "Convert USD to SOL", "Exit" };
|
||||
const std::string choices[] = {"Convert SOL to USD", "Convert USD to SOL", "Exit"};
|
||||
int n_choices = sizeof(choices) / sizeof(std::string);
|
||||
displayMenu(menu_win, highlight, choices, n_choices);
|
||||
|
||||
int highlight = 1;
|
||||
|
||||
displayMenu(menu_win, highlight, choices, n_choices, rate);
|
||||
|
||||
int choice = 0;
|
||||
int c;
|
||||
|
||||
while(1) {
|
||||
c = wgetch(menu_win);
|
||||
switch(c) {
|
||||
case KEY_UP:
|
||||
if(highlight == 1)
|
||||
highlight = n_choices;
|
||||
else
|
||||
--highlight;
|
||||
break;
|
||||
case KEY_DOWN:
|
||||
if(highlight == n_choices)
|
||||
highlight = 1;
|
||||
else
|
||||
++highlight;
|
||||
break;
|
||||
case 10: {
|
||||
choice = highlight;
|
||||
clear();
|
||||
refresh();
|
||||
if (choice == 3) {
|
||||
endwin();
|
||||
return 0;
|
||||
c = wgetch(menu_win);
|
||||
switch(c) {
|
||||
case KEY_UP:
|
||||
if(highlight == 1)
|
||||
highlight = n_choices;
|
||||
else
|
||||
--highlight;
|
||||
break;
|
||||
case KEY_DOWN:
|
||||
if(highlight == n_choices)
|
||||
highlight = 1;
|
||||
else
|
||||
++highlight;
|
||||
break;
|
||||
case 10: {
|
||||
choice = highlight;
|
||||
clear();
|
||||
refresh();
|
||||
if (choice == 3) {
|
||||
endwin();
|
||||
return 0;
|
||||
}
|
||||
rate = getConversionRate();
|
||||
if (rate == 0.0) {
|
||||
printw("Failed to fetch conversion rate. Please try again later.\n");
|
||||
} else {
|
||||
processChoice(choice, rate);
|
||||
}
|
||||
printw("Press any key to return to the menu.");
|
||||
getch();
|
||||
clear();
|
||||
displayMenu(menu_win, highlight, choices, n_choices, rate);
|
||||
break;
|
||||
}
|
||||
double rate = getConversionRate();
|
||||
if (rate == 0.0) {
|
||||
printw("Failed to fetch conversion rate. Please try again later.\n");
|
||||
} else {
|
||||
processChoice(choice, rate);
|
||||
}
|
||||
printw("Press any key to return to the menu.");
|
||||
getch();
|
||||
clear();
|
||||
displayMenu(menu_win, highlight, choices, n_choices);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
displayMenu(menu_win, highlight, choices, n_choices);
|
||||
displayMenu(menu_win, highlight, choices, n_choices, rate);
|
||||
}
|
||||
|
||||
endwin();
|
||||
|
|
Loading…
Reference in New Issue