AvrIO  1.4.5
Bibliothèque C modulaire pour ATMEL AVR
menu.h
1 
18 #ifndef _AVRIO_MENU_H_
19 # define _AVRIO_MENU_H_
20 
21 # include <avrio/defs.h>
22 # include <avr/pgmspace.h>
23 # include <stdio.h>
24 
25 __BEGIN_C_DECLS
26 /* ========================================================================== */
40 /* constants ================================================================ */
45  typedef enum {
46 
47  MENU_FLAG_MENU = 0x00,
52 } eMenuFlag;
53 
54 /* types ==================================================================== */
58 typedef void (*pvMenuFunction) (void);
59 
60 /* structures =============================================================== */
61 # if !defined(__DOXYGEN__)
62 struct xTerm;
63 # endif
64 
71 typedef union xMenuItem {
76  struct {
77  const char *pcName;
79  struct xMenu *pxMenu;
80  } xSubMenu;
81 
86  struct {
87  const char *pcName;
90  } xAction;
91 
96  struct {
97  const char *pcName;
99  void *pvItem;
100  } xRaw;
101 
102 } xMenuItem;
103 
108 typedef struct xMenu {
109  const char *pcName;
110  const xMenuItem *pxItem;
111  int iSize;
112  struct xMenu *pxUp;
114 } xMenu;
115 
116 /* internal public functions ================================================ */
133 int eMenuPoll (struct xTerm *pxTerm);
134 
135 /* macros =================================================================== */
136 # if defined(__DOXYGEN__)
137 
140 # define MENU_SIZEOF(menu)
141 
146 # else
147 /*
148  * __DOXYGEN__ not defined
149  * Partie ne devant pas être documentée.
150  * =============================================================================
151  */
152 
153 # define MENU_SIZEOF(menu) (sizeof(menu)/sizeof(xMenuItem))
154 
155 # endif /* __DOXYGEN__ not defined */
156 /* ========================================================================== */
157 __END_C_DECLS
158 #endif /* _AVRIO_MENU_H_ */
int iSize
Definition: menu.h:111
const xMenuItem * pxItem
Definition: menu.h:110
struct xMenu * pxMenu
Definition: menu.h:79
struct xMenu * pxUp
Definition: menu.h:112
Item de type Action.
const char * pcName
Definition: menu.h:77
pvMenuFunction pvFunc
Definition: menu.h:89
void * pvItem
Definition: menu.h:99
Champs communs au différents types.
int eMenuPoll(struct xTerm *pxTerm)
Boucle de traitement des menus.
Un menu hiérarchisé
Definition: menu.h:108
Terminal.
Definition: term.h:71
eMenuFlag eFlag
Definition: menu.h:78
eMenuFlag
Flags d&#39;un menu.
Definition: menu.h:45
const char * pcName
Definition: menu.h:109
Item de type Menu.
Elément d&#39;un menu.
Definition: menu.h:71
void(* pvMenuFunction)(void)
Fonction appelée lorsque une action est sélectionnée.
Definition: menu.h:58