]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - gui/form.h
* Mejoro documentacion.
[z.facultad/75.06/emufs.git] / gui / form.h
index ecec54d596136d09489a109f4358cd336f809a8b..d02da16ee70ab32626373b3b57667fa015eb963a 100644 (file)
@@ -9,18 +9,42 @@
 
 #include "malloc_debug.h"
 
 
 #include "malloc_debug.h"
 
+/** Tipos de Widgets válidos */
 typedef enum {INPUT, RADIO} t_Campo;
 
 typedef enum {INPUT, RADIO} t_Campo;
 
+/** Tipo de dato Widget */
 typedef struct _elem_ {
 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 {
        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_ {
 } t_Widget;
 
 typedef struct _form_ {