2016-01-21 2 views
0

Приложение ncurses проверяет, был ли изменен размер терминала. Если размер меньше 80x25, тогда закройте экран и покажите сообщение об ошибке.ncurses Хорошая практика: прозрачный экран с окнами

Если в приложении есть N окон, все ли они должны быть удалены с помощью delwin() или вызова clear() будет достаточно? С другой стороны, уже существующие окна могут быть повторно использованы после clear() - для обновления и отображения содержимого, если размер терминала стал удовлетворительным - или их следует воссоздать?

ответ

0

Очистка окон звучит как поведение приложения, а не ncurses как таковое. Библиотека ncurses (см. resizeterm) очистит области, если окна увеличатся.

Лучшая политика при изменении размера действительно зависит от того, что у вас есть в окнах. ncurses делает разумно безопасные изменения, но поскольку у него нет информации о вашем намерении сделать некоторые вещи закрытыми на экране, а другие разделены, все, что он может сделать, это попытаться изменить размеры окон, чтобы их содержимое было сохранено. Приложение может очистить их и начать заново с —, а также перемещать окна на экране.

Это ваше решение, проще ли воссоздать окна или использовать их повторно.

До тех пор, пока вся перестройка выполняется до следующей перерисовки экрана (например, с wrefresh), ncurses сделает обновления с минимальным количеством действий.

Смежные вопросы