ΠΠ»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ²Π΅ΡΠΎΠ²ΠΎΠΉ ΠΏΠ°ΡΡ Π½ΠΎΠΌΠ΅Ρ 1, ΠΊΠ°ΠΊ ΠΊΡΠ°ΡΠ½ΡΠΉ Π½Π° Π·Π΅Π»Π΅Π½ΠΎΠΌ, ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΠΎΠΊΡ:
init_pair(1, COLOR_RED, COLOR_GREEN);ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΡΠΎΠΉ ΡΠ²Π΅ΡΠΎΠ²ΠΎΠΉ ΠΏΠ°ΡΠ΅, ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠ² ΡΡΠ½ΠΊΡΠΈΡ
COLOR_PAIRwattron(window_ptr, COLOR_PAIR(1));ΠΠ½Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡ Π²ΡΠ²ΠΎΠ΄ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ Π½Π° ΡΠΊΡΠ°Π½ ΠΊΡΠ°ΡΠ½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π½Π° Π·Π΅Π»Π΅Π½ΠΎΠΌ ΡΠΎΠ½Π΅.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ
COLOR_PAIRORCOLOR_PAIRA_BOLDwattron(window_ptr, COLOR_PAIR(1) | A_BOLD);ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ color.c (ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 6.7).
1.Β Π‘Π½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π»ΠΈ ΡΠ²Π΅ΡΠ° ΡΠ΅ΡΠΌΠΈΠ½Π°Π», ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ. ΠΡΠ»ΠΈ Π΄Π°, ΡΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠΉΡΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ²Π΅ΡΠΎΠ²:
#include <unistd.h>#include <stdlib.h>#include <stdio.h>#include <curses.h>int main() {Β int i;Β initscr();Β if (!has_colors()) {Β Β endwin();Β fprintf(stderr, "Error β no color support on this terminal\n");Β Β exit(1);Β }Β if (start_color() != OK) {Β Β endwin();Β fprintf(stderr, "Error β could not initialize colors\n");Β Β exit(2);Β }2.Β Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ²Π΅ΡΡΠΈ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ²Π΅ΡΠΎΠ² ΠΈ ΡΠ²Π΅ΡΠΎΠ²ΡΠ΅ ΠΏΠ°ΡΡ. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ΅ΠΌΡ ΡΠ²Π΅ΡΠΎΠ²ΡΡ ΠΏΠ°Ρ ΠΈ Π²ΡΠ²Π΅Π΄ΠΈΡΠ΅ ΠΈΡ ΠΏΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π½Π° ΡΠΊΡΠ°Π½:
Β clear();Β mvprintw(5, 5, "There are %d COLORS, and %d COLOR_PAIRS available", COLORS, COLOR_PAIRS);Β refresh();Β init_pair(1, COLOR_RED, COLOR_BLACK);Β init_pair(2, COLOR_RED, COLOR_GREEN);Β init_pair(3, COLOR_GREEN, COLOR_RED);Β init_pair(4, COLOR_YELLOW, COLOR_BLUE);Β init_pair(5, COLOR_BLACK, COLOR_WHITE);Β init_pair(6, COLOR_MAGENTA, COLOR_BLUE);Β init_pair(7, COLOR_CYAN, COLOR_WHITE);Β for (i = 1; i <= 7; i++) {Β Β attroff(A_BOLD);Β Β attrset(COLOR_PAIR(i));Β Β mvprintw(5 + i, 5, "Color pair %d", i);Β Β attrset(COLOR_PAIR(i) | A_BOLD);Β Β mwprintw(5 + i, 25, "Bold color pair %d", i);Β Β refresh();Β Β sleep(1);Β }Β endwin();Β exit(EXIT_SUCCESS);}ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ Π²ΡΠ²ΠΎΠ΄Ρ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ Π½Π° ΡΠΈΡ. 6.7, Π·Π° Π²ΡΡΠ΅ΡΠΎΠΌ ΡΠ΅Π°Π»ΡΠ½ΡΡ ΡΠ²Π΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π½Π° ΡΠ΅ΡΠ½ΠΎ-Π±Π΅Π»ΠΎΠΌ ΡΠ½ΠΈΠΌΠΊΠ΅ ΡΠΊΡΠ°Π½Π°.

