19 releases

new 0.6.4 Mar 22, 2025
0.5.1 May 12, 2024
0.4.1 Jun 27, 2023
0.4.0 Mar 31, 2023
0.2.0 Oct 9, 2021

#639 in GUI

Download history 21/week @ 2024-12-07 7/week @ 2024-12-14 2/week @ 2025-02-22 316/week @ 2025-03-15

341 downloads per month

MIT license

115KB
3.5K SLoC

Flemish

An elmish architecture for fltk-rs, inspired by Iced.

Usage

Add flemish to your dependencies:

[dependencies]
flemish = "0.6"

A usage example:

use flemish::{theme::color_themes, widget::*, Settings};

pub fn main() {
    flemish::application("counter", Counter::update, Counter::view)
        .settings(Settings {
            size: (300, 100),
            resizable: true,
            color_map: Some(color_themes::BLACK_THEME),
            ..Default::default()
        })
        .run();
}

#[derive(Default)]
struct Counter {
    value: i32,
}

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

impl Counter {
    fn update(&mut self, message: Message) {
        match message {
            Message::Increment => {
                self.value += 1;
            }
            Message::Decrement => {
                self.value -= 1;
            }
        }
    }

    fn view(&self) -> View<Message> {
        Column::new(&[
            Button::new("+", Message::Increment).view(),
            Frame::new(&self.value.to_string()).view(),
            Button::new("-", Message::Decrement).view(),
        ])
        .view()
    }
}

Dependencies

~17–24MB
~407K SLoC