mirror of
https://github.com/dankamongmen/notcurses
synced 2025-03-10 09:39:03 -04:00
rust: add more functions and methods
- add functions: ncdirect_core_init & notcurses_core_init (methods pending) - add functions & methods: ncdirect_readline & notcurses_can_braille - minor fixes
This commit is contained in:
parent
5492119263
commit
1c5ee9eb8c
@ -7,8 +7,8 @@ fn main() -> NcResult<()> {
|
|||||||
|
|
||||||
// INFO
|
// INFO
|
||||||
|
|
||||||
let t_rows = dm.dim_x();
|
let t_rows = dm.dim_y();
|
||||||
let t_cols = dm.dim_y();
|
let t_cols = dm.dim_x();
|
||||||
println!("Terminal rows={0}, cols={1}", t_rows, t_cols);
|
println!("Terminal rows={0}, cols={1}", t_rows, t_cols);
|
||||||
|
|
||||||
println!(
|
println!(
|
||||||
|
@ -138,6 +138,7 @@ pub use ffi::{
|
|||||||
ncdirect_canutf8,
|
ncdirect_canutf8,
|
||||||
ncdirect_check_pixel_support,
|
ncdirect_check_pixel_support,
|
||||||
ncdirect_clear,
|
ncdirect_clear,
|
||||||
|
ncdirect_core_init,
|
||||||
ncdirect_cursor_disable,
|
ncdirect_cursor_disable,
|
||||||
ncdirect_cursor_down,
|
ncdirect_cursor_down,
|
||||||
ncdirect_cursor_enable,
|
ncdirect_cursor_enable,
|
||||||
@ -672,6 +673,7 @@ pub use ffi::{
|
|||||||
// functions
|
// functions
|
||||||
notcurses_at_yx,
|
notcurses_at_yx,
|
||||||
notcurses_bottom,
|
notcurses_bottom,
|
||||||
|
notcurses_canbraille,
|
||||||
notcurses_canchangecolor,
|
notcurses_canchangecolor,
|
||||||
notcurses_canfade,
|
notcurses_canfade,
|
||||||
notcurses_canopen_images,
|
notcurses_canopen_images,
|
||||||
@ -680,6 +682,7 @@ pub use ffi::{
|
|||||||
notcurses_cantruecolor,
|
notcurses_cantruecolor,
|
||||||
notcurses_canutf8,
|
notcurses_canutf8,
|
||||||
notcurses_check_pixel_support,
|
notcurses_check_pixel_support,
|
||||||
|
notcurses_core_init,
|
||||||
notcurses_cursor_disable,
|
notcurses_cursor_disable,
|
||||||
notcurses_cursor_enable,
|
notcurses_cursor_enable,
|
||||||
notcurses_debug,
|
notcurses_debug,
|
||||||
|
@ -4,9 +4,9 @@ use core::ptr::{null, null_mut};
|
|||||||
|
|
||||||
use crate::ffi::sigset_t;
|
use crate::ffi::sigset_t;
|
||||||
use crate::{
|
use crate::{
|
||||||
cstring, error, error_ref_mut, NcAlign, NcBlitter, NcChannelPair, NcColor, NcDim, NcDirect,
|
cstring, error, error_ref_mut, rstring, NcAlign, NcBlitter, NcChannelPair, NcColor, NcDim,
|
||||||
NcDirectFlags, NcEgc, NcError, NcInput, NcPaletteIndex, NcPlane, NcResult, NcRgb, NcScale,
|
NcDirect, NcDirectFlags, NcEgc, NcError, NcInput, NcPaletteIndex, NcPlane, NcResult, NcRgb,
|
||||||
NcStyleMask, NcTime, NCRESULT_ERR,
|
NcScale, NcStyleMask, NcTime, NCRESULT_ERR,
|
||||||
};
|
};
|
||||||
|
|
||||||
/// # `NcDirect` constructors and destructors
|
/// # `NcDirect` constructors and destructors
|
||||||
@ -96,7 +96,9 @@ impl NcDirect {
|
|||||||
maxy: i32,
|
maxy: i32,
|
||||||
maxx: i32,
|
maxx: i32,
|
||||||
) -> NcResult<&'a mut NcPlane> {
|
) -> NcResult<&'a mut NcPlane> {
|
||||||
let res = unsafe { crate::ncdirect_render_frame(self, cstring![filename], blitter, scale, maxy, maxx) };
|
let res = unsafe {
|
||||||
|
crate::ncdirect_render_frame(self, cstring![filename], blitter, scale, maxy, maxx)
|
||||||
|
};
|
||||||
error_ref_mut![
|
error_ref_mut![
|
||||||
res,
|
res,
|
||||||
&format!(
|
&format!(
|
||||||
@ -305,7 +307,6 @@ impl NcDirect {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// Disables the terminal's cursor, if supported.
|
/// Disables the terminal's cursor, if supported.
|
||||||
///
|
///
|
||||||
/// *C style function: [ncdirect_cursor_disable()][crate::ncdirect_cursor_disable].*
|
/// *C style function: [ncdirect_cursor_disable()][crate::ncdirect_cursor_disable].*
|
||||||
@ -539,6 +540,26 @@ impl NcDirect {
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Reads a (heap-allocated) line of text using the Readline library.
|
||||||
|
///
|
||||||
|
/// Initializes Readline the first time it's called.
|
||||||
|
///
|
||||||
|
/// For input to be echoed to the terminal, it is necessary that
|
||||||
|
/// [NCDIRECT_OPTION_INHIBIT_CBREAK] be provided to [ncdirect_init]
|
||||||
|
///
|
||||||
|
/// *C style function: [ncdirect_readline()][crate::ncdirect_readline].*
|
||||||
|
pub fn readline(&mut self, prompt: &str) -> NcResult<&str> {
|
||||||
|
let res = unsafe { crate::ncdirect_readline(self, cstring![prompt]) };
|
||||||
|
if res != null_mut() {
|
||||||
|
return Ok(rstring![res]);
|
||||||
|
} else {
|
||||||
|
Err(NcError::with_msg(
|
||||||
|
NCRESULT_ERR,
|
||||||
|
&format!["NcDirect.readline({})", prompt],
|
||||||
|
))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Draws a box with its upper-left corner at the current cursor position,
|
/// Draws a box with its upper-left corner at the current cursor position,
|
||||||
/// having dimensions `ylen` * `xlen`.
|
/// having dimensions `ylen` * `xlen`.
|
||||||
///
|
///
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
// fm ncdirect_canutf8
|
// fm ncdirect_canutf8
|
||||||
// fm ncdirect_check_pixel_support
|
// fm ncdirect_check_pixel_support
|
||||||
// fm ncdirect_clear
|
// fm ncdirect_clear
|
||||||
|
// f~ ncdirect_core_init
|
||||||
// fm ncdirect_cursor_disable
|
// fm ncdirect_cursor_disable
|
||||||
// fm ncdirect_cursor_down
|
// fm ncdirect_cursor_down
|
||||||
// fm ncdirect_cursor_enable
|
// fm ncdirect_cursor_enable
|
||||||
@ -59,6 +60,7 @@
|
|||||||
//X ncdirect_printf_aligned
|
//X ncdirect_printf_aligned
|
||||||
// fm ncdirect_putstr
|
// fm ncdirect_putstr
|
||||||
// fm ncdirect_raster_frame
|
// fm ncdirect_raster_frame
|
||||||
|
// fm ncdirect_readline
|
||||||
// fm ncdirect_render_frame
|
// fm ncdirect_render_frame
|
||||||
// fm ncdirect_render_image
|
// fm ncdirect_render_image
|
||||||
// fm ncdirect_rounded_box
|
// fm ncdirect_rounded_box
|
||||||
|
@ -160,6 +160,13 @@ impl Notcurses {
|
|||||||
unsafe { &mut *crate::notcurses_bottom(self) }
|
unsafe { &mut *crate::notcurses_bottom(self) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Returns true if we can reliably use Unicode Braille.
|
||||||
|
///
|
||||||
|
/// *C style function: [notcurses_canbraille()][crate::notcurses_canbraille].*
|
||||||
|
pub fn canbraille(&self) -> bool {
|
||||||
|
unsafe { crate::notcurses_canbraille(self) }
|
||||||
|
}
|
||||||
|
|
||||||
/// Returns true if it's possible to set the "hardware" palette.
|
/// Returns true if it's possible to set the "hardware" palette.
|
||||||
///
|
///
|
||||||
/// Requires the "ccc" terminfo capability.
|
/// Requires the "ccc" terminfo capability.
|
||||||
|
@ -6,15 +6,15 @@
|
|||||||
// 1 X: wont do
|
// 1 X: wont do
|
||||||
// 2 ~: WIP
|
// 2 ~: WIP
|
||||||
//
|
//
|
||||||
// col 1: 48
|
// col 1: 50
|
||||||
// --------------
|
// --------------
|
||||||
// 42 f: ffi function imported by bindgen
|
// 44 f: ffi function imported by bindgen
|
||||||
// F: ffi function wrapped safely
|
// F: ffi function wrapped safely
|
||||||
// 6 r: static function reimplemented in Rust
|
// 6 r: static function reimplemented in Rust
|
||||||
//
|
//
|
||||||
// col 2: 45
|
// col 2: 46
|
||||||
// --------------
|
// --------------
|
||||||
// 38 m: impl as a `Notcurses` method
|
// 39 m: impl as a `Notcurses` method
|
||||||
// 7 M: impl for the `FullMode` wrapper struct too
|
// 7 M: impl for the `FullMode` wrapper struct too
|
||||||
//
|
//
|
||||||
// col 3: 14
|
// col 3: 14
|
||||||
@ -26,6 +26,7 @@
|
|||||||
//
|
//
|
||||||
// fm notcurses_at_yx
|
// fm notcurses_at_yx
|
||||||
// fm notcurses_bottom
|
// fm notcurses_bottom
|
||||||
|
// fm notcurses_canbraille
|
||||||
// fmt notcurses_canchangecolor
|
// fmt notcurses_canchangecolor
|
||||||
// fmt notcurses_canfade
|
// fmt notcurses_canfade
|
||||||
// fmt notcurses_canopen_images
|
// fmt notcurses_canopen_images
|
||||||
@ -34,6 +35,7 @@
|
|||||||
// fmt notcurses_cantruecolor
|
// fmt notcurses_cantruecolor
|
||||||
// fmt notcurses_canutf8
|
// fmt notcurses_canutf8
|
||||||
// fm notcurses_check_pixel_support
|
// fm notcurses_check_pixel_support
|
||||||
|
// f~ notcurses_core_init
|
||||||
// fm notcurses_cursor_disable
|
// fm notcurses_cursor_disable
|
||||||
// fm notcurses_cursor_enable
|
// fm notcurses_cursor_enable
|
||||||
// fmt notcurses_debug
|
// fmt notcurses_debug
|
||||||
|
@ -302,7 +302,7 @@ pub const NCBLIT_BRAILLE: NcBlitter = crate::bindings::ffi::ncblitter_e_NCBLIT_B
|
|||||||
/// [`NcBlitter`] mode where the blitter is automatically chosen
|
/// [`NcBlitter`] mode where the blitter is automatically chosen
|
||||||
pub const NCBLIT_DEFAULT: NcBlitter = crate::bindings::ffi::ncblitter_e_NCBLIT_DEFAULT;
|
pub const NCBLIT_DEFAULT: NcBlitter = crate::bindings::ffi::ncblitter_e_NCBLIT_DEFAULT;
|
||||||
|
|
||||||
/// [`NcBlitter`] mode (not yet implemented)
|
/// [`NcPixel`] mode
|
||||||
///
|
///
|
||||||
/// See [Sixel in Wikipedia](https://en.wikipedia.org/wiki/Sixel).
|
/// See [Sixel in Wikipedia](https://en.wikipedia.org/wiki/Sixel).
|
||||||
pub const NCBLIT_PIXEL: NcBlitter = crate::bindings::ffi::ncblitter_e_NCBLIT_PIXEL;
|
pub const NCBLIT_PIXEL: NcBlitter = crate::bindings::ffi::ncblitter_e_NCBLIT_PIXEL;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user