Основы программирования в Linux
Шрифт:
Как это работает
Включив режим дополнительной клавиатуры, вы увидите, как можно распознать различные функциональные клавиши на дополнительной клавиатуре, генерирующие escape-последовательности.
Применение цвета
В прошлом очень немногие терминалы ввода/вывода поддерживали цвета, поэтому у большей части самых старых версий библиотеки curses не было поддержки цветов. Цвета появились в библиотеке ncurses и других современных реализациях curses. К сожалению, на "неинтеллектуальный экран", первооснову библиотеки curses, повлиял API, и curses используют цвета очень ограниченным способом, отражающим слабые характеристики старых цветных терминалов.
Каждая символьная ячейка на экране может быть записана одним цветом из набора разных цветов на фоне одного цвета из набора различных цветов фона. Например, можно вывести зеленый текст на красном фоне.
Цветовая поддержка в библиотеке curses немного необычна, в том смысле, что цвет символа не определяется независимо от цвета фона. Вы должны задать цвет переднего плана и фона как пару, именуемую, что неудивительно, цветовой парой.
Прежде чем применять цвета в curses, нужно убедиться в том, что текущий терминал поддерживает цвета, и инициализировать подпрограммы управления цветом библиотеки curses. Для этого примените две функции:
Функция
Прежде чем применять цвета как атрибуты, вы должны инициализировать цветовые пары, которые хотите использовать. Делается это с помощью функции
В
Для определения цветовой пары номер 1, как красный на зеленом, примените следующую строку:
Затем вы сможете получить доступ к этой цветовой паре, применив функцию
Она установит вывод в будущем на экран красных символов на зеленом фоне.
Поскольку
Давайте проверим эти функции в примере color.c (упражнение 6.7).
1. Сначала проверьте, поддерживает ли цвета терминал, используемый программой. Если да, то инициализируйте отображение цветов:
2. Теперь можно вывести допустимое количество цветов и цветовые пары. Создайте семь цветовых пар и выведите их по очереди на экран:
Домашняя медицинская энциклопедия. Симптомы и лечение самых распространенных заболеваний
Научно-образовательная:
медицина
рейтинг книги
Монстр из прошлого тысячелетия
5. Соприкосновение миров
Фантастика:
попаданцы
аниме
фэнтези
рейтинг книги
Обжигающий север
128. Романтическая фантастика
Фантастика:
фэнтези
рейтинг книги
Оружейникъ
2. Александр Агренев
Фантастика:
альтернативная история
рейтинг книги
Семейная энциклопедия здоровья
Справочная литература:
энциклопедии
прочая справочная литература
рейтинг книги
Большая Советская Энциклопедия (МЕ)
Справочная литература:
энциклопедии
рейтинг книги
Отморозок 2
2. Отморозок
Фантастика:
попаданцы
рейтинг книги
Ветхий Завет. Перевод и комментарии
Религия и эзотерика:
прочая религиозная литература
рейтинг книги