Π€ΡΠ½ΠΊΡΠΈΠΈ wrefresh, wclear ΠΈ werase β ΠΏΡΠΎΡΡΠΎ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π²Ρ Π²ΡΡΡΠ΅ΡΠ°Π»ΠΈΡΡ ΡΠ°Π½Π΅Π΅; ΠΎΠ½ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ WINDOW, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠ³ΡΡ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, Π° Π½Π΅ Π½Π° ΠΎΠΊΠ½ΠΎ stdscr.
Π€ΡΠ½ΠΊΡΠΈΡ touchwin Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½Π°Ρ. ΠΠ½Π° ΠΈΠ½ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ curses ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΎΠΊΠ½Π°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π΅Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, Π±ΡΠ»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ curses Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΡΠ²Π°ΡΡ ΡΠ°ΠΊΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΏΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ wrefresh, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Ρ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅ ΠΌΠ΅Π½ΡΠ»ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΡΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½Π° Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°ΡΡΠΈΡ ΡΡ ΠΎΠΊΠΎΠ½, Π·Π°Π³ΡΠΎΠΌΠΎΠΆΠ΄Π°ΡΡΠΈΡ ΡΠΊΡΠ°Π½.
ΠΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ scroll ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΎΠΉ ΠΎΠΊΠ½Π°. Π€ΡΠ½ΠΊΡΠΈΡ scrollok ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ true (ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅Π½ΡΠ»Π΅Π²ΠΎΠ³ΠΎ) Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΏΡΠΎΠΊΡΡΡΠΊΡ ΠΎΠΊΠ½Π°. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΠΊΠ½Π° Π½Π΅ ΠΏΡΠΎΠΊΡΡΡΠΈΠ²Π°ΡΡΡΡ. Π€ΡΠ½ΠΊΡΠΈΡ scroll ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΠΊΡΡΡΠΈΠ²Π°Π΅Ρ ΠΎΠΊΠ½ΠΎ Π½Π° ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ Π²Π²Π΅ΡΡ . Π Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ curses Π²Ρ ΠΎΠ΄ΠΈΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΡ wsctl, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠΎΠΊ Π΄Π»Ρ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ. ΠΡ Π²Π΅ΡΠ½Π΅ΠΌΡΡ ΠΊ ΠΏΡΠΎΠΊΡΡΡΠΊΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ·ΠΆΠ΅ Π² ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅.
Π ΡΠ΅ΠΏΠ΅ΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 6.4.
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 6.4. Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈΠ’Π΅ΠΏΠ΅ΡΡ, Π·Π½Π°Ρ, ΠΊΠ°ΠΊ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΡΠΈ Π½ΠΎΠ²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ multiw1.c. ΠΠ»Ρ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ Π½Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ.
1. ΠΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ, Π²ΡΡΠ°Π²ΡΡΠ΅ ΠΏΠ΅ΡΠ²ΡΠΌΠΈ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ:
#include <unistd.h>
#include <stdlib.h>
#include <curses.h>
int main() {
WINDOW *new_window_ptr;
WINDOW *popup_windov_ptr;
int x loop;
int y_loop;
char a_letter = 'a';
initscr();
2. ΠΠ°ΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ, ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΊΡΠ°Π½, ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΊΡΠ°Π½:
move(5, 5);
printw("%s", "Testing multiple windows");
refresh();
for (y_loop = 0; y_loop < LINES - 1; y_loop++) {
for (x_loop = 0; x_loop < COLS - 1; x_loop++) {
mvwaddch(stdscr, y_loop, x_loop, a_letter);
a_letter++;
if (a_letter > 'z') a_letter = 'a';
}
}
/* ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½Π° */
refresh();
sleep(2);
3. Π’Π΅ΠΏΠ΅ΡΡ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΎΠΊΠ½ΠΎ 10Γ20 ΠΈ Π²ΡΡΠ°Π²ΡΡΠ΅ Π² Π½Π΅Π³ΠΎ ΡΠ΅ΠΊΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΡΠΎΡΠΈΡΠΎΠ²ΠΊΠΎΠΉ ΠΎΠΊΠ½Π° Π½Π° ΡΠΊΡΠ°Π½Π΅:
new_window_ptr = newwin(10, 20, 5, 5);
mvwprintw(new_window_ptr, 2, 2, "%s", "Hello World");
mwwprintw(new_window_ptr, 5, 2, "%s",
"Notice how very long lines wrap inside the window");
wrefresh(new_window_ptr);
sleep(2);
4. ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠΎΠ½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. ΠΠΎΠ³Π΄Π° Π²Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠΊΡΠ°Π½, ΠΎΠΊΠ½ΠΎ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ new_window_ptr, Π±ΡΠ΄Π΅Ρ Π·Π°ΡΠ΅ΠΌΠ½Π΅Π½ΠΎ:
a_letter = '0';
for (y_lΠΎΠΎΡ = 0; y_lΠΎΠΎΡ < LINES - 1; y_lΠΎΠΎΡ++) {
for (Ρ _lΠΎΠΎΡ = 0; xloop < COLS - 1; Ρ _lΠΎΠΎΡ++) {
mvwaddch(stdscr, y_loop, Ρ _lΠΎΠΎΡ, a_letter);
a_letter++;
if (a_letter > '9') a_letter = '0';
}
}
refresh();
sleep(2);
5. ΠΡΠ»ΠΈ Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π²ΡΠ·ΠΎΠ² Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²Ρ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ»ΠΈ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ:
wrefresh(new_window_ptr);
sleep(2);
6. ΠΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ½Π°ΡΠ°Π»Π° Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ touchwin ΠΈ Π·Π°ΡΡΠ°Π²ΠΈΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ curses Π΄ΡΠΌΠ°ΡΡ, ΡΡΠΎ ΠΎΠΊΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ wrefresh ΡΠ½ΠΎΠ²Π° ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π½Π° ΠΏΠ΅ΡΠ΅Π΄Π½Π΅ΠΌ ΠΏΠ»Π°Π½Π΅.
touchwin(new_window_ptr);
wrefresh(new_window_ptr);
sleep(2);
7. ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡΠ΅Π΅ΡΡ ΠΎΠΊΠ½ΠΎ Ρ ΡΠ°ΠΌΠΊΠΎΠΉ Π²ΠΎΠΊΡΡΠ³ Π½Π΅Π³ΠΎ.
popup_window_ptr = newwin(10, 20, 8, 8);
box(popup_window_ptr, '|', '-');
mvwprintw(popup_window_ptr, 5, 2, "%s", "Pop Up Window!");
wrefresh(popup_window_ptr);
sleep(2);
8. ΠΠΎΠΈΠ³ΡΠ°ΠΉΡΠ΅ Ρ Π½ΠΎΠ²ΡΠΌΠΈ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠΈΠΌΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΠΈΡ ΠΎΡΠΈΡΡΠΊΠΎΠΉ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ.
touchwin(new_window_ptr);
wrefresh(new_window_ptr);
sleep(2);
wclear(new_window_ptr);
wrefresh(new_window_ptr);
sleep(2);
delwin(new_window_ptr);
touchwin(popup_window_ptr);
wrefresh(popup_window_ptr);
sleep(2);
delwin(popup_window_ptr);
touchwin(stdscr);
refresh();
sleep(2);
endwin();
exit(EXIT_SUCCESS);
}
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π½Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° Π² ΠΊΠ½ΠΈΠ³Π΅, Π½ΠΎ Π½Π° ΡΠΈΡ. 6.4 ΠΏΠΎΠΊΠ°Π·Π°Π½ ΡΠ½ΠΈΠΌΠΎΠΊ ΡΠΊΡΠ°Π½Π° ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΎΠΊΠ½Π°.
Π ΠΈΡ. 6.4
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ ΡΠΎΠ½ ΠΈ ΠΏΠΎΡΠ²ΠΈΡΡΡ Π½ΠΎΠ²ΠΎΠ΅ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠ΅Π΅ ΠΎΠΊΠ½ΠΎ, Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠΊΡΠ°Π½, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π½Π° ΡΠΈΡ. 6.5.
Π ΠΈΡ. 6.5
ΠΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
ΠΠΎΡΠ»Π΅ ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΠΊΡΠ°Π½ ΡΠΈΡΡΠ°ΠΌΠΈ, ΡΡΠΎΠ±Ρ Π»Π΅Π³ΡΠ΅ Π±ΡΠ»ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΎΠΊΠ½Π°, Π²ΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ Π½Π° ΠΏΠ΅ΡΠ΅Π΄Π½ΠΈΠΉ ΠΏΠ»Π°Π½. ΠΠ°Π»Π΅Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π»ΠΎΠΆΠΈΡΡ Π½Π° ΡΠΎΠ½ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Ρ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌ Π² Π½Π΅Π³ΠΎ ΡΠ΅ΠΊΡΡΠΎΠΌ, ΡΠ°Π·Π±ΠΈΡΡΠΌ Π½Π° ΡΡΡΠΎΠΊΠΈ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΠΈΡΠΈΠ½ΠΎΠΉ ΠΎΠΊΠ½Π°. ΠΠ°Π»Π΅Π΅ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΊΠ°ΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ touchwin Π·Π°ΡΡΠ°Π²ΠΈΡΡ curses ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠΊΠ½ΠΎ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π² Π½Π΅ΠΌ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΌΠ΅Π½ΡΠ»ΠΎΡΡ.
ΠΠ°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄ Π·Π°ΠΊΡΡΡΠΈΠ΅ΠΌ curses ΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π²ΡΠΎΡΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°ΡΡΠ΅Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° curses ΠΌΠΎΠΆΠ΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°ΡΡΠΈΠΌΠΈΡΡ ΠΎΠΊΠ½Π°ΠΌΠΈ.
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡΠΈΠΌΠ΅ΡΠ°, ΠΏΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΎΠΊΠΎΠ½ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ΅Π½Ρ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π»ΠΈΡΡ Π² Π½ΡΠΆΠ½ΠΎΠΉ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΡΡΠΈ. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° curses Π½Π΅ Ρ ΡΠ°Π½ΠΈΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΠΉ ΠΎΠ± ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΠΎΠΊΠΎΠ½, ΠΏΠΎΡΡΠΎΠΌΡ Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠΏΡΠΎΡΠΈΡΠ΅ curses ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠΊΠΎΠ½, ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈΡ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠ΅ΠΉ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π²Π°ΠΌ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° curses ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π»Π° ΠΎΠΊΠ½Π° Π² Π½ΡΠΆΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, ΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ Π² ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅. ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΡΠΎΠ³ΠΎ β ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π²ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π²Π°ΡΠΈΡ ΠΎΠΊΠΎΠ½ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΈΠ»ΠΈ ΡΠΏΠΈΡΠΊΠ΅, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΏΠΎΡΡΠ΄ΠΊΡ ΠΈΡ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½Π΅.
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΡΠΊΡΠ°Π½Π°
ΠΠ°ΠΊ Π²Ρ Π²ΠΈΠ΄Π΅Π»ΠΈ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΠ· ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ 6.4, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ ΠΎΠΊΠΎΠ½ ΡΡΠ΅Π±ΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ Π»ΠΎΠ²ΠΊΠΎΡΡΠΈ, Π½ΠΎ Π½Π΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΌΠ΅Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ. ΠΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΡΡΠ΅Π·Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ΄Π°ΡΡΠΈΠΉΡΡ Π² ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΡΠ΅ΡΠ΅Π· ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π²ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅. Π ΡΡΠ°ΡΡΡΡ, Π² Π½Π°ΡΠΈ Π΄Π½ΠΈ Ρ Π½Π΅ΠΉ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ ΠΎΡΠ΅Π½Ρ ΡΠ΅Π΄ΠΊΠΎ, Π½ΠΎ Π΅Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ Π»Π΅Π³ΠΊΠ°, ΡΡΠΎ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΅Π΅ ΠΏΡΠΎΡΡΠΎ Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΡΡ ΠΊΠ°ΡΡΠΈΠ½Ρ.
ΠΠ°Π΄Π°ΡΠ° ΡΠΎΡΡΠΎΠΈΡ Π² ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΏΡΠΎΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅ΠΌΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΡ Π»ΠΈΠ½ΠΈΠΉ ΡΠ²ΡΠ·ΠΈ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΡΠΎΠΌΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»Π³ΠΈΠΌ. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° curses ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΊΡΠ°Π½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ wnoutrefresh ΠΈ doupdate:
#include <curses.h>
int wnoutrefresh(WINDOW *window_ptr);
int doupdate(void);
Π€ΡΠ½ΠΊΡΠΈΡ wnoutrefresh ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π½Π° ΡΠΊΡΠ°Π½, Π½ΠΎ Π½Π΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΡ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅. Π€ΡΠ½ΠΊΡΠΈΡ doupdate Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π° ΡΠ΅ΡΠΌΠΈΠ½Π°Π». ΠΡΠ»ΠΈ Π²Ρ ΠΏΡΠΎΡΡΠΎ Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ wnoutrefresh, Π° Π·Π° Π½Π΅ΠΉ ΡΡΡ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΡ doupdate, ΡΡΡΠ΅ΠΊΡ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ wrefresh. ΠΠ΄Π½Π°ΠΊΠΎ Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ΄ ΠΎΠΊΠΎΠ½, ΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ·Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ wnoutrefresh Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° (ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π² Π½ΡΠΆΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅) ΠΈ Π·Π°ΡΠ΅ΠΌ Π²ΡΠ·Π²Π°ΡΡ doupdate ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ Π²ΡΠ·ΠΎΠ²Π° wnoutrefresh. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ curses Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ°ΡΡΠ΅ΡΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠΊΡΠ°Π½Π°, ΠΏΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²ΡΠ²Π΅ΡΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΡΠΊΡΠ°Π½. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ curses ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π½ΡΠΆΠ΄Π°ΡΡΠΈΡ ΡΡ Π² ΠΏΠ΅ΡΠ΅ΡΡΠ»ΠΊΠ΅.
ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΠ½Π°
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΎΠΊΠ½Π°, ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠΌΡΡ Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ ΠΎΠΊΠΎΠ½, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠΌ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΎΠΊΠ½Π°ΠΌΠΈ. Π‘ΠΎΠ·Π΄Π°ΡΡΡΡ ΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ°ΡΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΠ½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ²:
#include <curses.h>
WINDOW *subwin(WINDOW *parent, int num_of_lines, int num_of_cols,
int start_y, int start_x);
int delwin(WINDOW *window_to_delete);
Π£ ΡΡΠ½ΠΊΡΠΈΠΈ subwin ΠΏΠΎΡΡΠΈ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΊΠ°ΠΊ Ρ ΡΡΠ½ΠΊΡΠΈΠΈ newwin, ΠΈ ΡΠ΄Π°Π»ΡΡΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΠ½Π° ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠΊΠ½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠ·ΠΎΠ²Π° delwin. ΠΠ»Ρ Π·Π°ΠΏΠΈΡΠΈ Π²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΠ½Π°, ΠΊΠ°ΠΊ ΠΈ Π² Π½ΠΎΠ²ΡΠ΅ ΠΎΠΊΠ½Π°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΡΠ΄ ΡΡΠ½ΠΊΡΠΈΠΉ mvw. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΠ½Π° Π²Π΅Π΄ΡΡ ΡΠ΅Π±Ρ ΠΏΠΎΡΡΠΈ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π½ΠΎΠ²ΡΠ΅ ΠΎΠΊΠ½Π°, Π½ΠΎ Π΅ΡΡΡ ΠΎΠ΄Π½ΠΎ Π²Π°ΠΆΠ½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅: ΠΏΠΎΠ΄ΠΎΠΊΠ½Π° ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ Ρ ΡΠ°Π½ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ ΡΠΊΡΠ°Π½Π½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²; ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΡ ΠΆΠ΅ ΠΎΠ±Π»Π°ΡΡΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΡΡΠΎ ΠΈ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π»ΡΠ±ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ΄Π΅Π»Π°Π½Π½ΡΠ΅ Π²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅, Π²Π½ΠΎΡΡΡΡΡ ΠΈ Π² Π»Π΅ΠΆΠ°ΡΠ΅Π΅ Π² ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ΄ΠΎΠΊΠ½ΠΎ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ, ΡΠΊΡΠ°Π½ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ.
ΠΠ° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΠ½Π° ΠΊΠ°ΠΆΡΡΡΡ Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΎΠΌ. ΠΠΎΡΠ΅ΠΌΡ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ΅ ΠΎΠΊΠ½ΠΎ? ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΡΠ΅ΡΠ° ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ β ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π° ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. ΠΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡ Π² ΠΏΡΠΎΠΊΡΡΡΠΊΠ΅ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΊΡΠ°Π½Π° ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°ΡΡΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ curses. Π‘ΠΎΠ·Π΄Π°Π² Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΈ ΠΏΡΠΎΠΊΡΡΡΠΈΠ²Π°Ρ Π΅Π³ΠΎ, Π²Ρ Π΄ΠΎΠ±ΡΠ΅ΡΠ΅ΡΡ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°.