2010-03-08 27 views
8

Meine Konsole hat Transparenz aktiviert, wenn ich andere Ncurses-Anwendungen ausführen, sehe ich, dass der Hintergrund transparent bleibt. Ich versuche, die Transparenz meiner App beizubehalten und nicht einen dunklen, schwarzen, undurchsichtigen Hintergrund aufzutragen.ncurses transparente Konsole Hintergrund

Das ist, was ich Irgendwelche Ideen

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

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

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

bisher tun?

Dank

+6

FIXED: use_default_colors(); – Josh

+0

die Beantwortung Ihrer eigenen Frage ist erlaubt und erwünscht. Sie könnten sogar eine Wiederholung davon bekommen. –

+0

Repoened, damit dies richtig beantwortet werden kann. –

Antwort

2

Wenn Ihre Anwendung ruft use_default_colors, ncurses (und NetBSD curses) eine Erweiterung auf ECMA-48 SGR 39 und 49 "Standardfarben" auf Basis bieten. Wenn Sie dies tun, enthält ncurses keine Zellen, deren Vorder- und/oder Hintergrundfarbe mit der Annahme der Terminalfarben übereinstimmt.

Es gibt eine zusätzliche Funktion assume_default_colors, die verwendet werden kann, um die Standardfarben-Funktion zu verbessern, wenn das Terminal (zum Beispiel) schwarzen Text auf weißem Hintergrund verwendet.

Die meisten farbfähigen Terminals, die Sie verwenden, unterstützen die SGR 39/49 Codes, daher kann die Funktion die meiste Zeit verwendet werden.

Weiterführende Literatur: