Разработка приложений в среде Linux. Второе издание
Шрифт:
24.2.4. Завершение управления экраном
Когда программа, использующая
24.2.5. Скелет программы управления экраном
Ниже приведен пример программы, которая сначала инициализирует возможности библиотеки S-Lang для управления экраном, а затем закрывает их. Хотя эта программа выполняет лишь некоторые действия, она иллюстрирует основы использования функциональных возможностей
24.2.6. Переключение наборов символов
Большинство современных терминалов (включая VT100, который достаточно точно эмулирует консоль Linux) поддерживают как минимум два набора символов. Основным набором обычно является ISO-8859-1 или ему подобный; другой набор используется главным образом для линейных символов. Библиотека S-Lang позволяет выбирать набор тех символов, которые будут применяться для вычерчивания символов.
Если функцию
S-Lang определяет набор символических имен для наиболее часто используемых линейных символов, входящих в альтернативный набор. В табл. 24.1 перечислены доступные линейные символы и имена S-Lang для каждого из них.
Таблица 24.1. Линейные символы
Глиф | Символическая константа |
---|---|
─ | SLSMG_HLINE_CHAR |
│ | SLSMG_VLINE_CHAR |
┌ | SLSMG_ULCORN_CHAR |
┐ | SLSMG_URCORN_CHAR |
└ | SLSMG_LLCORN_CHAR |
┘ | SLSMG_LRCORN_CHAR |
┤ | SLSMG_RTEE_CHAR |
├ | SLSMG_LTEE_CHAR |
┬ | SLSMG_UTEE_CHAR |
┴ | SLSMG_DTEE_CHAR |
┼ | SLSMG_PLUS_CHAR |
24.2.7. Запись на экран
Записать строки на экран под управлением S-Lang можно несколькими различными способами, суть которых одинакова. Далее приводится полный список функций, предназначенных для этой цели.
Каждая
из этих функций, за исключением170
Помните, что обновление физического терминала производится только с помощью функции
SLsmg_write_char | Среди всех функций вывода данных на экран это самая простая функция. Она записывает передаваемый символ в текущую позицию курсора и перемещает курсор. |
SLsmg_write_string | Выводит на экран передаваемую ей строку. |
SLsmg_write_nchars | Выводит на экран символы length , на которые указывает chars . Символ конца строки NULL игнорируется — если он будет найден, выводится комбинация '\0' и подпрограмма продолжает работу после окончания строки. |
SLsmg_write_nstring | Выводит на экран не более length символов из str . Если str содержит менее length символов, оставшееся пространство заполняется пробелами. |
SLsmg_printf | Как можно судить из имени функции, она работает подобно стандартной функции printf , форматируя первый аргумент, а остальные аргументы используются в качестве параметров для форматирования. После этого на экран выводится сформатированная строка. |
SLsmg_vprintf | Подобно функции vfprintf из библиотеки С. Эта функция ожидает получение аргумента va_arg , который она использует для форматирования первого параметра. Затем на экран выводится сформатированная строка. |
SLsmg_write_wrapped_string | Хотя S-Lang отсекает строки, а не переносит их на следующие строки, она предлагает простую функцию для записи строк, перенесенных в произвольную прямоугольную область экрана. Функция SLsmg_write_wrapped_string записывает строку str в прямоугольную область, которая начинается в row и column и имеет размеры height и width . Несмотря на то что эта подпрограмма осуществляет перенос границ слов, последовательность \n указывает на необходимость перехода на следующую строку. Если последний параметр fill имеет ненулевое значение, то каждая строка будет заполнена по всей ширине прямоугольной области, а при необходимости будут добавляться пробелы. |
24.2.8. Рисование линий и прямоугольников
Хотя функция
Функция