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.end_windows();
next_frame().await;
}
}
§Hello World
use amberwindow::WindowManager;
use macroquad::prelude::*;
#[macroquad::main("Hello")]
async fn main() {
let mut windows = WindowManager::new();
loop {
if let Some(win) = windows.begin("") {
win.Text("Hello world", WHITE);
}
windows.end_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.
(Add this to satisfy all the style imports.)
use amberwindow::*;
if let Some(win) = windows.begin("") {
win.name("Debug");
win.Text("Hello, world 123", WHITE);
win.Button("Save");
win.Slider_float(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§
- Button
- Widget > Button (Simple text button).
- Button
Style - Style > Custom Button styling.
- Checkbox
- Widget > Checkbox (Toggled bool value).
- Display
Image - Widget > DisplayImage (Displays an image on the window).
- Slider
- Widget > Slider (Simple floating point slider).
- Slider
Style - Style > Custom Slider Styling.
- Text
- Widget > Text (Renders single-line text).
- TextBox
- Text
BoxBase - Widget
Row - Widget > WidgetRow (Horizontally places widgets).
- Window
- The base window class.
- Window
Manager - Manages window update and creation.
- Window
Properties - Properties > Properties for windows.
- Window
Style - Style > Custom window styling.
- Window
Widget - Widget > WindowWidget (Manages widget creation).
Enums§
- Input
State - Widget
- Widget > Widget (Base enum for all widgets).