A theming crate for fltk-rs, based on work by Remy Oukaour and Greg Ercolano.
toml
[dependencies]
fltk = "1.1.4"
fltk-theme = "0.1"
Setting the color theme:
```rust use fltk::{prelude::*, *}; use fltktheme::{ColorTheme, colorthemes};
fn main() { let a = app::App::default().withscheme(app::Scheme::Gtk); let theme = ColorTheme::fromcolormap(colorthemes::BLACKTHEME); theme.apply(); let mut win = window::Window::default().withsize(400, 300); let mut btn = button::Button::new(160, 200, 80, 40, "Hello"); btn.setcolor(btn.color().lighter()); win.end(); win.show(); a.run().unwrap(); } ```
Setting the widget theme:
```rust use fltk::{prelude::*, *}; use fltktheme::{widgetthemes, WidgetTheme, ThemeType};
fn main() { let a = app::App::default(); let widgettheme = WidgetTheme::new(ThemeType::Aqua); widgettheme.apply(); let mut win = window::Window::default().withsize(400, 300); let mut btn = button::Button::new(160, 200, 80, 30, "Hello"); btn.setframe(widgetthemes::OSDEFAULTBUTTONUP_BOX); win.end(); win.show(); a.run().unwrap(); } ```
Classic (old Windows theme)
Aero (Windows 7 theme)
Aqua (MacOS theme)
Dark
High Contrast
Blue
Metro (Windows 8 theme)
Greybird (Gnome xfce)
Black theme
Dark theme
Plain gray theme
Tan theme
Shake theme
Choosing a WidgetTheme will also define a set of FrameTypes which can be used for your widgets.
OS_BUTTON_UP_BOX
OS_CHECK_DOWN_BOX
OS_BUTTON_UP_FRAME
OS_CHECK_DOWN_FRAME
OS_PANEL_THIN_UP_BOX
OS_SPACER_THIN_DOWN_BOX
OS_PANEL_THIN_UP_FRAME
OS_SPACER_THIN_DOWN_FRAME
OS_RADIO_ROUND_DOWN_BOX
OS_HOVERED_UP_BOX
OS_DEPRESSED_DOWN_BOX
OS_HOVERED_UP_FRAME
OS_DEPRESSED_DOWN_FRAME
OS_INPUT_THIN_DOWN_BOX
OS_INPUT_THIN_DOWN_FRAME
OS_MINI_BUTTON_UP_BOX
OS_MINI_DEPRESSED_DOWN_BOX
OS_MINI_BUTTON_UP_FRAME
OS_MINI_DEPRESSED_DOWN_FRAME
OS_DEFAULT_BUTTON_UP_BOX
OS_DEFAULT_HOVERED_UP_BOX
OS_DEFAULT_DEPRESSED_DOWN_BOX
OS_TOOLBAR_BUTTON_HOVER_BOX
OS_TABS_BOX
OS_SWATCH_BOX
OS_SWATCH_FRAME
OS_BG_BOX
You can check the frames example to see all FrameType
's you can apply to you widgets.