notcurses-input: refresh on start to clear screen in absence of smcup

This commit is contained in:
nick black 2020-07-22 13:25:00 -04:00
parent dd0605939a
commit 0e7e8b02eb
No known key found for this signature in database
GPG Key ID: 5F43400C21CBFACC

View File

@ -205,7 +205,7 @@ void Ticker(ncpp::NotCurses* nc) {
int input_demo(ncpp::NotCurses* nc) {
constexpr auto PLOTHEIGHT = 6;
auto n = std::make_unique<Plane*>(nc->get_stdplane(&dimy, &dimx));
auto n = nc->get_stdplane(&dimy, &dimx);
ncpp::Plane pplane{PLOTHEIGHT, dimx, dimy - PLOTHEIGHT, 0, nullptr};
struct ncplot_options popts{};
// FIXME would be nice to switch over to exponential at some level
@ -218,14 +218,14 @@ int input_demo(ncpp::NotCurses* nc) {
if(!plot){
return EXIT_FAILURE;
}
(*n)->set_fg_rgb(0x00, 0x00, 0x00);
(*n)->set_bg_rgb(0xbb, 0x64, 0xbb);
(*n)->styles_on(CellStyle::Underline);
if((*n)->putstr(0, NCAlign::Center, "mash keys, yo. give that mouse some waggle! ctrl+d exits.") <= 0){
n->set_fg_rgb(0x00, 0x00, 0x00);
n->set_bg_rgb(0xbb, 0x64, 0xbb);
n->styles_on(CellStyle::Underline);
if(n->putstr(0, NCAlign::Center, "mash keys, yo. give that mouse some waggle! ctrl+d exits.") <= 0){
return -1;
}
(*n)->styles_set(CellStyle::None);
(*n)->set_bg_default();
n->styles_set(CellStyle::None);
n->set_bg_default();
if(!nc->render()){
return -1;
}
@ -253,35 +253,35 @@ int input_demo(ncpp::NotCurses* nc) {
}
mtx.unlock();
}
if(!(*n)->cursor_move(y, 0)){
if(!n->cursor_move(y, 0)){
break;
}
(*n)->set_fg_rgb(0xd0, 0xd0, 0xd0);
(*n)->printf("%c%c%c ", ni.alt ? 'A' : 'a', ni.ctrl ? 'C' : 'c',
n->set_fg_rgb(0xd0, 0xd0, 0xd0);
n->printf("%c%c%c ", ni.alt ? 'A' : 'a', ni.ctrl ? 'C' : 'c',
ni.shift ? 'S' : 's');
if(r < 0x80){
(*n)->set_fg_rgb(128, 250, 64);
if((*n)->printf("ASCII: [0x%02x (%03d)] '%lc'", r, r,
(wchar_t)(iswprint(r) ? r : printutf8(r))) < 0){
n->set_fg_rgb(128, 250, 64);
if(n->printf("ASCII: [0x%02x (%03d)] '%lc'", r, r,
(wchar_t)(iswprint(r) ? r : printutf8(r))) < 0){
break;
}
}else{
if(nckey_supppuab_p(r)){
(*n)->set_fg_rgb(250, 64, 128);
if((*n)->printf("Special: [0x%02x (%02d)] '%s'", r, r, nckeystr(r)) < 0){
n->set_fg_rgb(250, 64, 128);
if(n->printf("Special: [0x%02x (%02d)] '%s'", r, r, nckeystr(r)) < 0){
break;
}
if(NCKey::IsMouse(r)){
if((*n)->printf(-1, NCAlign::Right, " x: %d y: %d", ni.x, ni.y) < 0){
if(n->printf(-1, NCAlign::Right, " x: %d y: %d", ni.x, ni.y) < 0){
break;
}
}
}else{
(*n)->set_fg_rgb(64, 128, 250);
(*n)->printf("Unicode: [0x%08x] '%lc'", r, (wchar_t)r);
n->set_fg_rgb(64, 128, 250);
n->printf("Unicode: [0x%08x] '%lc'", r, (wchar_t)r);
}
}
if(!dim_rows(*n)){
if(!dim_rows(n)){
break;
}
const uint64_t sec = (timenow_to_ns() - start) / NANOSECS_IN_SEC;
@ -322,6 +322,8 @@ int main(void){
if(!nc.mouse_enable()){
return EXIT_FAILURE;
}
// clear the screen in the absence of smcup mode
nc.refresh(nullptr, nullptr);
int ret = input_demo(&nc);
if(!nc.stop() || ret){
return EXIT_FAILURE;