Witam, oto funkcja main:
int main(void){
WINDOW *my_win;
int row,col,startx,starty,height,width;
char ch;
initscr();
clear();
noecho();
curs_set(0);
cbreak();
keypad(stdscr,true);
getmaxyx(stdscr,row,col);
if(has_colors()==FALSE){
endwin();
printf("Your terminal does not support color\n");
exit(1);
}
start_color();
init_pair(1,COLOR_GREEN,COLOR_WHITE);
height=row-10;
width=col-50;
starty=(LINES-height)/2;
startx=(COLS-width)/2;
menu(row,col);
my_win=create_newwin(height,width,starty,startx);
refresh();
endwin();
return 0;
}
WINDOW *create_newwin(int height, int width, int starty, int startx){
WINDOW *local_win;
local_win=newwin(height,width,starty,startx);
box(local_win, 0 , 0);
wborder(local_win,'|','|','-','-','+','+','+','+');
wrefresh(local_win);
return local_win;
}
a to jest funkcja menu z biblioteki ktora dodaje do glownego pliku.
int menu(int row,int col){
ITEM **my_items;
ITEM *cur_item;
MENU *my_menu;
int n_choices;
char choice;
keypad(stdscr, TRUE);
n_choices=ARRAY_SIZE(choices);
my_items=(ITEM **)calloc(n_choices+1,sizeof(ITEM *));
for(int i=0;i<n_choices;++i)
my_items[i] = new_item(choices[i], choices[i]);
my_menu=new_menu((ITEM **)my_items);
post_menu(my_menu);
refresh();
mvprintw(LINES-3,0,"Use p/n to move up/down");
while((choice=getch())!='q'){
switch(choice){
case P:
menu_driver(my_menu,REQ_UP_ITEM);
break;
case N:
menu_driver(my_menu,REQ_DOWN_ITEM);
break;
}
}
for(int i=0;i<n_choices;++i)
free_item(my_items[i]);
free_menu(my_menu);
return 0;
}
I widac w funkcji main ze po wykonaniu funkcji menu program powinien przeskoczyc do funkcji create_newwin prawda ? Tylko ze gdy w menu wybieram 'q' to program sie zamyka i nie wyswietla okna ktore miala stworzyc funkcja create_newwin, dlaczego nie przechodzi do tej funkcji ?