Как реализовать прокрутку или список в NCurses/PdCurses? (С)

Я нахожусь в процессе создания приложения с текстовым интерфейсом для школьного проекта. Мне действительно нужна помощь о том, как реализовать поле прокрутки или список в NCurses/PDCurses(в C).

Насколько я исследовал, скроллок делает это возможным. Я попробовал это в моем проекте, но безрезультатно.

Поле прокрутки используется для отображения списка имен по вертикали, и когда пользователь нажимает "N", оно прокручивает следующую часть, а когда пользователь нажимает "P", оно переходит к предыдущей части.

Спасибо!

2 ответа

scrollok волшебным образом не создает поле прокрутки, оно просто позволяет прокрутить окно вверх. Вам даже не нужно scrollok для вашей цели. Просто

  • поддерживать индекс i для самого верхнего имени, которое должно отображаться (изначально 0)
  • печатать высоту h имен от индекса i до min (i + h-1, imax) до окна, начиная с самой верхней строки
  • когда пользователь нажимает "N", если i + himax, тогда установите i в i + h, очистите окно, перейдите к печати
  • когда пользователь нажимает "P", если i > 0, тогда установите i в ih, очистите окно, перейдите к печати

Вы видели CDK ( Curses Development Kit), в котором есть исходный код, чтобы вы могли проверить или просто использовать его. На этом наборе также есть информация на сайте ncurses.

Другие вопросы по тегам