]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - gui/gui.c
* INPUT ahora tiene valor por defecto
[z.facultad/75.06/emufs.git] / gui / gui.c
index 898fde9e3343d9b716be14cffa2a4351fbc203d5..0e8d344c0ac2327878e5257fb4e230a7444808e6 100644 (file)
--- a/gui/gui.c
+++ b/gui/gui.c
@@ -6,31 +6,45 @@
 #include <string.h>
 
 #include "form.h"
+#include "articulos.h"
 
 static void finish(int sig);
-                               
-/** Simula un TextField
- *
- *  \param win Ventana
- *  \param x Posicion en X
- *  \param y Posicion en Y
- *  \param w Cantidad maxima de caracteres.
- *  \param s Destino donde guardar
- */
+
+void editar_articulo(WINDOW *win, t_Articulo *articulo);
 
 int main(int argc, char *argv[])
 {
        /* initialize your non-curses data structures here */
        WINDOW *mainwin;
        t_Form *form;
+       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 */
        signal(SIGINT, finish);      /* arrange interrupts to terminate */
        mainwin = initscr();      /* initialize the curses library */
+       
+       /* Verifico un tamaño minimo de consola */
+       if ((LINES < 25) || (COLS < 80)) {
+               delwin(mainwin);
+               endwin();
+               printf("El tamaño de la consola debe ser de por lo menos 80x25!\n");
+               return 1;
+       }
+
        keypad(stdscr, TRUE);  /* enable keyboard mapping */
        nonl();         /* tell curses not to do NL->CR/NL on output */
        cbreak();       /* take input chars one at a time, no wait for \n */
        noecho();       /* don't echo input */
 
+       /* Si se soporta color, los inicializo */
        if (has_colors()) {
                start_color();
                /* Simple color assignment, often all we need. */
@@ -51,35 +65,48 @@ int main(int argc, char *argv[])
 
        /* Creo el formulario */
        form = form_crear(mainwin);
-       form_agregar_widget(form, INPUT, "Nombre", 15, "");
-       form_agregar_widget(form, RADIO, "Voto", 2, "Si,No");
-       form_agregar_widget(form, INPUT, "Datos", 30, "");
+       form_agregar_widget(form, INPUT, "Numero de Articulo", 8, "");
 
        form_ejecutar(form, 10, 10);
-
-
-       delwin(mainwin);
-       endwin();
        
-       /* Imprimo los datos! */
-       printf("Datos Ingresados : \n");
-       printf("\tNombre : %s\n", form_obtener_valor(form, "Nombre"));
-       printf("\tVoto   : %s\n", form_obtener_valor(form, "Voto"));
-       printf("\tDatos  : %s\n", form_obtener_valor(form, "Datos"));
+       art = art_obtener(articulos, form_obtener_valor(form, "Numero de Articulo"));
        
+       if (art != NULL) {
+               editar_articulo(mainwin, art);
+       }
        /* Libero el formulario */
+
+       delwin(mainwin);
+       endwin();
+
        form_destruir(form);
+       art_liberar(articulos);
+       
+       MD_Listar();
        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();
 
        /* do your non-curses wrapup here */
-
        exit(0);
 }