Made menu items relevant to the application, Fixed a bug where menu items were drawn even when the non intented trigger was pressed

This commit is contained in:
2026-03-29 11:40:56 +05:30
parent 428d40b0ef
commit 1ca75cb587
2 changed files with 14 additions and 15 deletions
+8 -5
View File
@@ -110,12 +110,14 @@ class MenuBar {
{
wattroff(win, A_STANDOUT);
}
if(!is_selected)
return;
wrefresh(win);
char ch;
drawMenuItems(menu);
wrefresh(menuwin);
while(is_selected && (ch = wgetch(menuwin)))
while((ch = wgetch(menuwin)))
{
switch(ch)
{
@@ -126,13 +128,14 @@ class MenuBar {
menu.selectPrevItem();
break;
default:
is_selected = false;
}
drawMenuItems(menu);
}
werase(menuwin);
wrefresh(menuwin);
reset();
return;
}
drawMenuItems(menu);
wrefresh(menuwin);
}
}
void drawMenuItems(Menu menu)
+6 -10
View File
@@ -23,17 +23,15 @@ int main(int argc, char **argv){
WINDOW *win = newwin(yMax-1,xMax-1,1,1);
box(win,0,0);
string menu1[] = {"New","Open","Save","Exit"};
string menu2[] = {"Copy","Cut","Paste"};
string menu3[] = {"Sidebar","Terminal"};
string menu1[] = {"Connect","Disconnect","Exit"};
string menu3[] = {"Info","Machines","Log"};
Menu menus[3] = {
Menu("File",'f',menu1,4),
Menu("Edit",'e',menu2,3),
Menu("View",'v',menu3,2),
Menu menus[2] = {
Menu("File",'f',menu1,3),
Menu("View",'v',menu3,3),
};
MenuBar menubar = MenuBar(win,menus,3);
MenuBar menubar = MenuBar(win,menus,2);
menubar.draw();
keypad(win, TRUE);
@@ -61,5 +59,3 @@ int main(int argc, char **argv){
endwin();
return 0;
}