Bonjour !

Je voudrai faire quelque chose avec la lib ncurses, mais je ne comprends pas comment m'y prendre, malgré mes recherches. (explications après le bout de code )

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
int     key(int ch, int i) // Modifie la valeur light en fonction des touches appuyées
{
  int   light;
 
  light = 1;
  ch = getch();
  if (ch = KEY_UP)
    light--;
  else if (ch = KEY_DOWN)
    light++;
  return (light);
}
 
void    display(int ac, char **av, int i) // Permet d'afficher les arguments sous forme de liste
{
  int   ch;
  int   light;
 
  light = 1;
  i = 1;
  while (i != ac)
    {
      if (light == i)
        {
          attron(A_STANDOUT);
          mvprintw((i - 1), 0, "%s", av[i]); // Permet de surligner un seul argument (ex : si light et i sont égaux à 1)
          attroff(A_STANDOUT);
        }
      else
        mvprintw((i - 1), 0, "%s", av[i]); // Sinon on l'imprime normalement
      i++;
    }
  refresh();
}
 
int     main(int ac, char **av)
{
  int   i;
  int   ch;
 
  i = 1;
  if (ac == 1)
    return (-1); // Gestion d'erreurs
  initscr();
  noecho();
  curs_set(0);
  while (ch != ' ') // Le programme ne se fermera que si on appuie sur ESPACE
    {
      display(ac, av, i);
      ch = getch();
    }
  endwin();
}
Je voudrai pouvoir me "déplacer" dans la liste que j'affiche avec mes arguments avec les touches fléchées.
Si j'appuie sur la touche fléchée du bas, ce sera av[2] qui sera surligné, etc...
Ma fonction key me semble bonne mais je ne vois pas du tout comment l'adapter avec le reste, pouvez vous m'aider ?

Merci, bonne journée