AvrIO
1.4.5
Bibliothèque C modulaire pour ATMEL AVR
Page principale
Pages associées
Modules
Structures de données
Exemples
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,
48
MENU_FLAG_ACTION
= 0x01,
49
MENU_FLAG_PGM_ITEM
= 0x02,
50
MENU_FLAG_PGM_NAME
= 0x04,
51
MENU_FLAG_PGM_ALL
=
MENU_FLAG_PGM_ITEM
+
MENU_FLAG_PGM_NAME
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
;
78
eMenuFlag
eFlag
;
79
struct
xMenu
*
pxMenu
;
80
}
xSubMenu
;
81
86
struct
{
87
const
char
*
pcName
;
88
eMenuFlag
eFlag
;
89
pvMenuFunction
pvFunc
;
90
}
xAction
;
91
96
struct
{
97
const
char
*
pcName
;
98
eMenuFlag
eFlag
;
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
;
113
eMenuFlag
eFlag
;
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_ */
xMenu::iSize
int iSize
Definition:
menu.h:111
xMenu::pxItem
const xMenuItem * pxItem
Definition:
menu.h:110
xMenuItem::pxMenu
struct xMenu * pxMenu
Definition:
menu.h:79
xMenu::pxUp
struct xMenu * pxUp
Definition:
menu.h:112
MENU_FLAG_MENU
Definition:
menu.h:47
xAction
Item de type Action.
xMenuItem::pcName
const char * pcName
Definition:
menu.h:77
xMenuItem::pvFunc
pvMenuFunction pvFunc
Definition:
menu.h:89
MENU_FLAG_PGM_ALL
Definition:
menu.h:51
MENU_FLAG_PGM_NAME
Definition:
menu.h:50
MENU_FLAG_ACTION
Definition:
menu.h:48
xMenuItem::pvItem
void * pvItem
Definition:
menu.h:99
xRaw
Champs communs au différents types.
eMenuPoll
int eMenuPoll(struct xTerm *pxTerm)
Boucle de traitement des menus.
MENU_FLAG_PGM_ITEM
Definition:
menu.h:49
xMenu
Un menu hiérarchisé
Definition:
menu.h:108
xTerm
Terminal.
Definition:
term.h:71
xMenuItem::eFlag
eMenuFlag eFlag
Definition:
menu.h:78
eMenuFlag
eMenuFlag
Flags d'un menu.
Definition:
menu.h:45
xMenu::pcName
const char * pcName
Definition:
menu.h:109
xSubMenu
Item de type Menu.
xMenuItem
Elément d'un menu.
Definition:
menu.h:71
pvMenuFunction
void(* pvMenuFunction)(void)
Fonction appelée lorsque une action est sélectionnée.
Definition:
menu.h:58
src
avrio
menu.h
Généré le Dimanche 14 Mai 2017 22:07:06 pour AvrIO par
1.8.11