use tcl::*;
use tk::*;
use tk::cmd::*;
fn main() -> TkResult<()> {
let tk = make_tk!()?;
let l = tk.root().add_ttk_label( "l" -text("Starting...") )?.grid(())?;
l.bind( event::enter(), tclosure!( tk, || l.configure( -text("Moved mouse inside") )))?;
l.bind( event::leave(), tclosure!( tk, || l.configure( -text("Moved mouse outside") )))?;
l.bind( event::button_press_1(), tclosure!( tk, || l.configure( -text("Clicked left mouse button") )))?;
l.bind( event::button_press_3(), tclosure!( tk, || l.configure( -text("Clicked right mouse button") )))?;
l.bind( event::double().button_press_1(), tclosure!( tk, || l.configure( -text("Double clicked") )))?;
l.bind( event::button_3().motion(), tclosure!( tk, |evt_rootx, evt_rooty| -> TkResult<()> {
Ok( l.configure( -text( format!( "right button drag to {evt_rootx} {evt_rooty}" )))? )
}))?;
Ok( main_loop() )
}