1 /* Manejo de Formularios con CURSES */
10 #include "malloc_debug.h"
12 /** Tipos de Widgets válidos */
13 typedef enum {INPUT, RADIO} t_Campo;
15 /** Tipo de dato Widget */
16 typedef struct _elem_ {
23 * El dato puede ser simple o múltiple, dependiendo
24 * si se opta por referencias valor u opciones.
26 * Consulte la documentación de union de ANSI-C para
33 /** Elemento actual (si se utiliza valores múltiples */
35 /** Máximo de elementos
37 * El uso varía según el Widget :
38 * INPUT : Cantidad máxima de caracteres.
39 * RADIO : Cantidad de Opciones
42 /** Siguiente elemento */
46 int (*ejecutar)(WINDOW *win, int x, int y, struct _elem_ *w);
47 void (*destruir)(struct _elem_ *);
50 typedef struct _form_ {
51 t_Widget *primero, *ultimo; /* puntero a widgets */
55 /* Inicializa un formulario */
56 t_Form *form_crear(WINDOW *win);
57 /* Libera un formulario */
58 int form_destruir(t_Form *);
59 /* Agrega un nuevo campo */
60 void form_agregar_widget(t_Form *, t_Campo tipo, const char *nombre, unsigned int max, const char *defecto);
61 /* Ejecuta una entrada del formulario */
62 void form_ejecutar(t_Form *, int x, int y);
63 char *form_obtener_valor(t_Form *, const char *widget);