В ncurses, что делает атрибут A_PROTECT? - PullRequest
1 голос
/ 08 июня 2011

В ncurses:

1.Что делает атрибут A_PROTECT?Везде в сети, документы просто говорят: защищенный режим.Что это такое?

2. Также я хотел бы отметить область, где пользователь вводит символы, с подчеркиванием, но я хотел бы, чтобы пользователь удалял или возвращал, чтобы подчеркивание появилось снова.Есть ли атрибут, который это делает, или я должен сделать это вручную?

Ответы [ 2 ]

3 голосов
/ 05 апреля 2012

Защищенный режим может относиться к мало используемой функции некоторых терминалов DEC (особенно VT220 и связанной с ней), называемой избирательным стиранием.

Общая идея заключается в том, что некоторый текст может быть внутренне помечен как защищенный. Это не меняет способ отображения на экране, но помеченные таким образом символьные ячейки не стираются командами DECSEL и DECSED (Выборочное удаление в строке и Выборочное удаление данных).

Обычно это используется для реализации чего-то вроде формы ввода данных. Заголовки и разметка полей будут защищены текстом, а данные, введенные в поля, будут незащищенными. Вы можете стереть содержимое формы, чтобы сбросить его, выполнив Выборочное удаление; таким образом стирая поля данных, но не заголовки.

1 голос
/ 28 сентября 2011

Режим защиты определяется терминалом. Я не уверен, что он работает на современных терминалах.

Существует атрибут "A_UNDERLINE", который подчеркивает символ, если ваш терминал поддерживает его.

Для обработки ввода вы можете посмотреть библиотеку форм (распространяется с ncurses) или cdk (http://invisible -island.net / cdk /)

...