]> git.llucax.com Git - z.facultad/75.06/emufs.git/commitdiff
* Agrego Widgets de solo lectura en los formularios.
authorRicardo Markiewicz <gazer.arg@gmail.com>
Wed, 14 Apr 2004 07:44:56 +0000 (07:44 +0000)
committerRicardo Markiewicz <gazer.arg@gmail.com>
Wed, 14 Apr 2004 07:44:56 +0000 (07:44 +0000)
emufs/emufs.c
emufs_gui/articulos.c
emufs_gui/form.c
emufs_gui/form.h

index a511e502acdef9d5de058dd58926aeb13faad664..293d5567343274cda2701a4986355debd74757ae 100644 (file)
@@ -163,7 +163,6 @@ EMUFS *emufs_crear(const char *filename, EMUFS_Tipo tipo, EMUFS_BLOCK_SIZE tam_b
                        efs->borrar_registro = emufs_tipo3_borrar_registro;
                        efs->leer_estadisticas = emufs_tipo3_leer_estadisticas;
                        efs->modificar_registro = emufs_tipo3_modificar_registro;
-                       fprintf(stderr, "Crear : %p\n", efs->modificar_registro);
                        /* Guarda cabeceras propias. */
                        fwrite(&tam_bloque, sizeof(EMUFS_BLOCK_SIZE), 1, fp);
                        fwrite(&tam_reg, sizeof(EMUFS_REG_SIZE), 1, fp);                        
@@ -262,7 +261,7 @@ int ver_archivo_FS(EMUFS *emu)
        strcat(name_f_block_free,".fsc");
 
        if ( (f_block_free = fopen(name_f_block_free,"r"))==NULL ){
-               printf("no pude abrir el archivo %s\n",name_f_block_free);
+               fprintf(stderr, "no pude abrir el archivo %s\n",name_f_block_free);
                return -1;
        }
        fread(&reg,sizeof(reg),1,f_block_free);
index 13da37c6c5b26bd681ae986690d2b8d2a6c2d761..f9a00cc727fba78789f7b38a24a3cf732174f185 100644 (file)
@@ -245,6 +245,7 @@ void art_modificar(char *s)
                form = form_crear(win);
                sprintf(num, "%08d", articulo->numero);
                form_agregar_widget(form, INPUT, "Numero de Artículo", 8, num);
+               form_es_modificable(form, "Numero de Artículo" , 0);
                form_agregar_widget(form, INPUT, "Descripción", 50, articulo->desc);
                form_agregar_widget(form, INPUT, "Presentación", 30, articulo->presentacion);
                form_agregar_widget(form, INPUT, "Stock Actual", 8, articulo->existencia);
index d86d4b158a5d3c20b1dcbd6b84bb67a7eb321d29..9e5cb57d9130f3dd0120941a62aa10d50a53b253 100644 (file)
@@ -80,6 +80,7 @@ void form_agregar_widget(t_Form *f, t_Campo tipo, const char *nombre, unsigned i
 
        /* Si se creo wl widget, lo agrego al formulario al final */
        if (tmp) {
+               tmp->modificable = 1;
                if (f->primero == NULL) {
                        f->primero = f->ultimo = tmp;
                } else {
@@ -126,7 +127,8 @@ void form_ejecutar(t_Form *f, int x, int y)
        while (tmp) {
                ++my_y;
                wmove(f->win, my_y, x+offset);
-               salida = tmp->ejecutar(f->win, x+offset, my_y, tmp);
+               if (tmp->modificable)
+                       salida = tmp->ejecutar(f->win, x+offset, my_y, tmp);
                wrefresh(f->win);
                tmp = tmp->sig;
        }
@@ -356,3 +358,16 @@ int form_radio(WINDOW *win, int x, int y, t_Widget *w)
        return 0;
 }
 
+void form_es_modificable(t_Form *f, const char *widget, int b)
+{
+       /* Busco el widget */
+       t_Widget *tmp = f->primero;
+       while (tmp) {
+               if (strcmp(widget, tmp->nombre) == 0) {
+                       tmp->modificable = b;
+                       break;
+               }
+               tmp = tmp->sig;
+       }
+}
+
index be9da37d922448f5b50b52dab97841486d790880..3b5bd572d26fa68cc448e3691763d537d4b40c89 100644 (file)
@@ -42,6 +42,8 @@ typedef struct _elem_ {
        /** Siguiente elemento */
        struct _elem_ *sig;
 
+       int modificable;
+
        /* Métodos */
        int (*ejecutar)(WINDOW *win, int x, int y, struct _elem_ *w);
        void (*destruir)(struct _elem_ *);
@@ -91,6 +93,14 @@ void form_agregar_widget(t_Form *f, t_Campo tipo, const char *nombre, unsigned i
  */
 void form_ejecutar(t_Form *f, int x, int y);
 
+/** Establece si un Widget puede ser modificado
+ *
+ *  \param f Formulario.
+ *  \param widget Nombre del Widget.
+ *  \param b Valor booleano
+ */
+void form_es_modificable(t_Form *f, const char *widget, int b);
+
 /** Obtiene el valor asociado a un campo como char *
  *
  *  \param f Formulario.