Π ΠΈΡ. 6.7
ΠΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
ΠΠΎΡΠ»Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠΊΡΠ°Π½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ²Π΅ΡΠ°ΠΌΠΈ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΠ²Π΅ΡΠΎΠ²ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΡΠ΄ ΡΠ²Π΅ΡΠΎΠ²ΡΡ ΠΏΠ°Ρ. ΠΠ°Π»Π΅Π΅ Π½Π° ΡΠΊΡΠ°Π½ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠ΅ΠΊΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ²Π΅ΡΠΎΠ²ΡΡ ΠΏΠ°Ρ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΡΠ°Π·Π½ΡΡ ΡΠ²Π΅ΡΠΎΠ² Π½Π° ΡΠΊΡΠ°Π½Π΅.
ΠΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ²Π΅ΡΠΎΠ²
ΠΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΆΠΈΡΠΎΠΊ, ΠΎΡΡΠ°Π²ΡΠΈΠΉΡΡ ΠΎΡ ΡΡΠ°ΡΡΡ Π½Π΅ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³Π»ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΠΎΡΠ΅Π½Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ²Π΅ΡΠΎΠ² Π² ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ»ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΠ΅ΠΊΡΡΡΡ ΡΠ²Π΅ΡΠΎΠ²ΡΡ ΠΏΠ°Π»ΠΈΡΡΡ, Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ curses ΡΠΎΡ ΡΠ°Π½ΠΈΠ»Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ²Π΅ΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
init_color<b>#include <curses.h></b><b>int init_color(short color_number, short red, short green, short blue);</b>ΠΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ²Π΅Ρ (Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ 0 Π΄ΠΎ
COLORSΠΠ°Π½Π΅Π»ΠΈΒ
ΠΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ curses ΠΏΠΎΡΠΎΠΉ Π±ΡΠ²Π°Π΅Ρ Π»Π΅Π³ΡΠ΅ ΠΏΠΎΡΡΡΠΎΠΈΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΊΡΠ°Π½ ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠ·ΠΆΠ΅ Π²ΡΠ²Π΅ΡΡΠΈ Π²Π΅ΡΡ ΠΈΠ»ΠΈ ΡΠ°ΡΡΡ ΡΠΊΡΠ°Π½Π° Π½Π° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΊΡΠ°Π½. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ Π»ΡΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΊΡΠ°Π½ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°, ΡΠ΅ΠΌ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΊΡΠ°Π½ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΊΡΠ°Π½Π° Π² Π»ΡΠ±ΠΎΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΡΠΎ Π½Π΅Π»Π΅Π³ΠΊΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ curses, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π²Ρ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΠΈΡΡ ΠΊ ΡΡΠΎΠΌΡ ΠΌΠΎΠΌΠ΅Π½ΡΡ, Ρ.ΠΊ. Π²ΡΠ΅ ΠΎΠΊΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π½Π΅ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΊΡΠ°Π½Π°. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° curses ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ , ΠΏΠ°Π½Π΅Π»Ρ (pad), Π΄Π»Ρ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΠΌΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΊΡΠ°Π½Π°, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΡΠΌΠ΅ΡΠ°ΡΡΡΡ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΌ ΠΎΠΊΠ½Π΅.
Π‘ΡΡΡΠΊΡΡΡΠ° ΠΏΠ°Π½Π΅Π»ΠΈ ΠΏΠΎΡ ΠΎΠΆΠ° Π½Π° ΡΡΡΡΠΊΡΡΡΡ
WINDOWΠΠ°Π½Π΅Π»ΠΈ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΠΎΠΊΠ½Π°.
<b>#include <curses.h></b><b>WINDOW *newpad(int number_of_lines, int number_of_columns);</b>ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ β ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΡΡΠΊΡΡΡΡ ΡΠΈΠΏΠ°
WINDOWnewwindelwinΠΠΎ ΠΊ ΠΏΠ°Π½Π΅Π»ΡΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΠ°Π½Π΅Π»Ρ Π½Π΅ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π° ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠ΅ ΡΠΊΡΠ°Π½Π°, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°Π΄Π°ΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΏΠ°Π½Π΅Π»ΠΈ, ΠΊΠΎΡΠΎΡΡΡ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π½Π° ΡΠΊΡΠ°Π½, ΠΈ Π΅Π΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΊΡΠ°Π½Π΅. ΠΠ΅Π»Π°ΠΉΡΠ΅ ΡΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ prefresh.
<b>#include <Ρurses.h></b><b>int prefresh(WINDOW *pad_ptr, int pad_row, int pad_column, int screen_row_min, int screen_col_min, int screen_row_max, int screen_ΡΠΎl_max);</b>