| Crates.io | ncursesw-win |
| lib.rs | ncursesw-win |
| version | 0.6.3 |
| created_at | 2019-07-01 22:13:42.857602+00 |
| updated_at | 2022-02-22 17:47:43.867244+00 |
| description | An extension wrapper around the ncursesw-rs crate that encapsulates the exposed raw pointers of the core NCurses TUI library |
| homepage | https://lib.rs/crates/ncursesw-win |
| repository | https://github.com/narfit66/ncursesw-win-rs |
| max_upload_size | |
| id | 145274 |
| size | 597,350 |
This crate is a wrapper around the ncursesw crate, it's purpose is too abstracts away the raw pointers that NCurses uses and function in a safe way, however a knowledge of how NCurses works is advised to use the true power of this library.
Please see the README.md for ncursesw for more details.
[dependencies]
ncursesw-win = "0.6"
Or to use the latest git version
[dependencies]
ncursesw-win = { git = "https://github.com/narfit66/ncursesw-win-rs" }
The compiled library will be built in the target directory.
cargo build
For additional information on how to custom compile please see the Building, Custom Build and Features sections in the ncursesw README.md crate.
extern crate ncurseswwin;
use ncurseswwin::*;
To use attributes and color pairs
use ncurseswwin::normal::*; // for 'ansi' color pairs and attributes...
use ncurseswwin::extend::*; // or for 'extended' color pairs and attributes.
To use menus
use ncurseswwin::menu::*;
To use forms
use ncurseswwin::form::*;
Instead of calling initscr() and endwin() to initialise and teardown the NCurses library (these can still be called as the ncursesw crate is public) use the ncursesw_entry() function. This initialises and tears down NCurses and provided the ability to catch panics in a controlled maner by passing them back to the client code as the error type NCurseswWinError::Panic { message }.
To create a window use Window::new() which will teardown correctly when going out of scope and provides all NCurses functionality associatiated with a NCurses window. Likewise a pad is created using Pad::new() and a panel using Panel::new().
All NCurses methods associated with a Window, Pad or RipoffWindow use either their original NCurses name or where specifically passed the pointer to the structure _win_st the 'w' has been removed, for example the NCurses 'C' function wget_wch(WINDOW*) has become the method self.get_wch() (where self is an instance of a Window for example).
All NCurses methods associated with a Screen use either the original NCurses name or where specifically passed the pointer to the structure screen the _sp suffix has been removed, for example the NCurses 'C' function start_color_sp(SCREEN*) has become the method self.start_color() (where self is an instance of a Screen for example). To create a window or pad associated with a screen use Window::new_sp() or Pad::new_sp() respecitivly.
The NCurses ripoff and mouse features are encapsulated, please see example code for how to use these features.
Examples are built by cargo build --examples. To run them, use cargo run --example <EXAMPLE>.
Current examples are Safe Initialisation/Calling Of NCurses (ncursesw_entry-test), Ansi Border Drawing (border-test), Unicode Border Drawing (border_set-test), Unicode Box Drawing (box_drawing-test), Mouse Events (mouse-test), Ripoff Lines (ripoffline-test), Non-Blocking Get (getch_nonblocking-test), Screen (screen-test), Window (window-test) and Menu (menu-test).
Documentation for this crate can be found here.
Licensed under the MIT license, see LICENSE