]> git.llucax.com Git - z.facultad/75.06/emufs.git/blob - gui/gui.c
* Agrego carga articulos (NOT DONE!)
[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
20         articulos = art_cargar(argv[1]);
21
22         /* Inicio Curses */
23         signal(SIGINT, finish);      /* arrange interrupts to terminate */
24         mainwin = initscr();      /* initialize the curses library */
25         
26         /* Verifico un tamaño minimo de consola */
27         if ((LINES < 25) || (COLS < 80)) {
28                 delwin(mainwin);
29                 endwin();
30                 printf("El tamaño de la consola debe ser de por lo menos 80x25!\n");
31                 return 1;
32         }
33
34         keypad(stdscr, TRUE);  /* enable keyboard mapping */
35         nonl();         /* tell curses not to do NL->CR/NL on output */
36         cbreak();       /* take input chars one at a time, no wait for \n */
37         noecho();       /* don't echo input */
38
39         /* Si se soporta color, los inicializo */
40         if (has_colors()) {
41                 start_color();
42                 /* Simple color assignment, often all we need. */
43                 init_pair(COLOR_BLACK, COLOR_BLACK, COLOR_BLACK);
44                 init_pair(COLOR_GREEN, COLOR_GREEN, COLOR_BLACK);
45                 init_pair(COLOR_RED, COLOR_RED, COLOR_BLACK);
46                 init_pair(COLOR_CYAN, COLOR_CYAN, COLOR_BLACK);
47                 init_pair(COLOR_WHITE, COLOR_WHITE, COLOR_BLACK);
48                 init_pair(COLOR_MAGENTA, COLOR_MAGENTA, COLOR_BLACK);
49                 init_pair(COLOR_BLUE, COLOR_BLUE, COLOR_BLACK);
50                 init_pair(COLOR_YELLOW, COLOR_YELLOW, COLOR_BLACK);
51         }
52
53         /* Ventana, caracter para linea vertical, caracter para linea horizontal*/
54         box(mainwin, ACS_VLINE, ACS_HLINE);
55         /* Ventana, Y, X, Texto */
56         mvwaddstr(mainwin, 2, 10, "Ejemplo de Formulario");     
57
58         /* Creo el formulario */
59         form = form_crear(mainwin);
60         form_agregar_widget(form, INPUT, "Nombre", 15, "");
61         form_agregar_widget(form, RADIO, "Voto", 3, "Si,No,No Corresponde");
62         form_agregar_widget(form, INPUT, "Datos", 30, "");
63
64         form_ejecutar(form, 10, 10);
65
66         delwin(mainwin);
67         endwin();
68         
69         /* Imprimo los datos! */
70         printf("Datos Ingresados : \n");
71         printf("\tNombre : %s\n", form_obtener_valor(form, "Nombre"));
72         printf("\tVoto   : %s\n", form_obtener_valor(form, "Voto"));
73         printf("\tDatos  : %s\n", form_obtener_valor(form, "Datos"));
74         
75         /* Libero el formulario */
76         form_destruir(form);
77         art_liberar(articulos);
78         
79         MD_Listar();
80         return 0;
81 }
82
83 static void finish(int sig)
84 {
85         endwin();
86
87         /* do your non-curses wrapup here */
88         exit(0);
89 }
90