2010-03-08 28 views
8

Mi consola tiene la transparencia habilitada, cuando ejecuto otras aplicaciones ncurses, veo que el fondo permanece transparente. Intento que mi aplicación mantenga la transparencia y no aplique un fondo opaco negro oscuro.ncurses transparent console background

Esto es lo que estoy haciendo hasta ahora

start_color(); 
init_pair(1, COLOR_GREEN, COLOR_BLACK); 

attron(COLOR_PAIR(1)); 
mvprintw(10,10, "Hello"); 

refresh(); 
attroff(COLOR_PAIR(1)); 

¿Alguna idea?

Gracias

+6

FIJO: use_default_colors(); – Josh

+0

respondiendo su propia pregunta es permitido y alentado. Incluso puede obtener algún representante de esto. –

+0

Repoblado para que pueda responderse correctamente. –

Respuesta

2

Si su aplicación llama use_default_colors, ncurses (y NetBSD curses) proporcionan una extensión basado en ECMA-48 SGR 39 y 49 "colores por defecto". Cuando haces esto, ncurses refrains de colorear explícitamente las celdas cuyo primer plano y/o color de fondo coinciden con su suposición sobre los colores de los terminales.

Hay una función adicional assume_default_colors que se puede utilizar para mejorar la función de colores predeterminados donde el terminal está (por ejemplo) utilizando texto negro sobre fondo blanco.

La mayoría de los terminales compatibles con el color que utiliza son compatibles con los códigos SGR 39/49, por lo que la función se puede usar la mayor parte del tiempo.

Lectura adicional: