1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
void navige_panel(FORM *form, PANEL *panel, FIELD *field, int *ch)
void navige_panel(FORM *form, PANEL *panel, FIELD *field, int *ch)
main()
{
PANEL *panel;
WINDOW *win;
FORM *form;
FIELD *field;
int=ch;
dec_panel(form,win,panel,field);
update_panels();
do_update();
while(ch!=KEY_F(10))
{
navige_panel(form, panel, field, &ch);
}
unpost_form(form);
free_form(form);
free_field(field[0]);
free_field(field[1]);
endwin();
del_panel(panel);
return0;
}
void dec_panel(FORM *form, WIN *win, PANEL *panel, FIELD *field)
{
int rows, cols
field[0]= new_field(1, 1, 2, 2, 0, 0);
field[1]= new_field(1, 1, 4, 2, 0, 0);
form = new_form(field);
scale_form(form, &rows, &cols);
set_form_win(form,win);
set_form_sub(my_form, derwin(win, rows, cols, 0, 0));
post_form(form);
keypad(win,TRUE);
panel=new_panel(win);
}
void navige_panel(FORM *form, PANEL *panel, FIELD *field, int *ch)
switch (*ch = wgetch(win))
{
case KEY_DOWN:
form_driver(my_form, REQ_NEXT_FIELD) ;
form_driver(my_form, REQ_BEG_FIELD) ;
break ;
case KEY_UP:
form_driver(my_form, REQ_PREV_FIELD) ;
form_driver(my_form, REQ_BEG_FIELD) ;
break ;
default:
form_driver(my_form, *ch) ;
break ;
}
} |
Partager