]> git.llucax.com Git - z.facultad/75.06/emufs.git/blob - gui/form.h
9ac2a3c311a5f7b67196334c0fdcd9b582bfae2d
[z.facultad/75.06/emufs.git] / gui / form.h
1 /* Manejo de Formularios con CURSES */
2
3 #ifndef _FORM_H_
4 #define _FORM_H_
5
6 #include <string.h>
7 #include <stdlib.h>
8 #include <curses.h>
9
10 typedef enum {INPUT, RADIO} t_Campo;
11
12 typedef struct _elem_ {
13         char *nombre; /* nombre del widget */
14         t_Campo tipo; /* tipo */
15         union {
16                 char *valor; /* valor actual */
17                 char **opciones; /* array de opciones */
18         };
19         unsigned int actual; /* En RADIO el seleccionado */
20         unsigned int max; /* INPUT: tamaƱo maximo RADIO: Cant. Opciones */
21         struct _elem_ *sig; /* siguiente en la lista de foco */
22 } t_Widget;
23
24 typedef struct _form_ {
25         t_Widget *primero, *ultimo; /* puntero a widgets */
26         WINDOW *win;
27 } t_Form;
28
29 /* Inicializa un formulario */
30 t_Form *form_crear(WINDOW *win);
31 /* Libera un formulario */
32 int form_destruir(t_Form *);
33 /* Agrega un nuevo campo */
34 void form_agregar_widget(t_Form *, t_Campo tipo, const char *nombre, unsigned int max, const char *defecto);
35 /* Ejecuta una entrada del formulario */
36 void form_ejecutar(t_Form *, int x, int y);
37 char *form_obtener_valor(t_Form *, const char *widget);
38
39 #endif
40