use cursive::view::{Nameable, Resizable};
use cursive::views::{Dialog, EditView, LinearLayout, TextView};
use cursive::Cursive;
fn main() {
let mut siv = cursive::default();
siv.add_layer(
Dialog::around(
LinearLayout::vertical()
.child(EditView::new().on_edit(on_edit).with_name("1"))
.child(EditView::new().on_edit(on_edit).with_name("2"))
.child(TextView::new("match").with_name("match"))
.fixed_width(10),
)
.button("Quit", Cursive::quit),
);
siv.run();
}
fn on_edit(siv: &mut Cursive, _content: &str, _cursor: usize) {
let edit_1 = siv.find_name::<EditView>("1").unwrap();
let edit_2 = siv.find_name::<EditView>("2").unwrap();
let matches = edit_1.get_content() == edit_2.get_content();
siv.call_on_name("match", |v: &mut TextView| {
v.set_content(if matches { "match" } else { "no match" })
});
}