btcli_lib/ui/
lovely_items.rs1use cursive::{
8 Cursive,
9 views::{Dialog, TextView},
10};
11
12pub fn messagebox(title: &str, message: &str) -> Dialog {
20 Dialog::around(TextView::new(message))
21 .title(title)
22 .button("确定", |s| {
23 s.pop_layer();
24 })
25}
26
27pub fn show_error(s: &mut Cursive, error_message: &str) {
33 s.add_layer(messagebox("错误", error_message));
34}
35
36pub fn show_info(s: &mut Cursive, error_message: &str) {
37 s.add_layer(messagebox("提示", error_message));
38}
39
40pub fn show_confirmation<F1, F2>(s: &mut Cursive, title: &str, message: &str, on_yes: F1, on_no: F2)
49where
50 F1: Fn(&mut Cursive) + 'static + Send + Sync,
51 F2: Fn(&mut Cursive) + 'static + Send + Sync,
52{
53 let dialog = Dialog::around(TextView::new(message))
54 .title(title)
55 .button("是", move |s| {
56 on_yes(s);
57 s.pop_layer();
58 })
59 .button("否", move |s| {
60 on_no(s);
61 s.pop_layer();
62 });
63
64 s.add_layer(dialog);
65}