// 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(); }