Книга: Основы программирования в Linux
Перемещение курсора
Перемещение курсора
Для перемещения курсора применяется единственная функция с дополнительной командой, управляющей положением курсора после обновления экрана.
#include <curses.h>
int move(int new_y, int new_x);
int leaveok(WINDOW *window_ptr, bool leave_flag);
Функция move
просто переносит позицию логического курсора в заданное место на экране. Напоминаем о том, что начало экранных координат (0, 0) находится в левом верхнем углу экрана. В большинстве версий библиотеки curses две глобальные целочисленные переменные, LINES
и COLUMNS
, определяют размер физического экрана и могут применяться для определения максимально допустимых значений параметров new_y
и new_x
. Вызов move
сам по себе не приводит к перемещению физического курсора. Он только изменяет позицию на логическом экране, в которой появится следующий вывод. Если вы хотите, чтобы экранный курсор переместился немедленно после вызова функции move, вставьте следом за ним вызов функции refresh
.
Функция leaveok
устанавливает флаг, управляющий положением курсора на физическом экране после его обновления. По умолчанию флаг равен false
, и после вызова refresh
аппаратный курсор остается в той же точке экрана, что и логический курсор. Если флаг равен true
, аппаратный курсор можно оставить в случайно выбранной точке экрана. Как правило, значение, устанавливаемое по умолчанию, предпочтительней, т.к. курсор остается в не лишенной смысла позиции.
- 8.4. Перемещение по иерархии файлов
- 8.4.3. Перемещение по иерархии: nftw()
- 24.2.3. Перемещение курсора
- Перемещение по диалоговым окнам
- Копирование и перемещение фрагментов текста
- Перемещение и копирование файлов и папок
- Перемещение по листу
- Перемещение и копирование ячеек с помощью кнопки мыши
- Перемещение по бинарному дереву
- Перемещение по файловой системе
- Перемещение по связанному списку
- Перемещение по связанным спискам