]> git.llucax.com Git - z.facultad/75.06/emufs.git/blob - gui/form.h
* Agrego el malloc debugger de taller para controlar
[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 #include "malloc_debug.h"
11
12 typedef enum {INPUT, RADIO} t_Campo;
13
14 typedef struct _elem_ {
15         char *nombre; /* nombre del widget */
16         t_Campo tipo; /* tipo */
17         union {
18                 char *valor; /* valor actual */
19                 char **opciones; /* array de opciones */
20         };
21         unsigned int actual; /* En RADIO el seleccionado */
22         unsigned int max; /* INPUT: tamaƱo maximo RADIO: Cant. Opciones */
23         struct _elem_ *sig; /* siguiente en la lista de foco */
24 } t_Widget;
25
26 typedef struct _form_ {
27         t_Widget *primero, *ultimo; /* puntero a widgets */
28         WINDOW *win;
29 } t_Form;
30
31 /* Inicializa un formulario */
32 t_Form *form_crear(WINDOW *win);
33 /* Libera un formulario */
34 int form_destruir(t_Form *);
35 /* Agrega un nuevo campo */
36 void form_agregar_widget(t_Form *, t_Campo tipo, const char *nombre, unsigned int max, const char *defecto);
37 /* Ejecuta una entrada del formulario */
38 void form_ejecutar(t_Form *, int x, int y);
39 char *form_obtener_valor(t_Form *, const char *widget);
40
41 #endif
42