]> git.llucax.com Git - z.facultad/75.06/emufs.git/blob - emufs_gui/menu.h
* Me preparo para otro tamaño de bloque
[z.facultad/75.06/emufs.git] / emufs_gui / menu.h
1
2
3 #ifndef _MENU_H_
4 #define _MENU_H_
5
6 #include <stdlib.h>
7 #include <curses.h>
8 #include <menu.h>
9 #include <string.h>
10
11 /** Estructura de Menu
12  *
13  *  Para crear un menu puede utilizar las macros que se dan, de la siguiente forma :
14  *  \code
15  *    MENU(mi_menu) {
16  *      MENU_OPCION("Valor 1", "Descripcion 1"),
17  *      MENU_OPCION("Valor 2", "Descripcion 2"),
18  *      MENU_OPCION("Valor 3", "Descripcion 3"),
19  *      MENU_OPCION("Valor 4", "Descripcion 4")
20  *    };
21  *  \endcode
22  *  Tenga en cuenta que la última opción no debe llevar una coma
23  *  al final de la expresión.
24  */
25 typedef struct _menu_o_t_ {
26         char *opt;
27         char *desc;
28 } t_Menu;
29
30 #define MENU(a) \
31   t_Menu a[] = 
32
33 #define MENU_OPCION(a,b) {a, b}
34
35 /** Ejecuta un menu en pantalla
36  *
37  *  \param menu Menú a mostrar
38  *  \param cant Cantidad de opciones del menu
39  *  \param title Título a mostrar
40  *  \return valor de 0 a (n-1) de la opción seleccionada
41  */
42 int menu_ejecutar(t_Menu menu[], int cant, char *title);
43
44 #endif
45