/ / Използване на "обратен" текст само когато се иска с Perl Curses :: UI

Използване на "обратния" текст само при желание с Perl Curses :: UI :: Label - perl, текст, етикет, обрат, проклятия

Аз разработвам Perl Curses :: UI интерфейс и аз се натъкнах на малък проблем, на който не мога да намеря решение.

Една от специфичните опции за джаджа за етикети е "обратно":

-reverse < BOOLEAN >
If BOOLEAN is true, text on the label will be drawn in a reverse font.

По принцип, текстът се появява бял на черен преден план, като nano и много други CLI интерфейси, които се използват за посочване на CTRL комбинации.

Въпросът е, ако зададете Етикет да бъде "обърнат"Целият текст става бял на черно. Бих искал да заменим нормалния текст с бял на черно, вместо да използвам целия текст като този. Опитах се да гледам UI.pm и UI / Common.pm, но - лошото ми - не мога да разбера как всъщност прави това, за да мога да го направя сам в текстовото поле на етикета. Аз също се опитах да използвам Term :: ANSIColor, но той просто отпечатва съответните последователности за бягство. Той основно третира всичко, съдържащо се в текстовото поле като чист низ, който е цитиран или не.

Някакви предложения как да продължа? Благодаря ти много.

Отговори:

0 за отговор № 1

Това изглежда не се поддържа от основния интерфейс на Curses, или поне не от Perl XS one.

В зависимост от това колко сложни са вашите нужди, най-лесно е да сложите етикета в няколко отделни етикета, всеки със своя -reverse настройка. Обърнете внимание, че ще трябва да посочите ширината на всички, с изключение на последния етикет (за да се предотврати припокриването) и x-координатата на всички, с изключение на първия етикет (за да се премине към края на думата).

Например:

$win->add( undef, "Label", -x => 0, -width => 3, -text => "Hel", -reverse => 1 );
$win->add( undef, "Label", -x => 3, -width => 3, -text => "lo!" );

Разгледайте този пост на PerlMonks за творческо решение на същия проблем.