Menu (ncurses)

De La Mouche VII


La bibliothèque Menu est une extension à Curse permettant la création de menus, avec une interface uniforme et flaxible.

Compilation

  • Inclure <menu.h>.
  • Utiliser l'option -lmenu, de préférence avant -lncurses.

Fonctionnement

Les menus créés par cette bibliothèque consistent en une collection d'éléments, dont une chaîne représentant le nom et une autre la description. Pour créer des menus, il faut grouper ces éléments et les connecter grâce à des cadres.

Un menu peut être affiché, sur une fenêtre donnée. En fait, chaque menu est associé à deux fenêtres : une fenêtre dans laquelle le programmeur définit les titres ou les bordures, et une sous-fenêtre dans laquelle les éléments du menu sont affichés. Si cette sous-fenêtre est trop petite pour permettre l'affichage de tous les éléments, IT WILL BE A SCROLLABLE VIEWPORT ON THE COLLECTION OF ITEMS.

Un menu peut également être masqué (non affiché), ou enfin libéré afin de pouvoir réutiliser l'espace et les éléments associés.

Les étapes de l'exécution d'un programme utilisant les menus est, grossièrement :

  1. Initialisation de curses.
  2. Création des éléments du menu : new_item().
  3. Création du menu : new_menu().
  4. Affichage du menu : post_menu().
  5. Raffraîchissement de l'écran.
  6. Traitement des requêtes utilisateur via une boucle d'entrée.
  7. Masquage du menu : unpost_menu().
  8. Libération du menu : free_menu().
  9. Libération des éléments du menu : free_item().
  10. Terminaison de curses.

Sélectionner des éléments

Faire : traduction

Selecting items

Menus may be multi-valued or (the default) single-valued (see the manual page menu_opts(3x) to see how to change the default). Both types always have a current item.

From a single-valued menu you can read the selected value simply by looking at the current item. From a multi-valued menu, you get the selected set by looping through the items applying the item_value() predicate function. Your menu-processing code can use the function set_item_value() to flag the items in the select set.

Menu items can be made unselectable using set_item_opts() or item_opts_off() with the O_SELECTABLE argument. This is the only option so far defined for menus, but it is good practice to code as though other option bits might be on.

Fonctions