From 700c10ef1fc43352dc7885e6a4134c953dad09c0 Mon Sep 17 00:00:00 2001 From: Markus Gans Date: Fri, 11 Dec 2015 06:04:29 +0100 Subject: [PATCH] Newfont Bullet sign --- ChangeLog | 4 ++++ doc/xgraphics | 6 +++--- src/fenum.h | 1 + src/fmenu.cpp | 8 ++++++-- src/fonts/8x16graph.bdf | 14 +++++++------- src/fonts/8x16graph.pcf.gz | Bin 5126 -> 5128 bytes src/fonts/newfont.h | 2 +- src/fterm.cpp | 31 +++++++++++++++++++++++-------- test/ui.cpp | 14 ++------------ 9 files changed, 47 insertions(+), 33 deletions(-) diff --git a/ChangeLog b/ChangeLog index acf60fa2..6c6ef11d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2015-12-10 Markus Gans + * PC encoding: Avoid to print ASCII sign 0x00..0x1f in xterm + * Newfont Bullet sign + 2015-12-08 Markus Gans * Add "menu" example to demonstrate the behavior from FMenuBar, FMenu, FMenuItem, FCheckMenuItem and FRadioMenuItem widgets. diff --git a/doc/xgraphics b/doc/xgraphics index cfd5898f..c102bd63 100644 --- a/doc/xgraphics +++ b/doc/xgraphics @@ -10,9 +10,9 @@ Unicode Box Drawing graphics VT100 line drawing graphics (used by xterm, rxvt, ...) -codes `abcdefghijklmnopqrstuvwxyz{|}~ -with G1 )0`abcdefghijklmnopqrstuvwxyz{|}~ -with G0 (0`abcdefghijklmnopqrstuvwxyz{|}~(B +codes +,-.0_`abcdefghijklmnopqrstuvwxyz{|}~ +with G1 )0+,-.0_`abcdefghijklmnopqrstuvwxyz{|}~ +with G0 (0+,-.0_`abcdefghijklmnopqrstuvwxyz{|}~(B VGA graphics, switching to "active codepage" (used by cygwin console, Linux console) diff --git a/src/fenum.h b/src/fenum.h index 3ee5dcfc..cb2760cf 100644 --- a/src/fenum.h +++ b/src/fenum.h @@ -166,6 +166,7 @@ class fc NF_rev_down_pointing_triangle2 = 0x1ae9, // ◤ NF_rev_menu_button3 = 0x1af4, // ] NF_shadow_box_right = 0x1af5, // ] + NF_Bullet = 0x1af9, // ● NF_check_mark = 0x1afb, // ✓ SquareRoot = 0x221a, // √ BlackCircle = 0x25CF // ● diff --git a/src/fmenu.cpp b/src/fmenu.cpp index c2a5a1ae..7ba94c45 100644 --- a/src/fmenu.cpp +++ b/src/fmenu.cpp @@ -642,14 +642,17 @@ void FMenu::drawItems() { if ( is_radio_btn ) { - print (fc::BlackCircle); // BlackCircle ● + if ( isNewFont() ) + print (fc::NF_Bullet); + else + print (fc::BlackCircle); // BlackCircle ● } else { if ( isNewFont() ) print (fc::NF_check_mark); else - print (fc::SquareRoot); + print (fc::SquareRoot); // SquareRoot √ } } else @@ -716,6 +719,7 @@ void FMenu::drawItems() if ( len > 0 ) { FString spaces (len, wchar_t(' ')); + // BlackRightPointingPointer ► print (spaces + wchar_t(fc::BlackRightPointingPointer)); to_char = int(maxItemWidth) - (c + 2); } diff --git a/src/fonts/8x16graph.bdf b/src/fonts/8x16graph.bdf index 5aea1cb3..70288fdb 100644 --- a/src/fonts/8x16graph.bdf +++ b/src/fonts/8x16graph.bdf @@ -5748,13 +5748,13 @@ BITMAP 00 00 00 -00 -00 -00 -18 -18 -00 -00 +38 +7C +FE +FE +FE +7C +38 00 00 00 diff --git a/src/fonts/8x16graph.pcf.gz b/src/fonts/8x16graph.pcf.gz index 353641635be938e3ed318d05e756f449a03c9af4..e85766f97f5df5cdfc058fea3f9cd5cdf0974397 100644 GIT binary patch delta 4588 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 delta 4585 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 diff --git a/src/fonts/newfont.h b/src/fonts/newfont.h index 60041864..e832845a 100644 --- a/src/fonts/newfont.h +++ b/src/fonts/newfont.h @@ -255,7 +255,7 @@ static unsigned char __8x16graph[] = 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x7e, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, /* 246 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xdc, 0x00, 0x76, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 247 */ 0x00, 0x38, 0x6c, 0x6c, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 248 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 249 */ + 0x00, 0x00, 0x00, 0x00, 0x38, 0x7c, 0xfe, 0xfe, 0xfe, 0x7c, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, /* 249 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 250 */ 0x00, 0x03, 0x03, 0x06, 0x06, 0x0c, 0x0c, 0xcc, 0xd8, 0xd8, 0x78, 0x38, 0x00, 0x00, 0x00, 0x00, /* 251 */ 0x00, 0xcc, 0x78, 0x30, 0x30, 0x78, 0xcc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 252 */ diff --git a/src/fterm.cpp b/src/fterm.cpp index 41e39c5d..60380c84 100644 --- a/src/fterm.cpp +++ b/src/fterm.cpp @@ -818,6 +818,10 @@ char* FTerm::parseSecDA (char*& current_termtype) { char* new_termtype = current_termtype; + // The Linux console knows no Sec_DA + if ( linux_terminal ) + return new_termtype; + // secondary device attributes (SEC_DA) <- decTerminalID string Sec_DA = new FString(getSecDA()); @@ -1380,6 +1384,13 @@ void FTerm::init() rxvt_terminal = true; } + // Test for Linux console + if ( strncmp(termtype, const_cast("linux"), 5) == 0 + || strncmp(termtype, const_cast("con"), 3) == 0 ) + linux_terminal = true; + else + linux_terminal = false; + // terminal detection... setRawMode(); @@ -1399,13 +1410,6 @@ void FTerm::init() else xterm = false; - // Test for Linux console - if ( strncmp(termtype, const_cast("linux"), 5) == 0 - || strncmp(termtype, const_cast("con"), 3) == 0 ) - linux_terminal = true; - else - linux_terminal = false; - // set the new environment variable TERM if ( new_termtype ) { @@ -3665,6 +3669,7 @@ FString FTerm::getSecDA() putchar(0x5b); // [ putchar(0x3e); // > putchar(0x63); // c + fflush(stdout); usleep(150000); // min. wait time 150 ms (need for mintty) @@ -4252,7 +4257,17 @@ int FTerm::putchar_PC (register int c) ch = char(c); if ( xterm && utf8_console ) - ret = putchar_UTF8(ch & 0xff); + { + if ( uChar(ch) < 0x20 ) // Character 0x00..0x1f + { + Encoding = fc::ASCII; + ch = uChar(charEncode(uInt(c))); + Encoding = fc::PC; + ret = putchar(ch); + } + else + ret = putchar_UTF8(ch & 0xff); + } else ret = putchar(ch); diff --git a/test/ui.cpp b/test/ui.cpp index c88b86dc..8ba2bda1 100644 --- a/test/ui.cpp +++ b/test/ui.cpp @@ -210,10 +210,9 @@ MyDialog::MyDialog (FWidget* parent) Edit->setStatusbarMessage ("Cut-and-paste editing commands"); FMenu* View = new FMenu ("&View", Menubar); View->setStatusbarMessage ("Show internal informations"); - //FMenuItem* Options = new FMenuItem ("&Options", Menubar); - FMenu* Options = new FMenu ("&Options", Menubar); + FMenuItem* Options = new FMenuItem ("&Options", Menubar); Options->setStatusbarMessage ("Set program defaults"); - //Options->setDisable(); + Options->setDisable(); FMenuItem* Help = new FMenuItem ("&Help", Menubar); Help->setStatusbarMessage ("Show version and copyright information"); @@ -257,15 +256,6 @@ MyDialog::MyDialog (FWidget* parent) FMenuItem* Drive = new FMenuItem ("&Drive symbols...", View); Drive->setStatusbarMessage ("Show drive symbols"); - // "Options" menu items - FCheckMenuItem* aa = new FCheckMenuItem ("Disk &Status", Options); - aa->setStatusbarMessage ("1"); - aa->setChecked(); - FRadioMenuItem* bb = new FRadioMenuItem ("&Quick View", Options); - bb->setStatusbarMessage ("2"); - FRadioMenuItem* cc = new FRadioMenuItem ("&Baumstrucktur", Options); - cc->setStatusbarMessage ("3"); - // Menu function callbacks Open->addCallback (