Compare commits
2 Commits
428d40b0ef
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 7a41544d82 | |||
| 1ca75cb587 |
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user