Compare commits

..

2 Commits

2 changed files with 33 additions and 34 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;
werase(menuwin);
wrefresh(menuwin);
reset();
return;
}
drawMenuItems(menu);
wrefresh(menuwin);
}
werase(menuwin);
wrefresh(menuwin);
reset();
}
void drawMenuItems(Menu menu)
+25 -29
View File
@@ -17,49 +17,45 @@ int main(int argc, char **argv){
start_color();
init_pair(1, COLOR_WHITE,COLOR_BLUE);
int yMax,xMax;
getmaxyx(stdscr,yMax,xMax);
int term_yMax,term_xMax;
getmaxyx(stdscr,term_yMax,term_xMax);
WINDOW *win = newwin(yMax-1,xMax-1,1,1);
box(win,0,0);
WINDOW *main_win = newwin(term_yMax-1,term_xMax-1,1,1);
box(main_win,0,0);
string menu1[] = {"New","Open","Save","Exit"};
string menu2[] = {"Copy","Cut","Paste"};
string menu3[] = {"Sidebar","Terminal"};
string File_Menu[] = {"Connect","Disconnect","Exit"};
string View_Menu[] = {"Info","Machines","Log"};
Menu menus[3] = {
Menu("File",'f',menu1,4),
Menu("Edit",'e',menu2,3),
Menu("View",'v',menu3,2),
Menu main_menus[2] = {
Menu("File",'f',File_Menu,3),
Menu("View",'v',View_Menu,3),
};
MenuBar menubar = MenuBar(win,menus,3);
menubar.draw();
MenuBar main_menubar = MenuBar(main_win,main_menus,2);
main_menubar.draw();
keypad(win, TRUE);
int ch;
while((ch = wgetch(win))){
if(ch <= 255)
keypad(main_win, TRUE);
int main_menus_input;
while((main_menus_input = wgetch(main_win))){
if(main_menus_input <= 255)
{
menubar.handleTrigger(ch);
menubar.draw();
main_menubar.handleTrigger(main_menus_input);
main_menubar.draw();
}
else if(ch == KEY_RESIZE)
else if(main_menus_input == KEY_RESIZE)
{
clear();
refresh();
delwin(win);
getmaxyx(stdscr,yMax,xMax);
win = newwin(yMax-1,xMax-1,1,1);
box(win,0,0);
menubar.resize(win);
menubar.draw();
wrefresh(win);
delwin(main_win);
getmaxyx(stdscr,term_yMax,term_xMax);
main_win = newwin(term_yMax-1,term_xMax-1,1,1);
box(main_win,0,0);
main_menubar.resize(main_win);
main_menubar.draw();
wrefresh(main_win);
}
}
endwin();
return 0;
}