mirror of
https://github.com/eliasstepanik/imgui-rs.git
synced 2026-01-19 01:18:27 +00:00
fmt
This commit is contained in:
parent
9eb6b410b4
commit
82ad709167
@ -8,7 +8,8 @@ fn main() {
|
||||
};
|
||||
let system = support::init(file!());
|
||||
system.main_loop(move |run, ui| {
|
||||
let w = ui.window("Collapsing header")
|
||||
let w = ui
|
||||
.window("Collapsing header")
|
||||
.opened(run)
|
||||
.position([20.0, 20.0], Condition::Appearing)
|
||||
.size([700.0, 500.0], Condition::Appearing);
|
||||
|
||||
@ -17,7 +17,8 @@ fn main() {
|
||||
}
|
||||
|
||||
fn example_selector(run: &mut bool, ui: &mut Ui, state: &mut State) {
|
||||
let w = ui.window("Color button examples")
|
||||
let w = ui
|
||||
.window("Color button examples")
|
||||
.opened(run)
|
||||
.position([20.0, 20.0], Condition::Appearing)
|
||||
.size([700.0, 100.0], Condition::Appearing)
|
||||
@ -33,7 +34,8 @@ fn example_selector(run: &mut bool, ui: &mut Ui, state: &mut State) {
|
||||
}
|
||||
|
||||
fn example_1(ui: &Ui, state: &mut State) {
|
||||
let w = ui.window("Example 1: Basics")
|
||||
let w = ui
|
||||
.window("Example 1: Basics")
|
||||
.size([700.0, 300.0], Condition::Appearing)
|
||||
.position([20.0, 140.0], Condition::Appearing);
|
||||
w.build(|| {
|
||||
@ -73,7 +75,8 @@ fn example_1(ui: &Ui, state: &mut State) {
|
||||
}
|
||||
|
||||
fn example_2(ui: &Ui) {
|
||||
let w = ui.window("Example 2: Alpha component")
|
||||
let w = ui
|
||||
.window("Example 2: Alpha component")
|
||||
.size([700.0, 320.0], Condition::Appearing)
|
||||
.position([20.0, 140.0], Condition::Appearing);
|
||||
w.build(|| {
|
||||
@ -123,7 +126,8 @@ fn example_2(ui: &Ui) {
|
||||
}
|
||||
|
||||
fn example_3(ui: &Ui) {
|
||||
let w = ui.window("Example 3: Input format")
|
||||
let w = ui
|
||||
.window("Example 3: Input format")
|
||||
.size([700.0, 320.0], Condition::Appearing)
|
||||
.position([20.0, 140.0], Condition::Appearing);
|
||||
w.build(|| {
|
||||
|
||||
@ -12,8 +12,7 @@ fn main() {
|
||||
// imgui-rs has two main methods of creating windows (and these same approaches
|
||||
// apply to many other widgets). First, callback based:
|
||||
|
||||
ui.window("My window via callback")
|
||||
.build(||{
|
||||
ui.window("My window via callback").build(|| {
|
||||
ui.text("This content appears in a window");
|
||||
|
||||
// Everything in this callback appears in the window, like this button:
|
||||
@ -24,7 +23,7 @@ fn main() {
|
||||
// In this case, there is the "token based" approach. You call a method and get a "window token",
|
||||
// everything that happens until the token is dropped is included in the window this is more-or-less how
|
||||
// the Dear ImGui C++ API works)
|
||||
|
||||
|
||||
// Here we (maybe) get a window token:
|
||||
let window_token = ui.window("Token based window").begin();
|
||||
if let Some(_t) = window_token {
|
||||
@ -34,36 +33,35 @@ fn main() {
|
||||
|
||||
// Here we create a window with a specific size, and force it to always have a vertical scrollbar visible
|
||||
ui.window("Big complex window")
|
||||
.size([200.0, 100.0], imgui::Condition::FirstUseEver)
|
||||
.always_vertical_scrollbar(true)
|
||||
.build(||{
|
||||
ui.text("Imagine something complicated here..");
|
||||
.size([200.0, 100.0], imgui::Condition::FirstUseEver)
|
||||
.always_vertical_scrollbar(true)
|
||||
.build(|| {
|
||||
ui.text("Imagine something complicated here..");
|
||||
|
||||
// Note you can create windows inside other windows, however, they both appear as separate windows.
|
||||
// For example, somewhere deep inside a complex window, we can quickly create a widget to display a
|
||||
// variable, like a graphical "debug print"
|
||||
ui.window("Confusion").build(||{
|
||||
ui.text(format!("Some variable: {:?}", ui.io().mouse_pos))
|
||||
})
|
||||
});
|
||||
// Note you can create windows inside other windows, however, they both appear as separate windows.
|
||||
// For example, somewhere deep inside a complex window, we can quickly create a widget to display a
|
||||
// variable, like a graphical "debug print"
|
||||
ui.window("Confusion")
|
||||
.build(|| ui.text(format!("Some variable: {:?}", ui.io().mouse_pos)))
|
||||
});
|
||||
|
||||
// If you want to nest windows inside other windows, you can a "child window".
|
||||
// This is essentially a scrollable area, with all the same properties as a regular window
|
||||
ui.window("Parent window").build(||{
|
||||
ui.window("Parent window").build(|| {
|
||||
ui.child_window("Child window")
|
||||
.size([100.0, 100.0])
|
||||
.build(||{
|
||||
for _ in 0..10 {
|
||||
ui.text("Lines and");
|
||||
}
|
||||
});
|
||||
.size([100.0, 100.0])
|
||||
.build(|| {
|
||||
for _ in 0..10 {
|
||||
ui.text("Lines and");
|
||||
}
|
||||
});
|
||||
ui.child_window("Second child window")
|
||||
.size([100.0, 100.0])
|
||||
.build(||{
|
||||
for _ in 0..10 {
|
||||
ui.text("More and");
|
||||
}
|
||||
});
|
||||
.size([100.0, 100.0])
|
||||
.build(|| {
|
||||
for _ in 0..10 {
|
||||
ui.text("More and");
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@ -6,41 +6,40 @@ fn main() {
|
||||
let items = vec!["a", "b", "c", "d"];
|
||||
|
||||
ui.window("Broken Example")
|
||||
.position([0.0, 0.0], imgui::Condition::FirstUseEver)
|
||||
.size([390.0, 200.0], imgui::Condition::FirstUseEver)
|
||||
.build(|| {
|
||||
ui.text("Broken! Only first button responds to clicks");
|
||||
.position([0.0, 0.0], imgui::Condition::FirstUseEver)
|
||||
.size([390.0, 200.0], imgui::Condition::FirstUseEver)
|
||||
.build(|| {
|
||||
ui.text("Broken! Only first button responds to clicks");
|
||||
|
||||
// Because all our buttons have the same label (and thus ID),
|
||||
// only the first button responds to clicks!
|
||||
for it in &items {
|
||||
ui.text(it);
|
||||
for num in 0..5 {
|
||||
ui.same_line();
|
||||
if ui.button("Example") {
|
||||
println!("{}: {}", it, num);
|
||||
// Because all our buttons have the same label (and thus ID),
|
||||
// only the first button responds to clicks!
|
||||
for it in &items {
|
||||
ui.text(it);
|
||||
for num in 0..5 {
|
||||
ui.same_line();
|
||||
if ui.button("Example") {
|
||||
println!("{}: {}", it, num);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
ui.window("Good Example")
|
||||
.position([400.0, 0.0], imgui::Condition::FirstUseEver)
|
||||
.size([390.0, 200.0], imgui::Condition::FirstUseEver)
|
||||
.build(|| {
|
||||
ui.text("Works!");
|
||||
for it in &items {
|
||||
let _label_id = ui.push_id(it);
|
||||
ui.text(it);
|
||||
for num in 0..5 {
|
||||
let _num_id = ui.push_id(num);
|
||||
ui.same_line();
|
||||
if ui.button("Example") {
|
||||
println!("{}: {}", it, num);
|
||||
.position([400.0, 0.0], imgui::Condition::FirstUseEver)
|
||||
.size([390.0, 200.0], imgui::Condition::FirstUseEver)
|
||||
.build(|| {
|
||||
ui.text("Works!");
|
||||
for it in &items {
|
||||
let _label_id = ui.push_id(it);
|
||||
ui.text(it);
|
||||
for num in 0..5 {
|
||||
let _num_id = ui.push_id(num);
|
||||
ui.same_line();
|
||||
if ui.button("Example") {
|
||||
println!("{}: {}", it, num);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@ -5,7 +5,8 @@ mod support;
|
||||
fn main() {
|
||||
let system = support::init(file!());
|
||||
system.main_loop(move |run, ui| {
|
||||
let w = ui.window("Progress bar")
|
||||
let w = ui
|
||||
.window("Progress bar")
|
||||
.opened(run)
|
||||
.position([20.0, 20.0], Condition::Appearing)
|
||||
.size([700.0, 200.0], Condition::Appearing);
|
||||
|
||||
@ -16,7 +16,8 @@ fn main() {
|
||||
}
|
||||
|
||||
fn example_selector(run: &mut bool, ui: &mut Ui, state: &mut State) {
|
||||
let w = ui.window("Radio button examples")
|
||||
let w = ui
|
||||
.window("Radio button examples")
|
||||
.opened(run)
|
||||
.position([20.0, 20.0], Condition::Appearing)
|
||||
.size([700.0, 80.0], Condition::Appearing)
|
||||
@ -32,7 +33,8 @@ fn example_selector(run: &mut bool, ui: &mut Ui, state: &mut State) {
|
||||
}
|
||||
|
||||
fn example_1(ui: &Ui, state: &mut State) {
|
||||
let w = ui.window("Example 1: Boolean radio buttons")
|
||||
let w = ui
|
||||
.window("Example 1: Boolean radio buttons")
|
||||
.size([700.0, 200.0], Condition::Appearing)
|
||||
.position([20.0, 120.0], Condition::Appearing);
|
||||
w.build(|| {
|
||||
@ -58,7 +60,8 @@ fn example_1(ui: &Ui, state: &mut State) {
|
||||
}
|
||||
|
||||
fn example_2(ui: &Ui, state: &mut State) {
|
||||
let w = ui.window("Example 2: Radio buttons")
|
||||
let w = ui
|
||||
.window("Example 2: Radio buttons")
|
||||
.size([700.0, 300.0], Condition::Appearing)
|
||||
.position([20.0, 120.0], Condition::Appearing);
|
||||
w.build(|| {
|
||||
|
||||
@ -16,7 +16,8 @@ fn main() {
|
||||
}
|
||||
|
||||
fn example_selector(run: &mut bool, ui: &mut Ui, state: &mut State) {
|
||||
let w = ui.window("Slider examples")
|
||||
let w = ui
|
||||
.window("Slider examples")
|
||||
.opened(run)
|
||||
.position([20.0, 20.0], Condition::Appearing)
|
||||
.size([700.0, 80.0], Condition::Appearing)
|
||||
@ -32,7 +33,8 @@ fn example_selector(run: &mut bool, ui: &mut Ui, state: &mut State) {
|
||||
}
|
||||
|
||||
fn example_1(ui: &Ui, state: &mut State) {
|
||||
let w = ui.window("Example 1: Basic sliders")
|
||||
let w = ui
|
||||
.window("Example 1: Basic sliders")
|
||||
.size([700.0, 340.0], Condition::Appearing)
|
||||
.position([20.0, 120.0], Condition::Appearing);
|
||||
w.build(|| {
|
||||
@ -67,7 +69,8 @@ fn example_1(ui: &Ui, state: &mut State) {
|
||||
}
|
||||
|
||||
fn example_2(ui: &Ui, state: &mut State) {
|
||||
let w = ui.window("Example 2: Slider arrays")
|
||||
let w = ui
|
||||
.window("Example 2: Slider arrays")
|
||||
.size([700.0, 260.0], Condition::Appearing)
|
||||
.position([20.0, 120.0], Condition::Appearing);
|
||||
w.build(|| {
|
||||
|
||||
@ -317,7 +317,8 @@ fn show_test_window(ui: &Ui, state: &mut State, opened: &mut bool) {
|
||||
show_app_log(ui, &mut state.app_log);
|
||||
}
|
||||
|
||||
let mut window = ui.window("ImGui Demo")
|
||||
let mut window = ui
|
||||
.window("ImGui Demo")
|
||||
.title_bar(!state.no_titlebar)
|
||||
.resizable(!state.no_resize)
|
||||
.movable(!state.no_move)
|
||||
|
||||
@ -360,7 +360,6 @@ impl<'ui> Ui<'ui> {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Widgets: Input
|
||||
impl<'ui> Ui<'ui> {
|
||||
#[doc(alias = "InputText", alias = "InputTextWithHint")]
|
||||
|
||||
@ -490,7 +490,7 @@ impl<'ui> Ui<'ui> {
|
||||
/// ```
|
||||
///
|
||||
/// We don't have to use numbers - strings also work:
|
||||
///
|
||||
///
|
||||
/// ```no_run
|
||||
/// # let mut imgui = imgui::Context::create();
|
||||
/// # let ui = imgui.frame();
|
||||
@ -500,13 +500,13 @@ impl<'ui> Ui<'ui> {
|
||||
/// println!("First button clicked")
|
||||
/// }
|
||||
/// }
|
||||
///
|
||||
///
|
||||
/// fn callback2(ui: &imgui::Ui) {
|
||||
/// if ui.button("Click") {
|
||||
/// println!("Second button clicked")
|
||||
/// }
|
||||
/// }
|
||||
///
|
||||
///
|
||||
/// ui.window("Example")
|
||||
/// .build(||{
|
||||
/// {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user