mirror of
https://github.com/eliasstepanik/imgui-rs.git
synced 2026-01-23 19:38:27 +00:00
Example for push_id
This commit is contained in:
parent
db5953a10c
commit
9eb6b410b4
46
imgui-examples/examples/id_wrangling.rs
Normal file
46
imgui-examples/examples/id_wrangling.rs
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
mod support;
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let system = support::init(file!());
|
||||||
|
system.main_loop(move |_, ui| {
|
||||||
|
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");
|
||||||
|
|
||||||
|
// 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user