fl2rust
Usage
A fluid (fltk ui designer) file to Rust transpiler.
As an executable
You can run fl2rust on the command-line by installing using cargo-install:
$ cargo install fl2rust
Then run:
$ fl2rust <fl file>.fl > <output file>.rs
As a library
(A template repo usable via cargo-generate can be found here)
To automate things through cargo, you can use fl2rust as a library by adding it to your build-dependencies:
# Cargo.toml
[]
= "1"
[]
= "0.4"
// build.rs
# src/myuifile.fl -> generated via fluid
# data file for the Fltk User Interface Designer (fluid)
version 1.0400
header_name {.h}
code_name {.cxx}
class UserInterface {open
} {
Function {make_window()} {open
} {
Fl_Window {} {open selected
xywh {138 161 440 355} type Double visible
} {
Fl_Button but {
label {Click me}
xywh {175 230 95 45}
}
}
}
}
// src/myuifile.rs
include!;
// src/main.rs
use ;
Where you can get FLUID?
There are several options:
cargo install fltk-fluid
- Through a package manager.
- By building the fltk library yourself using cmake.
- Fluid is built when building fltk-rs, where it'll be in the OUT_DIR.
i18n support
Version 0.4.4 adds i18n support via the tr!
macro from the tr crate.
To enable it:
- In fluid, go to Edit->Project Settings...->Internationalization.
- Change the dropdown to use GNU gettext (which the tr crate supports in both forms gettext-rs and gettext).
- Add tr to you dependencies in you Cargo.toml.
- Add to your main.rs file:
extern crate tr;
- Initialize tr as described in the tr crate's documentation.
Known limitations
- Adding arbitrary code or declaring global/member variables is unsupported.
- Only constructor methods are supported.
- fl2rust doesn't check the generated Rust code for correctness.