Зачеркнутый текст в ncurses - PullRequest
0 голосов
/ 04 апреля 2020

Я разрабатываю терминальное приложение TUI для себя, используя библиотеку ncurses. (Работает на Linux)

Не могу найти много информации об использовании текстового атрибута «зачеркнутый / зачеркнутый» при добавлении строки в окно ncurses с использованием addstr и друзей.

Единственная информация, которую я нашел в Интернете, была на этом сайте: https://midnight-commander.org/ticket/3264

Ncurses не будет добавлять [зачеркнутый текст], поскольку битовое поле уже полностью упаковано.

Мне было интересно, есть ли какие-либо обходные пути к этому или какой-либо официальный способ сделать это.

Любая помощь будет оценена.
Спасибо.

Ответы [ 2 ]

0 голосов
/ 04 апреля 2020

ncurses имеет 16 битов, выделенных для видео-атрибутов. Использованы проклятия SVr4 8; Добавлены XOpen Curses 7. Эти 15 определены для совместимости X / Open Curses .

Что касается документации X / Open Curses, существует два набора определений:

A_ALTCHARSET   Alternate character set
A_BLINK        Blinking
A_BOLD         Extra bright or bold
A_DIM          Half bright
A_INVIS        Invisible
A_PROTECT      Protected
A_REVERSE      Reverse video
A_STANDOUT     Best highlighting mode of the terminal
A_UNDERLINE    Underlining

и

WA_ALTCHARSET  Alternate character set
WA_BLINK       Blinking
WA_BOLD        Extra bright or bold
WA_DIM         Half bright
WA_HORIZONTAL  Horizontal highlight
WA_INVIS       Invisible
WA_LEFT        Left highlight
WA_LOW         Low highlight
WA_PROTECT     Protected
WA_REVERSE     Reverse video
WA_RIGHT       Right highlight
WA_STANDOUT    Best highlighting mode of the terminal
WA_TOP         Top highlight
WA_UNDERLINE   Underlining
WA_VERTICAL    Vertical highlight

в зависимости от того, хранятся ли биты в attr_t или chtype (X / Open и SVr4 соответственно). В ncurses это то же самое (см. справочную страницу ), так что не имеет значения, если один ссылается на A_BOLD или WA_BOLD (проклятия Solaris xpg4 сохраняют их по-другому).

Скидка A_ против WA_, два списка разные. Более новые из X / Open Curses используются редко. Так как ncurses не знает, как это выглядит на экране, кто-то может добавить соответствующую возможность terminfo к описанию терминала, и ncurses обработает это.

Страница руководства terminfo упоминает следующее:

Стандарт XSI Curses добавил эти возможности печатного копирования. Они использовались в некоторых версиях проклятий System V после 4.1, например, Solaris 2.5 и IRIX 6.x. За исключением YI, имена терминов ncurses для них придуманы. Согласно стандарту XSI Curses, они не имеют имен termcap. Если ваши скомпилированные записи terminfo используют их, они могут не быть двоично-совместимыми с записями terminfo System V после SVr4.1; будьте осторожны!

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

0 голосов
/ 04 апреля 2020

Возможные атрибуты в ncurses:

A_NORMAL Normal display (no highlight)
A_STANDOUT Best highlighting mode of the terminal.
A_UNDERLINE Underlining
A_REVERSE Reverse video
A_BLINK Blinking
A_DIM Half bright
A_BOLD Extra bright or bold
A_PROTECT Protected mode
A_INVIS Invisible or blank mode
A_ALTCHARSET Alternate character set
A_CHARTEXT Bit−mask to extract a character
COLOR_PAIR(n) Color−pair number n

Для работы с атрибутами могут использоваться такие функции, как attron(), attroff(), attrset(),

Зачеркивание недоступно и не будет доступно.

Если вы знаете свой терминал и хотите, чтобы ваше программное обеспечение могло работать только на таком типе терминала, а терминал поддерживает зачеркивание, тогда вы можете использовать управляющие символы или escape-последовательности для активации такой функции.

...