fltk 0.4.1

Rust bindings for the FLTK GUI library
Documentation
use fltk::{app, button::*, frame::*, window::*};

#[derive(Debug, Clone, Copy)]
pub enum Message {
    Increment,
    Decrement,
}

fn main() {
    let app = app::App::default();
    let mut wind = Window::new(200, 200, 160, 200, "Counter");
    let mut frame = Frame::new(30, 80, 100, 40, "0");
    let mut but_inc = Button::new(30, 40, 100, 40, "+");
    let mut but_dec = Button::new(30, 120, 100, 40, "-");
    wind.end();
    wind.show();
    let (s, r) = app::channel::<Message>();
    but_inc.set_callback(Box::new(move || s.send(Message::Increment)));
    but_dec.set_callback(Box::new(move || s.send(Message::Decrement)));
    while app.wait() {
        let label: i32 = frame.label().parse().unwrap();
        match r.recv() {
            Some(Message::Increment) => frame.set_label(&(label + 1).to_string()),
            Some(Message::Decrement) => frame.set_label(&(label - 1).to_string()),
            None => (),
        }
    }
}