2010-03-08 3 views
8

Moja konsola ma włączoną przezroczystość, gdy uruchamiam inne aplikacje ncurses, widzę, że tło pozostaje przezroczyste. Staram się, aby moja aplikacja zachowywała przezroczystość i nie stosowała ciemnego, czarnego nieprzejrzystego tła.ncurses przezroczysta konsola tło

To, co robię do tej pory

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

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

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

pomysłów?

Dzięki

+6

wynoszą: use_default_colors(); – Josh

+0

udzielanie odpowiedzi na własne pytania jest dozwolone i zalecane. Możesz nawet dostać od niego trochę. –

+0

Naprawiono, aby można było odpowiedzieć poprawnie. –

Odpowiedz

2

Jeśli aplikacja wymaga use_default_colors ncurses (i NetBSD curses) zapewniają rozszerzenie opartego na ECMA-48 SGR 39 i 49 "domyślnych kolorów". Gdy to zrobisz, ncurses powstrzymuje się od jawnego kolorowania komórek, których kolor pierwszego planu i/lub tła pasuje do założenia o kolorach terminalu.

Istnieje dodatkowa funkcja assume_default_colors, która może zostać użyta do ulepszenia funkcji kolorów domyślnych, gdy terminal (na przykład) korzysta z czarnego tekstu na białym tle.

Większość wykorzystywanych przez kolor terminali obsługuje kody SGR 39/49, więc funkcja ta może być używana przez większość czasu.

Dalsze informacje: