diff --git a/rust/src/plane/methods.rs b/rust/src/plane/methods.rs index 7e5559b5d..8c8952566 100644 --- a/rust/src/plane/methods.rs +++ b/rust/src/plane/methods.rs @@ -1204,12 +1204,27 @@ impl NcPlane { /// Returns `-`[NCRESULT_MAX][crate::NCRESULT_MAX] if /// [NCALIGN_UNALIGNED][crate::NCALIGN_UNALIGNED] or invalid [NcAlign]. /// - /// *C style function: [ncplane_align()][crate::ncplane_align].* + /// *C style function: [ncplane_halign()][crate::ncplane_halign].* #[inline] - pub fn align(&mut self, align: NcAlign, cols: NcDim) -> NcResult<()> { + pub fn halign(&mut self, align: NcAlign, cols: NcDim) -> NcResult<()> { error![ - crate::ncplane_align(self, align, cols), - &format!("NcPlane.align({:?}, {})", align, cols) + crate::ncplane_halign(self, halign, cols), + &format!("NcPlane.halign({:?}, {})", halign, cols) + ] + } + + /// Returns the row at which `rows` rows ought start in order to be + /// aligned according to `align` within this NcPlane. + /// + /// Returns `-`[NCRESULT_MAX][crate::NCRESULT_MAX] if + /// [NCALIGN_UNALIGNED][crate::NCALIGN_UNALIGNED] or invalid [NcAlign]. + /// + /// *C style function: [ncplane_valign()][crate::ncplane_valign].* + #[inline] + pub fn valign(&mut self, align: NcAlign, cols: NcDim) -> NcResult<()> { + error![ + crate::ncplane_valign(self, valign, cols), + &format!("NcPlane.valign({:?}, {})", valign, cols) ] } diff --git a/src/demo/keller.c b/src/demo/keller.c index 2ef2eabb5..8874fd48e 100644 --- a/src/demo/keller.c +++ b/src/demo/keller.c @@ -24,15 +24,14 @@ visualize(struct notcurses* nc, struct ncvisual* ncv){ struct ncvisual_options vopts = { .scaling = NCSCALE_SCALE, .blitter = bs[i], - .y = NCALIGN_CENTER, .flags = NCVISUAL_OPTION_NODEGRADE | NCVISUAL_OPTION_HORALIGNED | NCVISUAL_OPTION_VERALIGNED, }; int scalex, scaley, truey, truex; ncvisual_geom(nc, ncv, &vopts, &truey, &truex, &scaley, &scalex); vopts.x = NCALIGN_CENTER; - vopts.y = (ncplane_dim_y(notcurses_stdplane(nc)) - truey / scaley) / 2; -//fprintf(stderr, "X: %d truex: %d sclaex: %d\n", vopts.x, truex, scalex); + vopts.y = NCALIGN_CENTER; +//fprintf(stderr, "X: %d truex: %d scalex: %d\n", vopts.x, truex, scalex); ncplane_erase(stdn); // if we're about to blit pixel graphics, render the screen as empty, so // that everything is damaged for the printing of the legend. @@ -49,9 +48,9 @@ visualize(struct notcurses* nc, struct ncvisual* ncv){ DEMO_RENDER(nc); } ncplane_printf_aligned(stdn, ncplane_dim_y(stdn) / 2 - 1, NCALIGN_CENTER, - "%03dx%03d", truex, truey); + "%03dx%03d", truex, truey); ncplane_printf_aligned(stdn, ncplane_dim_y(stdn) / 2 + 1, NCALIGN_CENTER, - "%d:%d pixels -> cell", scalex, scaley); + "%d:%d pixels -> cell", scalex, scaley); } const char* name = notcurses_str_blitter(bs[i]); ncplane_printf_aligned(stdn, ncplane_dim_y(stdn) / 2 - 3, NCALIGN_CENTER, "%sblitter", name); diff --git a/src/lib/notcurses.c b/src/lib/notcurses.c index e3f2dda42..f7e291360 100644 --- a/src/lib/notcurses.c +++ b/src/lib/notcurses.c @@ -341,7 +341,7 @@ ncplane* ncplane_new_internal(notcurses* nc, ncplane* n, } p->absx += n->absx; if(nopts->flags & NCPLANE_OPTION_VERALIGNED){ - p->absy = ncplane_halign(n, nopts->y, nopts->rows); + p->absy = ncplane_valign(n, nopts->y, nopts->rows); p->valign = nopts->y; }else{ p->absy = nopts->y;