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