#gui #bindings #graphics

macro fltk-derive

Rust bindings for the FLTK GUI library

25 releases

✓ Uses Rust 2018 edition

new 0.1.24 Apr 1, 2020
0.1.23 Apr 1, 2020
0.1.22 Mar 31, 2020

#216 in GUI

Download history 202/week @ 2020-03-17 215/week @ 2020-03-24

174 downloads per month
Used in fltk

MIT license

55KB
1.5K SLoC

fltk-rs

Rust bindings for the FLTK GUI library. Still in alpha.

The FLTK gui crate is a crossplatform lightweight library which can be linked to statically (LGPL) to produce small, self-contained and fast binaries.

Using in a project

Just add the following to your project's Cargo.toml file.

[dependencies]
fltk = "^0.1.8"

An example hello world application:

use fltk::window::*;

fn main() {
    let mut wind = Window::new(100, 100, 400, 300, "Hello from rust");
    wind.show();
    fl::run().unwrap();
}

Please check the examples directory for more examples.

Building

To build, just run:

$ git clone https://github.com/MoAlyousef/fltk-rs
$ cd fltk-rs
$ cargo build

Dependencies

CMake and Ninja need to be installed and in your PATH for a crossplatform build. After that on Windows and Mac OS X, normally no external dependencies are needed. For Linux, X11 development headers need to be installed for development. For Debian-based distribution, that means running:

$ sudo apt-get install libx11-dev libxext-dev libxft-dev libxinerama-dev libxcursor-dev libxrender-dev libxfixes-dev

Examples

To run the examples:

$ cargo run --example editor
$ cargo run --example calculator
$ cargo run --example gallery
$ cargo run --example button
$ cargo run --example hello

alt_test alt_test alt_test alt_test

Currently implemented widgets

Most common widgets are implemented:

  • Button
  • RadioButton
  • ToggleButton
  • RoundButton
  • CheckButton
  • LightButton
  • RepeatButton
  • Native FileDialog
  • Frame (Fl_Box)
  • Window
  • DoubleWindow
  • Group
  • Pack
  • Tabs
  • Scroll
  • Tile
  • TextDisplay
  • TextEditor
  • Input, IntInput, FloatInput, MultilineInput
  • Output, MultilineOutput
  • MenuBar
  • MenuItem
  • Choice (dropdown list)
  • Slider, ValueSlider
  • Dial
  • Counter
  • Scrollbar
  • Roller
  • Images

Todo

  • Complete widget set
  • Better documentation
  • Better testing

Contributions

Contributions are very welcome!

Dependencies

~445–760KB
~18K SLoC