fltk-theme

A theming crate for fltk-rs, based on work by Remy Oukaour and Greg Ercolano, and schemes developed by the NTK GUI library.

Usage

toml [dependencies] fltk = "1.1.6" fltk-theme = "0.1"

Example

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(); } ```

Setting the widget scheme: ```rust use fltk::{prelude::*, *}; use fltk_theme::{WidgetScheme, SchemeType};

fn main() { let a = app::App::default(); let widgetscheme = WidgetScheme::new(SchemeType::Clean); widgetscheme.apply(); let mut win = window::Window::default().with_size(400, 300); let mut btn = button::Button::new(160, 200, 80, 30, "Hello"); win.end(); win.show(); a.run().unwrap(); } ```

Widget themes

Color themes

Theme FrameTypes

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

Widget Schemes

These provide schemes for widgets without color theming. Currently there are 4 schemes: - Clean: Taken from NTK's clear scheme. alt_test

You can check the frames example to see all FrameType's you can apply to you widgets. alt_test