From 8f84e53bb26e345469f615091701a2d8f2c92273 Mon Sep 17 00:00:00 2001 From: Ricardo Markiewicz Date: Thu, 1 Apr 2004 02:53:01 +0000 Subject: [PATCH] * INPUT ahora tiene valor por defecto * Ejemplo cada vez mas funcional --- gui/form.c | 10 ++++++---- gui/gui.c | 42 ++++++++++++++++++++++++++++++------------ 2 files changed, 36 insertions(+), 16 deletions(-) diff --git a/gui/form.c b/gui/form.c index 71973a9..d6a13bb 100644 --- a/gui/form.c +++ b/gui/form.c @@ -10,9 +10,10 @@ static void widget_free(t_Widget *w); * * \param tipo Debe ser INPUT * \param nombre Nombre del control (también usada como etiqueta). - * \param max Cantidad máxima de caracteres + * \param max Cantidad máxima de caracteres. + * \param defecto Valor inicial del campo. */ -static t_Widget *widget_input_create(t_Campo tipo, const char *nombre, unsigned int max); +static t_Widget *widget_input_create(t_Campo tipo, const char *nombre, unsigned int max, const char *defecto); /** Crea un nuevo RADIO Group * * \param tipo Debe ser RADIO @@ -64,7 +65,7 @@ void form_agregar_widget(t_Form *f, t_Campo tipo, const char *nombre, unsigned i /* Creo el nuevo widget segun el tipo */ switch (tipo) { case INPUT: - tmp = widget_input_create(tipo, nombre, max); + tmp = widget_input_create(tipo, nombre, max, defecto); break; case RADIO: tmp = widget_radio_create(tipo, nombre, max, defecto); @@ -129,7 +130,7 @@ char *form_obtener_valor(t_Form *f, const char *widget) return ""; } -t_Widget *widget_input_create(t_Campo tipo, const char *nombre, unsigned int max) +t_Widget *widget_input_create(t_Campo tipo, const char *nombre, unsigned int max, const char *defecto) { t_Widget *tmp = (t_Widget *)malloc(sizeof(t_Widget)); @@ -140,6 +141,7 @@ t_Widget *widget_input_create(t_Campo tipo, const char *nombre, unsigned int max tmp->max = max; tmp->valor = (char *)malloc(sizeof(char)*(max+1)); tmp->valor[0] = '\0'; + strncpy(tmp->valor, defecto, max); tmp->sig = NULL; diff --git a/gui/gui.c b/gui/gui.c index 7a15fcd..0e8d344 100644 --- a/gui/gui.c +++ b/gui/gui.c @@ -9,7 +9,9 @@ #include "articulos.h" static void finish(int sig); - + +void editar_articulo(WINDOW *win, t_Articulo *articulo); + int main(int argc, char *argv[]) { /* initialize your non-curses data structures here */ @@ -18,6 +20,11 @@ int main(int argc, char *argv[]) t_LstArticulos *articulos; t_Articulo *art; + if (argc != 2) { + printf("Modo de uso : %s archivo_de_articulos.xml\n", argv[0]); + return 1; + } + articulos = art_cargar(argv[1]); /* Inicio Curses */ @@ -61,22 +68,17 @@ int main(int argc, char *argv[]) form_agregar_widget(form, INPUT, "Numero de Articulo", 8, ""); form_ejecutar(form, 10, 10); - - delwin(mainwin); - endwin(); art = art_obtener(articulos, form_obtener_valor(form, "Numero de Articulo")); - - /* Imprimo los datos! */ - printf("Datos : \n"); + if (art != NULL) { - printf("\tDescripcion : %s\n", art->desc); - printf("\tPresentacion : %s\n", art->presentacion); - printf("\tExistencia : %s\n", art->existencia); - } else { - printf("NO EXISTE!\n"); + editar_articulo(mainwin, art); } /* Libero el formulario */ + + delwin(mainwin); + endwin(); + form_destruir(form); art_liberar(articulos); @@ -84,6 +86,22 @@ int main(int argc, char *argv[]) return 0; } +void editar_articulo(WINDOW *win, t_Articulo *articulo) +{ + t_Form *form; + form = form_crear(win); + form_agregar_widget(form, INPUT, "Numero de Artículo", 8, articulo->numero); + 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); + form_agregar_widget(form, INPUT, "PVU", 30, articulo->pvu); + form_agregar_widget(form, INPUT, "Stock Mínimo", 8, articulo->emin); + + form_ejecutar(form, 10, 10); + + form_destruir(form); +} + static void finish(int sig) { endwin(); -- 2.43.0