This commit is contained in:
parent
a359a5cfcc
commit
37624e4878
@ -1,5 +1,6 @@
|
||||
#include "gameske_funkce.h"
|
||||
#include <menu.h>
|
||||
#include <unistd.h>
|
||||
#include <clocale>
|
||||
#include <cstddef>
|
||||
#include <cstdint>
|
||||
@ -91,4 +92,33 @@ void print_in_middle(WINDOW* win, int starty, int startx, int width,
|
||||
mvwprintw(win, y, x, "%s", string);
|
||||
wattroff(win, color);
|
||||
refresh();
|
||||
}
|
||||
}
|
||||
|
||||
void spawncmd() {
|
||||
// Use a fixed-size array instead of dynamic allocation
|
||||
char cmd[100] = {0}; // Initialize to prevent undefined behavior
|
||||
|
||||
// Create command window with error checking
|
||||
WINDOW* cmd_win = newwin(3, 40, LINES - 3, 0);
|
||||
if (cmd_win == NULL) {
|
||||
// Handle window creation failure
|
||||
return;
|
||||
}
|
||||
|
||||
keypad(cmd_win, TRUE);
|
||||
box(cmd_win, 0, 0);
|
||||
mvwprintw(cmd_win, 1, 1, "Command: ");
|
||||
wrefresh(cmd_win);
|
||||
|
||||
// Use correct size (99 to leave room for null terminator)
|
||||
wgetnstr(cmd_win, cmd, 99);
|
||||
|
||||
mvprintw(LINES - 2, 0, "You Entered: %s", cmd);
|
||||
refresh(); // Refresh the standard screen
|
||||
|
||||
// Consider using a more interactive approach than sleep
|
||||
napms(5000); // ncurses alternative to sleep
|
||||
|
||||
// Clean up resources
|
||||
delwin(cmd_win);
|
||||
}
|
||||
|
@ -6,4 +6,6 @@ size_t spawn_menu(uint16_t begin_y, uint16_t begin_x, const char** choices,
|
||||
size_t n_choices);
|
||||
|
||||
void print_in_middle(WINDOW* win, int starty, int startx, int width,
|
||||
char* string, chtype color);
|
||||
char* string, chtype color);
|
||||
|
||||
void spawncmd();
|
@ -69,10 +69,11 @@ void menu() {
|
||||
menu_driver(my_menu, REQ_UP_ITEM);
|
||||
break;
|
||||
case 10:
|
||||
mvprintw(LINES - 1, 0, "%lu",
|
||||
spawn_menu(15, 45, choices2, ARRAY_SIZE(choices2)));
|
||||
|
||||
refresh();
|
||||
break;
|
||||
case ':':
|
||||
spawncmd();
|
||||
}
|
||||
wrefresh(my_menu_win);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user