X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/blobdiff_plain/6e3d570b2e409f486e718aa98f2ffc3741362c8e..dfd80953713dfca6db472364519ca94fa641ebd5:/emufs_gui/form.c diff --git a/emufs_gui/form.c b/emufs_gui/form.c index 5a76a4d..9e5cb57 100644 --- a/emufs_gui/form.c +++ b/emufs_gui/form.c @@ -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; } @@ -185,7 +187,7 @@ t_Widget *widget_input_create(t_Campo tipo, const char *nombre, unsigned int max return NULL; } tmp->valor[0] = '\0'; - strncpy(tmp->valor, defecto, max); + strcpy(tmp->valor, defecto); tmp->sig = NULL; @@ -302,8 +304,7 @@ int form_input(WINDOW *win, int x, int y, t_Widget *w) c = getch(); } /* Cierro el string con el \0 */ - w->valor[current+1] = '\0'; - + w->valor[current] = '\0'; /* Retorno la tecla con la que se salio. */ /* De esa forma, ESC pasa al campo anterios. ENTER al siguiente */ return c; @@ -357,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; + } +} +