Curses содержат функции
управления метками функциональных клавиш. Эти метки появляются в нижней
части экрана и упрощают работу с некоторыми приложениями (например, с
текстовыми редакторами). Для того чтобы вывести эти метки на экран,
необходимо до функций initscr или newterm вызвать
функцию slk_init.
slk_clear | Удаляет программные метки с экрана. |
slk_init | Инициализирует программные метки функциональных клавиш. |
slk_label | Возвращает имя текущей метки. |
slk_noutrefresh | Обновляет программные метки. Действие этой функции аналогично действию wnoutrefresh. |
slk_refresh | Обновляет программные метки. Действие этой функции аналогично действию refresh. |
slk_restore | Отменяет действие функции slk_clear и восстанавливает программные метки на экране. |
slk_set | Позволяет задать программную метку. |
slk_touch | Обновляет программные метки при следующем вызове функции slk_noutrefresh. |
При работе с программными метками curses уменьшает размер stdscr на одну строку. Эта строка резервируется для соответствующих функций управления. При этом значение переменной среды LINES также уменьшается. Многие терминалы поддерживают встроенные программные метки. Если такая поддержка включена, curses использует ее. В противном случае программные метки имитируются программно.
На многих терминалах, поддерживающих программные метки, определено 8 меток, этот стандарт принят и для curses. Длина строки метки не превышает 8 символов. Curses допускает два варианта расположения меток: 3-2-3 (3 слева, 2 по центру и 3 справа) или 4-4 (4 слева и 4 справа).
Для того чтобы задать текст метки вызовите функцию slk_set. Эта функция curses позволяет также указать, как следует выровнять метку: по левому краю, по правому краю или по центру. Если вы хотите получить имя метки без выравнивания, вызовите функцию slk_label. Функции slk_clear и slk_restore служат соответственно для удаления и восстановления программных меток. Обычно для обновления программных меток программа вызывает функцию slk_noutrefresh для каждой метки, а потом один раз вызывает функцию slk_refresh для получения конечного вывода. Если вы хотите обновить все программные метки при следующем вызове slk_noutrefresh, воспользуйтесь функцией slk_touch.
Список дополнительных функций curses