16 releases
0.3.0 | Aug 25, 2019 |
---|---|
0.2.1 | Jun 3, 2019 |
0.1.8 | Apr 3, 2019 |
0.1.7 | Mar 1, 2019 |
0.1.6 | Feb 9, 2019 |
#74 in #imgui
Used in imgui-ext
80KB
2K
SLoC
⚠️ imgui-ext needs a full rewrite. Since it was my first attempt at making a procedural macro, it has grown messy and difficult to maintain due to lack of planning. Until the rewrite happens, use with caution.
You can also check out imgui-inspect-derive, which looks neat!
imgui-ext
A derive-macro for imgui.
#[derive(imgui_ext::Gui)]
struct Example {
#[imgui(slider(min = 0.0, max = 4.0))]
x: f32,
#[imgui(input(step = 2))]
y: i32,
#[imgui(drag(label = "Drag 2D"))]
drag_2d: [f32; 2],
#[imgui(checkbox(label = "Turbo mode"))]
turbo: bool,
}
let mut example = Example { /* skipped */ };
imgui::Window::new(im_str!("debug")).build(ui, || {
use imgui_ext::UiExt;
if ui.draw_gui(&mut example).turbo() {
println!("Turbo mode value changed: {}", example.turbo);
}
})
Examples
# codegen example (see examples/codegen.rs to see the macro expansion)
cargo run --example codegen
# integration with nalgebra types
cargo run --example nalgebra
Limitations
#[derive(imgui_ext::Gui)]
is only supported forstruct
s with named fields.
License
Dependencies
~1.5MB
~36K SLoC