#include <ncurses.h> #include <stdlib.h>
void info(void);
int main(void) { WINDOW *a = NULL, *b = NULL, *c = NULL, *d = NULL; int maxi_x, maxi_y, mitad_x, mitad_y;
initscr();
/* Iniciar colores */ start_color(); init_pair(1, COLOR_WHITE, COLOR_BLUE); init_pair(2, COLOR_WHITE, COLOR_RED); init_pair(3, COLOR_WHITE, COLOR_GREEN); init_pair(4, COLOR_WHITE, COLOR_CYAN);
/* Calcular el tamaño de las ventanas y sus posiciones: */ getmaxyx(stdscr, maxi_y, maxi_x); mitad_x = maxi_x >> 1; mitad_y = maxi_y >> 1;
refresh();
/* Crear cuatro ventanas para llenar la pantalla: */ if ((a = newwin(mitad_y, mitad_x, 0, 0)) == NULL) info(); if ((b = newwin(mitad_y, mitad_x, 0, mitad_x)) == NULL) info(); if ((c = newwin(mitad_y, mitad_x, mitad_y, 0)) == NULL) info(); if ((d = newwin(mitad_y, mitad_x, mitad_y, mitad_x)) == NULL) info();
/* Escribir para cada ventana: */ mvwaddstr(a, 0, 0, "Ventana A - El Rincon del C\n"); wbkgd(a, COLOR_PAIR(1)); wrefresh(a); /* Refresco la ventana para su correcta visualización */ mvwaddstr(b, 0, 1, "Ventana B - El Rincon del C\n"); wbkgd(b, COLOR_PAIR(2)); wrefresh(b); mvwaddstr(c, 1, 0, "Ventana C - El Rincon del C\n"); wbkgd(c, COLOR_PAIR(3)); wrefresh(c); mvwaddstr(d, 1, 1, "Ventana D - El Rincon del C\n\nPulse una tecla para continuar... "); wbkgd(d, COLOR_PAIR(4)); wrefresh(d); getch();
endwin();
return EXIT_SUCCESS; }
void info(void) { addstr("Incapaz de asignar memoria para la nueva ventana.\n"); refresh(); getch(); endwin(); exit(EXIT_FAILURE); } |