From 50f435fbc734faf6a870f0777cf3e8d3a9bd5c21 Mon Sep 17 00:00:00 2001 From: "@syxhe" Date: Tue, 23 Jul 2024 14:05:41 -0500 Subject: Menu works now --- src/screen.c | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) (limited to 'src/screen.c') diff --git a/src/screen.c b/src/screen.c index 5ca2dc2..362a1a7 100644 --- a/src/screen.c +++ b/src/screen.c @@ -170,21 +170,34 @@ int main() { //* Menu example (fuck menus got damn) ITEM *items[STATIC_ARRSIZE(menu_choices) + 1]; MENU *menu; + WINDOW *menuholder; for(long unsigned int i = 0; i < STATIC_ARRSIZE(menu_choices); i++) - items[i] = new_item(menu_choices[i], menu_choices[i]); + items[i] = new_item(menu_choices[i], NULL); items[STATIC_ARRSIZE(menu_choices)] = NULL; menu = new_menu(items); if(menu == NULL) error(1, errno, "Could not create menu"); - // set_menu_format(menu, 3, col); + set_menu_format(menu, 1, col); + menu_opts_on(menu, O_ONEVALUE | O_IGNORECASE); + menu_opts_off(menu, O_SHOWDESC); + + menuholder = newwin(1, col, row - 1, 0); + keypad(menuholder, TRUE); + + int holder1 = -1, holder2 = -1; + getmaxyx(menuholder, holder1, holder2); + set_menu_win(menu, menuholder); + set_menu_sub(menu, derwin(menuholder, holder1, holder2, 0, 0)); + + set_menu_mark(menu, NULL); post_menu(menu); - refresh(); + wrefresh(menuholder); int c; - while((c = getch()) != KEY_F(4)) { + while((c = wgetch(menuholder)) != KEY_F(4)) { switch(c) { case KEY_DOWN: menu_driver(menu, REQ_DOWN_ITEM); @@ -208,9 +221,11 @@ int main() { } + // Clean up the menu + unpost_menu(menu); + free_menu(menu); for(long unsigned int i = 0; i < STATIC_ARRSIZE(menu_choices); i++) free_item(items[i]); - free_menu(menu); //*/ endwin(); // Clean up curses -- cgit v1.2.3