0.1.0 |
|
---|
#9 in #tui-rs
16KB
224 行
tuirs 文件对话框
这是一个 tuirs 的文件对话框弹出扩展。
用法
请参阅 examples
目录了解如何使用此扩展。运行
cargo run --example demo
以查看其效果。
首先,将文件对话框添加到 TUI 应用程序中
use tui_rs_file_dialog::FileDialog;
struct App {
// Other fields of the App...
file_dialog: FileDialog
}
如果您想使用此 crate 提供的默认键绑定,只需将应用程序的事件处理程序包装在 bind_keys!
宏中即可
use tui_rs_file_dialog::bind_keys;
fn run_app<B: Backend>(terminal: &mut Terminal<B>, mut app: App) -> io::Result<()> {
loop {
terminal.draw(|f| ui(f, &mut app))?;
bind_keys!(
// Expression to use to access the file dialog.
app.file_dialog,
// Event handler of the app, when the file dialog is closed.
if let Event::Key(key) = event::read()? {
match key.code {
KeyCode::Char('q') => {
return Ok(());
}
_ => {}
}
}
)
}
}
最后,绘制文件对话框
fn ui<B: Backend>(f: &mut Frame<B>, app: &mut App) {
// Other UI drawing code...
app.file_dialog.draw(f);
}
限制
我以简约的方式开始这个 crate,并根据用例添加新功能。例如,目前无法为文件对话框添加样式,它只是使用一个无聊的、简约的列表块来渲染。
贡献
这个 crate 是基于用例开发的。如果您也想使用这个 crate,但当前它不涵盖您的用例,请随时提出问题或为它提交 PR。我欢迎任何想法和改进。
许可
版权所有 2023 Philipp Krones
根据 MIT 许可证授权。项目中的文件不得复制、修改或分发,除非根据那些条款。
依赖
~3–13MB
~94K SLoC