15 个版本
0.6.3 | 2022年2月22日 |
---|---|
0.6.2 | 2022年1月6日 |
0.4.0 | 2019年12月9日 |
0.3.1 | 2019年11月7日 |
0.1.4 | 2019年7月13日 |
#334 in 命令行界面
每月 32 次下载
505KB
6.5K SLoC
ncursesw-win
这个 crate 是围绕 ncursesw crate 的包装,它的目的是抽象出 NCurses 所使用的原始指针并安全地执行操作,但是了解 NCurses 的工作原理对于充分发挥这个库的真正功能是建议的。
有关 ncursesw
的详细信息,请参阅 README.md。
包含
[dependencies]
ncursesw-win = "0.6"
或者使用最新的 git 版本
[dependencies]
ncursesw-win = { git = "https://github.com/narfit66/ncursesw-win-rs" }
构建
编译的库将被构建在 target
目录中。
cargo build
有关如何自定义编译的更多信息,请参阅 ncursesw
crate 的 Building
、Custom Build
和 Features
部分 README.md。
使用方法
extern crate ncurseswwin;
use ncurseswwin::*;
使用属性和颜色对
use ncurseswwin::normal::*; // for 'ansi' color pairs and attributes...
use ncurseswwin::extend::*; // or for 'extended' color pairs and attributes.
使用菜单
use ncurseswwin::menu::*;
使用表单
use ncurseswwin::form::*;
不要调用 initscr()
和 endwin()
来初始化和拆解 NCurses 库(这些仍然可以作为 ncursesw crate 调用,因为它是公开的)使用 ncursesw_entry()
函数。这将初始化和拆解 NCurses,并提供了以错误类型 NCurseswWinError::Panic { message }
将它们作为错误类型返回给客户端代码的能力,以控制方式捕获恐慌。
要创建一个窗口,使用 Window::new()
,它会在离开作用域时正确拆解,并提供所有与 NCurses 窗口关联的 NCurses 功能。同样,使用 Pad::new()
创建一个面板,使用 Panel::new()
创建一个面板。
与 Window
、Pad
或 RipoffWindow
相关的所有 NCurses 方法都使用它们原始的 NCurses 名称,或者如果明确传递了结构体的指针 _win_st
,则已移除 'w',例如,NCurses 的 'C' 函数 wget_wch(WINDOW*)
已成为方法 self.get_wch()
(其中 self
是一个 Window
的实例,例如)。
与 Screen
相关的所有 NCurses 方法都使用原始的 NCurses 名称,或者如果明确传递了结构体的指针 screen
,则已移除 _sp
后缀,例如,NCurses 的 'C' 函数 start_color_sp(SCREEN*)
已成为方法 self.start_color()
(其中 self
是一个 Screen
的实例,例如)。要创建与屏幕关联的窗口或面板,请分别使用 Window::new_sp()
或 Pad::new_sp()
。
NCurses 的 ripoff 和鼠标功能被封装了,请参阅示例代码了解如何使用这些功能。
示例
示例由 cargo build --examples
构建。要运行它们,请使用 cargo run --example <EXAMPLE>
。
当前示例包括 NCurses 安全初始化/调用 (ncursesw_entry-test),ANSI 边框绘制 (border-test),Unicode 边框绘制 (border_set-test),Unicode 方框绘制 (box_drawing-test),鼠标事件 (mouse-test),拆线 (ripoffline-test),非阻塞获取 (getch_nonblocking-test),屏幕 (screen-test),窗口 (window-test) 以及 菜单 (menu-test)。
文档
本软件包的文档可以在 此处 找到。
许可证
本软件包采用 MIT 许可证,请参阅 LICENSE
依赖项
~1.8–4.5MB
~82K SLoC