X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/blobdiff_plain/9f5a4b155f0d5599b1e7f04418333995d484d820..5552879516ba6ae3139d3317ae17ca53540ba74b:/gui/form.h?ds=sidebyside diff --git a/gui/form.h b/gui/form.h index ecec54d..d02da16 100644 --- a/gui/form.h +++ b/gui/form.h @@ -9,18 +9,42 @@ #include "malloc_debug.h" +/** Tipos de Widgets válidos */ typedef enum {INPUT, RADIO} t_Campo; +/** Tipo de dato Widget */ typedef struct _elem_ { - char *nombre; /* nombre del widget */ - t_Campo tipo; /* tipo */ + /** Nombre */ + char *nombre; + /** Tipo */ + t_Campo tipo; + /** Dato a manejar + * + * El dato puede ser simple o múltiple, dependiendo + * si se opta por referencias valor u opciones. + * + * Consulte la documentación de union de ANSI-C para + * mas datos + */ union { - char *valor; /* valor actual */ - char **opciones; /* array de opciones */ + char *valor; + char **opciones; }; - unsigned int actual; /* En RADIO el seleccionado */ - unsigned int max; /* INPUT: tamaño maximo RADIO: Cant. Opciones */ - struct _elem_ *sig; /* siguiente en la lista de foco */ + /** Elemento actual (si se utiliza valores múltiples */ + unsigned int actual; + /** Máximo de elementos + * + * El uso varía según el Widget : + * INPUT : Cantidad máxima de caracteres. + * RADIO : Cantidad de Opciones + */ + unsigned int max; + /** Siguiente elemento */ + struct _elem_ *sig; + + /* Métodos */ + int (*ejecutar)(WINDOW *win, int x, int y, struct _elem_ *w); + void (*destruir)(struct _elem_ *); } t_Widget; typedef struct _form_ {