Wstęp
Teraz nauczymy się obsługiwać kolory w konsolce. Jak zawsze zaczniemy od kodu:
#include <ncurses.h>
int main()
{
initscr();
if( has_colors() == TRUE )
{
start_color();
init_pair( 1, COLOR_RED, COLOR_BLACK );
attron( COLOR_PAIR( 1 ) );
printw( "Kolorowy napis. ;P" );
attroff( COLOR_PAIR( 1 ) );
}
else
{
printw( "Twoja Konsolka nie obsluguje kolorow. :/ " );
}
getch();
endwin();
return 0;
}
Tłumaczenie kodu
1. Bardzo ważna instrukcja, sprawdza czy konsola posiada obsługę kolorów, i zwraca wartość bool:
2. Taką funkcją włączamy tryb 'kolorowy' do terminala.
3. Tu będzie nieco trudniej. Funkcja
init_pair(1, COLOR_RED, COLOR_BLACK); określa do jakiego trybu przypisać jaki kolor czcionki, oraz jaki kolor tła, dla całej konsoli. Dokładniej:
init_pair(do jakiego trybu (zmiennej) wpisać odpowiednie parametry,kolor_czcionki,kolor_tla).
4. Jeżeli nie zrozumiałeś o co chodzi z tym zapisywaniem do trybu to teraz powinieneś to zrozumieć. Jak widzisz funkcję
attron(COLOR_PAIR(1)) już znasz więc nie będzie problemu z jej zapamiętaniem, jednak co oznacza to COLOR_PAIR(1)? To oznacza właśnie do którego 'trybu' koloru ma się program odwołać. Czyli w nawiasie wpisujemy COLOR_PAIR wpisujemy
liczbę, czyli 'tryb'. Dla lepszego zrozumienia o co mi chodzi, podam drugi przykład. Program tak samo będzie działał, jeżeli wpiszemy sobie zamiast:
init_pair( 1, COLOR_RED, COLOR_BLACK );
attron( COLOR_PAIR( 1 ) );
to:
init_pair( 2, COLOR_RED, COLOR_BLACK );
attron( COLOR_PAIR( 2 ) );
Mam nadzieję, że teraz już wiesz o co chodzi.
Zakończenie
Pamiętaj, że ustawianie kolorów odbywa się funkcją
attron(), a więc to znaczy, że trzeba po sobie później to wyłączyć funkcją
attroff().
Ok, to koniec na tą lekcję, na następnej nauczymy się wyświetlać tekst na przykład na środku ekranu.