Как реализовать прокрутку или список в NCurses/PdCurses? (С)
Я нахожусь в процессе создания приложения с текстовым интерфейсом для школьного проекта. Мне действительно нужна помощь о том, как реализовать поле прокрутки или список в NCurses/PDCurses(в C).
Насколько я исследовал, скроллок делает это возможным. Я попробовал это в моем проекте, но безрезультатно.
Поле прокрутки используется для отображения списка имен по вертикали, и когда пользователь нажимает "N", оно прокручивает следующую часть, а когда пользователь нажимает "P", оно переходит к предыдущей части.
Спасибо!
2 ответа
scrollok
волшебным образом не создает поле прокрутки, оно просто позволяет прокрутить окно вверх. Вам даже не нужно scrollok
для вашей цели. Просто
- поддерживать индекс i для самого верхнего имени, которое должно отображаться (изначально 0)
- печатать высоту h имен от индекса i до min (i + h-1, imax) до окна, начиная с самой верхней строки
- когда пользователь нажимает "N", если i + h ≤ imax, тогда установите i в i + h, очистите окно, перейдите к печати
- когда пользователь нажимает "P", если i > 0, тогда установите i в ih, очистите окно, перейдите к печати
Вы видели CDK ( Curses Development Kit), в котором есть исходный код, чтобы вы могли проверить или просто использовать его. На этом наборе также есть информация на сайте ncurses.