bonjour,
Je début en C/Ncurses et je souhaite créer un programme.
Dans ce programme, il y a deux panels : chaque panel est lié à une fenêtre qui est liée à une form.
my_panel[0] lié à la fenêtre my_form_win liée à my_form
my_panel[1] lié à la fenêtre my_form_win1 liée à my_form1
Pour naviguer entre les champs d'une form, j'utilise la fonction getch comme ceci est montré dans les exemples sur le net.
Néanmoins je n'arrive pas à naviguer d'une fenêtre à l'autre.
En fait mon problème est que mon cursor se met sur l'autre fenêtre mais la fonction getch (ou wgetch) ne remplit pas son role (c'est comme si elle restait active sur la première fenêtre)
Voici le bout de code ou il y a intéraction entre l'utilisateur et le programme :
while((ch = wgetch(my_form_win)) != KEY_F(1))
{ switch(ch)
{ case KEY_DOWN:
form_driver(my_form, REQ_NEXT_FIELD);
form_driver(my_form, REQ_END_LINE);
break;
case KEY_UP:
form_driver(my_form, REQ_PREV_FIELD);
form_driver(my_form, REQ_END_LINE);
break;
case KEY_F(5):
top_panel(my_panel[1]);
update_panels();
doupdate();
while((ch1 = wgetch(my_form_win1)) != KEY_F(5))
{ switch(ch1)
{ case KEY_DOWN:
form_driver(my_form1, REQ_NEXT_FIELD);
form_driver(my_form1, REQ_END_LINE);
break;
case KEY_UP:
form_driver(my_form1, REQ_PREV_FIELD);
form_driver(my_form1, REQ_END_LINE);
break;
case KEY_F(5):
top_panel(my_panel[0]);
update_panels();
doupdate();
break;
default:
form_driver(my_form1, ch1);
break;
}
}
break;
default:
form_driver(my_form, ch);
break;
}
}
Je me suis inspiré des exemples que j'ai trouvé sur le net sur l'association d'une form et d'une fenêtre et j'y ai intégré des panels.
Je pense que mon erreur vient des instructions :
case KEY_F(5):
top_panel(my_panel[1]);
update_panels();
doupdate();
while((ch1 = wgetch(my_form_win1)) != KEY_F(5));
{ switch(ch1)...
En passant en debug, je m'aperçois que le wgetch ne fonctionne pas sur ce panel my_panel[1] et donc sur la fenêtre my_form_win1 mais sur la première fenêtre my_panel et donc sur la fenêtre my_form_win alors que le cursor est quand même positionné sur la fenêtre my_form_win1
Si quelqu'un pouvait m'éclaircir sur le sujet je le lui en serai très reconnaissant.
Partager