AvrIO  1.4.5
Bibliothèque C modulaire pour ATMEL AVR
Menus hiérarchiques textuels

Description détaillée

Ce module implémente des menus organisés sous forme d'arbres hiérarchisés.
Chaque élément d'un menu peut déclencher une action ou déclencher l'affichage d'un nouveau menu (un sous-menu).
La structure des menus est décrite sous forme de variables statiques stockées en mémoire programme.

Graphe de collaboration de Menus hiérarchiques textuels:

Structures de données

struct  xMenu
 Un menu hiérarchisé Plus de détails...
 
union  xMenuItem
 Elément d'un menu. Plus de détails...
 

Fonctions

int eMenuPoll (struct xTerm *pxTerm)
 Boucle de traitement des menus. Plus de détails...
 

Macros

#define MENU_SIZEOF(menu)
 Renvoie le nombre d'items d'un menu.
 

Définitions de type

typedef void(* pvMenuFunction) (void)
 Fonction appelée lorsque une action est sélectionnée.
 
typedef struct xMenu xMenu
 
typedef union xMenuItem xMenuItem
 

Énumérations

enum  eMenuFlag {
  MENU_FLAG_MENU = 0x00, MENU_FLAG_ACTION = 0x01, MENU_FLAG_PGM_ITEM = 0x02, MENU_FLAG_PGM_NAME = 0x04,
  MENU_FLAG_PGM_ALL = MENU_FLAG_PGM_ITEM + MENU_FLAG_PGM_NAME
}
 Flags d'un menu. Plus de détails...
 

Documentation du type de l'énumération

enum eMenuFlag

Flags d'un menu.

Valeurs énumérées
MENU_FLAG_MENU 

L'item est un sous-menu qui peut être affiché

MENU_FLAG_ACTION 

L'item est une action qui lance une fonction

MENU_FLAG_PGM_ITEM 

L'item est stocké en mémoire programme

MENU_FLAG_PGM_NAME 

Le nom est stocké en mémoire programme

MENU_FLAG_PGM_ALL 

L'item et le nom sont stockés en mémoire programme

Définition à la ligne 45 du fichier menu.h.

45  {
46 
47  MENU_FLAG_MENU = 0x00,
48  MENU_FLAG_ACTION = 0x01,
49  MENU_FLAG_PGM_ITEM = 0x02,
50  MENU_FLAG_PGM_NAME = 0x04,
52 } eMenuFlag;
eMenuFlag
Flags d'un menu.
Definition: menu.h:45

Documentation des fonctions

int eMenuPoll ( struct xTerm pxTerm)

Boucle de traitement des menus.

Cette fonction affiche le menu pointé par le champs pxMenu de pxTerm, puis attends que l'utilisateur choisisse un numéro d'item.

  • Si l'item choisi est une action, la fonction associée est exécutée.
  • Sinon, le nouveau menu est sélectionné et sera affiché à la prochaine itération.

Le champs pxMenu de pxTerm doit pointer sur une variable xMenu correctement initialisée.

Paramètres
pxTermPointeur sur le terminal sur lequel s'affiche le menu
Renvoie
0 en cas de succès, le code erreur sinon.