This crate provides a Listener widget which can basically wrap any fltk-rs widget (implementing WidgetBase and WidgetExt) and provides an triggered
interface, without requiring callbacks.
toml
[dependencies]
fltk = "1.4"
fltk-evented = "0.3"
```rust use fltk::{app, button::Button, frame::Frame, group::Flex, prelude::*, window::Window}; use fltk_evented::Listener;
fn main() { let a = app::App::default().withscheme(app::Scheme::Gtk); app::setfont_size(20);
let mut wind = Window::default()
.with_size(160, 200)
.center_screen()
.with_label("Counter");
let flex = Flex::default()
.with_size(120, 160)
.center_of_parent()
.column();
let but_inc: Listener<_> = Button::default().with_label("+").into();
let mut frame = Frame::default();
let but_dec: Listener<_> = Button::default().with_label("-").into();
flex.end();
wind.end();
wind.show();
let mut val = 0;
frame.set_label(&val.to_string());
while a.wait() {
if but_inc.triggered() {
val += 1;
frame.set_label(&val.to_string());
}
if but_dec.triggered() {
val -= 1;
frame.set_label(&val.to_string());
}
}
} ```