#gui #imgui #macro

macro imgui-ext-derive

Procedural macro for the imgui-ext crate

11 releases

✓ Uses Rust 2018 edition

0.1.6 Feb 9, 2019
0.1.5 Feb 9, 2019

#5 in #imgui

Download history 23/week @ 2019-01-27 80/week @ 2019-02-03

36 downloads per month
Used in 1 crate

MIT license

51KB
1K SLoC

imgui-ext

Build Status Cargo package docs.rs docs Master docs

A crate to quickly build imgui UIs using annotations and a custom Derive.

Features

  • Encode UI directly on the types.
  • Static code generation: example.
  • Nested UIs (see the imgui(nested(...)) annotation).
  • Descriptive compiler errors.

Example

use imgui_ext::ImGuiExt;

#[derive(ImGuiExt)]
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"),
        display(label = "Is turbo enabled?"),
    )]
    turbo: bool,
}

Result:

See full example

cargo run --package example

Limitations

  • #[derive(ImGuiExt)] is only supported for structs with named fields, at the moment.
  • Limited layout support.

License

MIT

Dependencies

~1MB
~18K SLoC