Режимы вывода

Для символов типа chtype можно устанавливать такие атрибуты, как мигание или цвет символа и фона. Для добавления символу атрибута мигания нужно включить флажок A_BLINK. Делается это так:

chtype ch = 'w' | A_BLINK;

Теперь при выводе этого символа он будет мигать, если конечно это позволяет сделать терминал. (A_DIM - пониженная яркость, A_BOLD - повышенная яркость, A_NORMAL - нормальное отображение, A_UNDERLINE - подчёркнутый, A_REVERSE - инверсный)

С включением цвета немного сложнее. Перед использованием цветов нужно проинициализировать палитру. Палитра это структура, в которой определённой цифре соответствует определённый цвет. В нашем случае одной цифре соответствуют сразу два цвета символов и фона.

...

chtype ch;

...

if (!has_colors())

{

endwin();

printf("Цвета не поддерживаются");

exit(1);

}

start_color();

 

// 1 цвет в палитре - красные символы на чёрном фоне

init_pair(1, COLOR_RED, COLOR_BLACK);

 

// 2 цвет в палитре - зелёные символы на желтом фоне

init_pair(2, COLOR_GREEN, COLOR_YELLOW);

 

...

ch = 'w' | COLOR_PAIR(1); // символ с цветом 1 из палитры

Функция has_colors позволяет узнать можно ли использовать цвета. Функция start_color() должна вызываться до задания палитры. Функция init_pair() нужна чтобы задать какой цифре какой цвет будет соответствовать от 1 до COLOR_PAIRS-1 (0 зарезервирован для стандартного отображения). Для использования цвета в символе нужно включить флажок COLOR_PAIR (номер из палитры).

Список цветов:

COLOR_BLACK

COLOR_RED

COLOR_GREEN

COLOR_YELLOW

COLOR_BLUE

COLOR_MAGENTA

COLOR_CYAN

COLOR_WHITE

Следующие функции позволяют установить атрибуты вывода по умолчанию:

Включение атрибутов

int attron(int attrs)

включает атрибуты attrs. (Например attron(COLOR_PAIR(1)); устанавливает цвет 1 из палитры)

Отключение атрибутов

int attroff(int attrs)

отключает атрибуты attrs. (Например attroff(A_BLINK); отключает мигание)

Установка атрибутов

int attrset(int attrs)

Заменяет текущие атрибуты атрибутами attrs (Например attrset(A_NORMAL); заменяет текущие атрибуты на A_NORMAL)

Установка атрибутов очистки

void bkgdset(chtype ch)

Устанавливает атрибуты с которыми очищается экран такими функциями как clear(). (Например bkgdset(COLOR_PAIR(1)); очистка будет осуществляться цветом 1 из палитры).