]> git.llucax.com Git - z.facultad/75.06/emufs.git/blob - gui/gui.c
* Algunos cambios.
[z.facultad/75.06/emufs.git] / gui / gui.c
1
2 #include <stdlib.h>
3 #include <curses.h>
4 #include <signal.h>
5 #include <panel.h>
6 #include <string.h>
7
8 #include "form.h"
9 #include "articulos.h"
10
11 static void finish(int sig);
12                                 
13 int main(int argc, char *argv[])
14 {
15         /* initialize your non-curses data structures here */
16         WINDOW *mainwin;
17         t_Form *form;
18         t_LstArticulos *articulos;
19         t_Articulo *art;
20
21         articulos = art_cargar(argv[1]);
22
23         /* Inicio Curses */
24         signal(SIGINT, finish);      /* arrange interrupts to terminate */
25         mainwin = initscr();      /* initialize the curses library */
26         
27         /* Verifico un tamaño minimo de consola */
28         if ((LINES < 25) || (COLS < 80)) {
29                 delwin(mainwin);
30                 endwin();
31                 printf("El tamaño de la consola debe ser de por lo menos 80x25!\n");
32                 return 1;
33         }
34
35         keypad(stdscr, TRUE);  /* enable keyboard mapping */
36         nonl();         /* tell curses not to do NL->CR/NL on output */
37         cbreak();       /* take input chars one at a time, no wait for \n */
38         noecho();       /* don't echo input */
39
40         /* Si se soporta color, los inicializo */
41         if (has_colors()) {
42                 start_color();
43                 /* Simple color assignment, often all we need. */
44                 init_pair(COLOR_BLACK, COLOR_BLACK, COLOR_BLACK);
45                 init_pair(COLOR_GREEN, COLOR_GREEN, COLOR_BLACK);
46                 init_pair(COLOR_RED, COLOR_RED, COLOR_BLACK);
47                 init_pair(COLOR_CYAN, COLOR_CYAN, COLOR_BLACK);
48                 init_pair(COLOR_WHITE, COLOR_WHITE, COLOR_BLACK);
49                 init_pair(COLOR_MAGENTA, COLOR_MAGENTA, COLOR_BLACK);
50                 init_pair(COLOR_BLUE, COLOR_BLUE, COLOR_BLACK);
51                 init_pair(COLOR_YELLOW, COLOR_YELLOW, COLOR_BLACK);
52         }
53
54         /* Ventana, caracter para linea vertical, caracter para linea horizontal*/
55         box(mainwin, ACS_VLINE, ACS_HLINE);
56         /* Ventana, Y, X, Texto */
57         mvwaddstr(mainwin, 2, 10, "Ejemplo de Formulario");     
58
59         /* Creo el formulario */
60         form = form_crear(mainwin);
61         form_agregar_widget(form, INPUT, "Numero de Articulo", 8, "");
62
63         form_ejecutar(form, 10, 10);
64
65         delwin(mainwin);
66         endwin();
67         
68         art = art_obtener(articulos, form_obtener_valor(form, "Numero de Articulo"));
69
70         /* Imprimo los datos! */
71         printf("Datos : \n");
72         if (art != NULL) {
73                 printf("\tDescripcion   : %s\n", art->desc);
74                 printf("\tPresentacion  : %s\n", art->presentacion);
75                 printf("\tExistencia    : %s\n", art->existencia);
76         } else {
77                 printf("NO EXISTE!\n");
78         }
79         /* Libero el formulario */
80         form_destruir(form);
81         art_liberar(articulos);
82         
83         MD_Listar();
84         return 0;
85 }
86
87 static void finish(int sig)
88 {
89         endwin();
90
91         /* do your non-curses wrapup here */
92         exit(0);
93 }
94