Управление курсором с помощью curses
В этом разделе рассмотрены различные типы курсоров из библиотеки curses.
В библиотеке curses есть следующие типы курсоров:
- логический курсор
- Определяет расположение курсора в каждом окне. Структура данных каждого окна отслеживает расположение своего логического курсора. Для каждого окна существует логический курсор.
- физический курсор
- Курсор дисплея. Этот курсор служит для вывода данных на дисплей рабочей станции. У каждого дисплея существует только один физический курсор.
Логический курсор в окне позволяет только
выводить символы или удалять их. Для управления курсором предусмотрены
следующие функции:
- getbegyx
- Помещает начальные координаты окна в целочисленные переменные y и x
- getmaxyx
- Помещает сведения о размере окна в целочисленные переменные y и x
- getsyx
- Выдает текущие координаты виртуального курсора дисплея
- getyx
- Возвращает координаты логического курсора, связанного с определенным окном
- leaveok
- Позволяет управлять положением физического курсора после вызова функции wrefresh.
- перемещение
- Перемещает логический курсор, связанный с stdscr.
- mvcur
- Перемещает физический курсор.
- setsyx
- Помещает виртуальный курсор дисплея в точку с заданными координатами.
- wmove
- Перемещает логический курсор, связанный с пользовательским окном.
После вызова функции refresh или wrefresh curses перемещает физический курсор на последний измененный символ в окне. Для того чтобы после обновления физический курсор оставался на первоначальном месте, следует выполнить функцию leaveok, указав нужное окно в параметре Window и значение TRUE в параметре Flag.