Crate amberwindow
source ·Expand description
‘amberwindow’ is an easy to use ImmediateMode gui library for Rust.
Uses macroquad as a backend.
§Supported Platforms
- Windows / PC
- Linux (untested)
- MacOS (untested)
§Features
- Easy to setup
- Getting windows working is easy
- Many pre-made widgets to use
§Examples
§Hello Window
use amberwindow::WindowManager;
use macroquad::prelude::*;
#[macroquad::main("Hello")]
async fn main() {
let mut windows = WindowManager::new();
loop {
windows.begin("");
windows.update_windows();
next_frame().await;
}
}§Hello World
use amberwindow::{WindowManager, WindowWidget};
use macroquad::prelude::*;
#[macroquad::main("Hello")]
async fn main() {
let mut windows = WindowManager::new();
let widget = WindowWidget::new();
loop {
if let Some(win) = windows.begin("") {
widget.Text(win, "Hello world");
}
windows.update_windows();
next_frame().await;
}
}§Custom Styling
For all of you who love dearimgui’s styling, using the custom styling features in AmberWindow can let you “remake” dearimgui.
if let Some(win) = windows.begin("") {
win.name("Debug");
win.Text("Hello, world 123", None);
win.Button("Save");
win.Slider(0., 100., None, vec2(win.rect.w - 20.0, 15f32));
win.Checkbox("Auto update", false);
win.button_style(ButtonStyle{
font: None,
color: WHITE,
bg_color: Color::from_hex(0x274972),
hover_bg_color: Color::from_hex(0x496994),
pressed_bg_color: Color::from_hex(0x274972)
});
win.slider_style(SliderStyle{
color: WHITE,
bg_color: Color::from_hex(0x163861),
hover_bg_color: Color::from_hex(0x274972),
value_color: SKYBLUE,
});
win.style(WindowStyle{
font: None,
bg_color: Color::from_hex(0x151617),
tb_color: Color::from_hex(0x294a7a),
deselected_tb_color: BLACK,
border_color: BLANK,
selected_border_color: Color::new(1.,1.,1., 0.7),
title_color: WHITE,
scale_color: Color::from_hex(0x294a7a),
minimize_color: WHITE,
close_color: WHITE
});
for i in win.widgets.iter_mut() {
if let Widget::Checkbox(i) = i {
i.bg_color = Color::from_hex(0x385884);
}
}
}It will make this: https://i.imgur.com/du1M7wV.png
Structs§
- Widget > Button (Simple text button).
- Style > Custom Button styling.
- Widget > Checkbox (Toggled bool value).
- Widget > DisplayImage (Displays an image on the window).
- Widget > Slider (Simple floating point slider).
- Style > Custom Slider Styling.
- Widget > Text (Renders single-line text).
- Widget > WidgetRow (Horizontally places widgets).
- The base window class.
- Manages window update and creation.
- Properties > Properties for windows.
- Style > Custom window styling.
- Widget > WindowWidget (Manages widget creation).
Enums§
- Widget > Widget (Base enum for all widgets).