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