extern crate newt;
use newt::Callback;
use newt::prelude::*;
pub fn main() {
let mut value: i32 = 0;
newt::init().unwrap();
newt::cls();
newt::centered_window(20, 6, Some("Callback Test")).unwrap();
let cb1 = Checkbox::new(3, 1, "Check 1", None, None);
let cb2 = Checkbox::new(3, 2, "Check 2", None, None);
let ok = CompactButton::new(7, 4, "Ok");
let mut form = Form::new(None, 0);
form.add_components(&[&cb1, &cb2, &ok]).unwrap();
{
let mut f = |_c: &dyn Component, data: Option<&i32>| {
value = *data.unwrap();
};
let mut callback = Callback::new(&cb1, Some(5), &mut f);
callback.add_component(&cb2, Some(10));
form.run().unwrap();
newt::finished();
}
println!("value = {}", value);
}