1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
use dear_imgui_rs as imgui;
fn prepare_imgui(ctx: &mut imgui::Context) {
let io = ctx.io_mut();
io.set_display_size([800.0, 600.0]);
io.set_delta_time(1.0 / 60.0);
ctx.font_atlas()
.try_claim_legacy_renderer()
.expect("legacy renderer font atlas should be available")
.build();
}
#[test]
fn focus_scope_accepts_typed_imgui_id_and_restores_previous_scope() {
let mut ctx = imgui::Context::create();
prepare_imgui(&mut ctx);
let ui = ctx.frame();
let scope_id = ui.get_id("typed focus scope");
ui.window("focus scope host").build(|| {
let previous_scope = unsafe { imgui::sys::igGetCurrentFocusScope() };
{
let _scope = ui.push_focus_scope(scope_id);
assert_eq!(
unsafe { imgui::sys::igGetCurrentFocusScope() },
scope_id.raw()
);
}
assert_eq!(
unsafe { imgui::sys::igGetCurrentFocusScope() },
previous_scope
);
});
}