// SIMULA UN EDITOR CAMBIANDO COLORES CON F2, F3, F4
#include <stdio.h>
#include <stdlib.h>
#include <curses.h>
WINDOW *win; /** manejaremos una Unica ventana de pantalla completa **/
/*********************************************************************/
void IniVideo()
{
win=initscr();
clear();
refresh();
//noecho();
cbreak();
keypad(win, TRUE);
}
Exit()
{
refresh();
endwin();
exit(1);
}
main ()
{
int ColorActual = 1;
int ColorAnterior = 1;
int R = 0, C = 0; // Para la posiciOn del cursor
int Tecla = 0; // Para guardar el cOdigo de la tecla pulsada
IniVideo();
start_color();
init_pair(1,COLOR_BLACK,COLOR_WHITE);
init_pair(2,COLOR_RED,COLOR_BLUE);
init_pair(3,COLOR_YELLOW,COLOR_BLACK);
init_pair(4,COLOR_YELLOW,COLOR_YELLOW);
move(10, 10); printw("Desplace el cursor con las teclas de flechita");
move(12, 10); printw("Presione <F5> para terminar");
move(14, 10); printw("De un teclazo para iniciar. . . ."); getch();
bkgd(COLOR_PAIR(4));
clear();
for(;;)
{
move(R, C);
// printw("{}");
Tecla = getch();
switch (Tecla)
{
case 258: // Tecla Abajo
if (R==20) R = 0;
else R += 1;
break;
case 259: // Tecla Arriba
if (!R) R = 20;
else R -= 1;
break;
case 260: // Tecla Izquierda
if (!C) C = 80;
else C -= 1;
break;
case 261: // Tecla Derecha
if (C==80) C = 0;
else C += 1;
break;
case 266: // Tecla <F2>
ColorAnterior = ColorActual;
ColorActual = 1;
break;
case 267: // Tecla <F3>
ColorAnterior = ColorActual;
ColorActual = 2;
break;
case 268: // Tecla <F4>
ColorAnterior = ColorActual;
ColorActual = 3;
break;
case 269: // Tecla <F5>
clear();
move(10, 10); printw("FIN DE LA EJECUCION...."); getch();
Exit();
default:
//attroff(COLOR_PAIR(ColorAnterior));
attron(COLOR_PAIR(ColorActual));
printw("%c", Tecla);
C += 1;
}
refresh();
}
Exit();
}