Crate flemish[][src]

Expand description

Flemish

An elmish architecture for fltk-rs.

Usage

Add flemish to your dependencies:

[dependencies]
flemish = "0.2"

A usage example:

use flemish::{
    color_themes, button::Button, frame::Frame, group::Flex, prelude::*, OnEvent, Sandbox, Settings,
};

pub fn main() {
    Counter::new().run(Settings {
        size: (300, 100),
        resizable: true,
        color_map: Some(color_themes::BLACK_THEME),
        ..Default::default()
    })
}

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

#[derive(Debug, Clone, Copy)]
enum Message {
    IncrementPressed,
    DecrementPressed,
}

impl Sandbox for Counter {
    type Message = Message;

    fn new() -> Self {
        Self::default()
    }

    fn title(&self) -> String {
        String::from("Counter - fltk-rs")
    }

    fn update(&mut self, message: Message) {
        match message {
            Message::IncrementPressed => {
                self.value += 1;
            }
            Message::DecrementPressed => {
                self.value -= 1;
            }
        }
    }

    fn view(&mut self) {
        let col = Flex::default_fill().column();
        let mut button1 = Button::default().with_label("Increment");
        button1.on_event(Message::IncrementPressed);
        Frame::default().with_label(&self.value.to_string());
        let mut button2 = Button::default().with_label("Decrement");
        button2.on_event(Message::DecrementPressed);
        col.end();
    }
}

Modules

Application related methods and functions

Browser widgets

Button widgets

Dialog widgets

Drawing primitives

Fltk defined enums: Color, Font, CallbackTrigger etc

Basic fltk box/frame widget

Group widgets

Image types supported by fltk

Input widgets

Menu widgets

Miscellaneous widgets not fitting a certain group

Output widgets

All fltk widget traits and flt error types

Printing related functions

Widget surface to image functions

Table widgets

Text display widgets

Tree widgets

General utility functions

Valuator widgets

Basic empty widget

Window widgets

Macros

Defines a set of convenience functions for constructing and anchoring custom widgets. Usage: fltk::widget_extends!(CustomWidget, BaseWidget, member); It basically implements Deref and DerefMut on the custom widget, and adds the aforementioned methods.

Structs

Color map struct. (index, r, g, b)

A theme is just a Vec of colormaps

A widget scheme sets the style of drawing a widget without interfering with coloring

A widget theme is a scheme + a set of default colors

Enums

Lists supported schemes

Lists supported themes

Traits