#[cfg(feature = "ui")]
use cursive::{
Cursive,
views::{Dialog, TextView},
};
#[cfg(feature = "ui")]
pub fn messagebox(title: &str, message: &str) -> Dialog {
Dialog::around(TextView::new(message))
.title(title)
.button("确定", |s| {
s.pop_layer();
})
}
#[cfg(feature = "ui")]
pub fn show_error(s: &mut Cursive, error_message: &str) {
s.add_layer(messagebox("错误", error_message));
}
#[cfg(feature = "ui")]
pub fn show_info(s: &mut Cursive, error_message: &str) {
s.add_layer(messagebox("提示", error_message));
}
#[cfg(feature = "ui")]
pub fn show_confirmation<F, G>(s: &mut Cursive, title: &str, message: &str, on_yes: F, on_no: G)
where
F: Fn(&mut Cursive) + 'static + Send + Sync,
G: Fn(&mut Cursive) + 'static + Send + Sync,
{
let dialog = Dialog::around(TextView::new(message))
.title(title)
.button("是", move |s| {
on_yes(s);
s.pop_layer();
})
.button("否", move |s| {
on_no(s);
s.pop_layer();
});
s.add_layer(dialog);
}