mirror of
https://github.com/eliasstepanik/imgui-rs.git
synced 2026-01-11 21:48:36 +00:00
fix tests
This commit is contained in:
parent
11b7e87c64
commit
9b6f6c0fb8
@ -259,6 +259,10 @@ impl Drop for Context {
|
||||
// If this context is the active context, Dear ImGui automatically deactivates it during
|
||||
// destruction
|
||||
unsafe {
|
||||
// end the frame if necessary...
|
||||
if !sys::igGetCurrentContext().is_null() && sys::igGetFrameCount() > 0 {
|
||||
sys::igEndFrame();
|
||||
}
|
||||
sys::igDestroyContext(self.raw);
|
||||
}
|
||||
}
|
||||
|
||||
@ -74,7 +74,7 @@ bitflags!(
|
||||
///
|
||||
/// ```no_run
|
||||
/// # use imgui::*;
|
||||
/// fn show_ui(ui: &Ui<'_>) {
|
||||
/// fn show_ui(ui: &Ui) {
|
||||
/// ui.button("Hello, I am a drag source!");
|
||||
///
|
||||
/// // Creates an empty DragSource with no tooltip
|
||||
@ -141,7 +141,7 @@ impl<T: AsRef<str>> DragDropSource<T> {
|
||||
///
|
||||
/// ```no_run
|
||||
/// # use imgui::*;
|
||||
/// fn show_ui(ui: &Ui<'_>, drop_message: &mut Option<String>) {
|
||||
/// fn show_ui(ui: &Ui, drop_message: &mut Option<String>) {
|
||||
/// ui.button("Drag me!");
|
||||
///
|
||||
/// let drag_drop_name = "Test Drag";
|
||||
@ -194,7 +194,7 @@ impl<T: AsRef<str>> DragDropSource<T> {
|
||||
///
|
||||
/// ```no_run
|
||||
/// # use imgui::*;
|
||||
/// fn show_ui(ui: &Ui<'_>) {
|
||||
/// fn show_ui(ui: &Ui) {
|
||||
/// ui.button("Drag me!");
|
||||
///
|
||||
/// let drag_drop_name = "Test Drag";
|
||||
@ -310,7 +310,7 @@ impl Drop for DragDropSourceToolTip<'_> {
|
||||
///
|
||||
/// ```no_run
|
||||
/// # use imgui::*;
|
||||
/// fn show_ui(ui: &Ui<'_>) {
|
||||
/// fn show_ui(ui: &Ui) {
|
||||
/// // Drop something on this button please!
|
||||
/// ui.button("Hello, I am a drag Target!");
|
||||
///
|
||||
|
||||
@ -242,6 +242,7 @@ fn test_mouse_down_clicked_released() {
|
||||
assert!(!ui.is_any_mouse_down());
|
||||
assert!(!ui.is_mouse_clicked(button));
|
||||
assert!(!ui.is_mouse_released(button));
|
||||
let _ = ctx.render();
|
||||
}
|
||||
{
|
||||
ctx.io_mut()[button] = true;
|
||||
@ -250,6 +251,7 @@ fn test_mouse_down_clicked_released() {
|
||||
assert!(ui.is_any_mouse_down());
|
||||
assert!(ui.is_mouse_clicked(button));
|
||||
assert!(!ui.is_mouse_released(button));
|
||||
let _ = ctx.render();
|
||||
}
|
||||
{
|
||||
let ui = ctx.new_frame();
|
||||
@ -257,6 +259,7 @@ fn test_mouse_down_clicked_released() {
|
||||
assert!(ui.is_any_mouse_down());
|
||||
assert!(!ui.is_mouse_clicked(button));
|
||||
assert!(!ui.is_mouse_released(button));
|
||||
let _ = ctx.render();
|
||||
}
|
||||
{
|
||||
ctx.io_mut()[button] = false;
|
||||
@ -265,6 +268,7 @@ fn test_mouse_down_clicked_released() {
|
||||
assert!(!ui.is_any_mouse_down());
|
||||
assert!(!ui.is_mouse_clicked(button));
|
||||
assert!(ui.is_mouse_released(button));
|
||||
let _ = ctx.render();
|
||||
}
|
||||
{
|
||||
let ui = ctx.new_frame();
|
||||
@ -272,6 +276,7 @@ fn test_mouse_down_clicked_released() {
|
||||
assert!(!ui.is_any_mouse_down());
|
||||
assert!(!ui.is_mouse_clicked(button));
|
||||
assert!(!ui.is_mouse_released(button));
|
||||
let _ = ctx.render();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -279,6 +284,7 @@ fn test_mouse_down_clicked_released() {
|
||||
#[test]
|
||||
fn test_mouse_double_click() {
|
||||
let (_guard, mut ctx) = crate::test::test_ctx_initialized();
|
||||
|
||||
// Workaround for dear imgui bug/feature:
|
||||
// If a button is clicked before io.mouse_double_click_time seconds has passed after the
|
||||
// context is initialized, the single click is interpreted as a double-click. This happens
|
||||
@ -288,6 +294,7 @@ fn test_mouse_double_click() {
|
||||
// Pass one second of time
|
||||
ctx.io_mut().delta_time = 1.0;
|
||||
let _ = ctx.new_frame();
|
||||
let _ = ctx.render();
|
||||
}
|
||||
// Fast clicks
|
||||
ctx.io_mut().delta_time = 1.0 / 60.0;
|
||||
@ -297,34 +304,40 @@ fn test_mouse_double_click() {
|
||||
let ui = ctx.new_frame();
|
||||
assert!(!ui.is_mouse_clicked(button));
|
||||
assert!(!ui.is_mouse_double_clicked(button));
|
||||
let _ = ctx.render();
|
||||
}
|
||||
{
|
||||
ctx.io_mut()[button] = true;
|
||||
let ui = ctx.new_frame();
|
||||
assert!(ui.is_mouse_clicked(button));
|
||||
assert!(!ui.is_mouse_double_clicked(button));
|
||||
let _ = ctx.render();
|
||||
}
|
||||
{
|
||||
let ui = ctx.new_frame();
|
||||
assert!(!ui.is_mouse_clicked(button));
|
||||
assert!(!ui.is_mouse_double_clicked(button));
|
||||
let _ = ctx.render();
|
||||
}
|
||||
{
|
||||
ctx.io_mut()[button] = false;
|
||||
let ui = ctx.new_frame();
|
||||
assert!(!ui.is_mouse_clicked(button));
|
||||
assert!(!ui.is_mouse_double_clicked(button));
|
||||
let _ = ctx.render();
|
||||
}
|
||||
{
|
||||
ctx.io_mut()[button] = true;
|
||||
let ui = ctx.new_frame();
|
||||
assert!(ui.is_mouse_clicked(button));
|
||||
assert!(ui.is_mouse_double_clicked(button));
|
||||
let _ = ctx.render();
|
||||
}
|
||||
{
|
||||
let ui = ctx.new_frame();
|
||||
assert!(!ui.is_mouse_clicked(button));
|
||||
assert!(!ui.is_mouse_double_clicked(button));
|
||||
let _ = ctx.render();
|
||||
}
|
||||
}
|
||||
// Slow clicks
|
||||
@ -335,34 +348,40 @@ fn test_mouse_double_click() {
|
||||
let ui = ctx.new_frame();
|
||||
assert!(!ui.is_mouse_clicked(button));
|
||||
assert!(!ui.is_mouse_double_clicked(button));
|
||||
let _ = ctx.render();
|
||||
}
|
||||
{
|
||||
ctx.io_mut()[button] = true;
|
||||
let ui = ctx.new_frame();
|
||||
assert!(ui.is_mouse_clicked(button));
|
||||
assert!(!ui.is_mouse_double_clicked(button));
|
||||
let _ = ctx.render();
|
||||
}
|
||||
{
|
||||
let ui = ctx.new_frame();
|
||||
assert!(!ui.is_mouse_clicked(button));
|
||||
assert!(!ui.is_mouse_double_clicked(button));
|
||||
let _ = ctx.render();
|
||||
}
|
||||
{
|
||||
ctx.io_mut()[button] = false;
|
||||
let ui = ctx.new_frame();
|
||||
assert!(!ui.is_mouse_clicked(button));
|
||||
assert!(!ui.is_mouse_double_clicked(button));
|
||||
let _ = ctx.render();
|
||||
}
|
||||
{
|
||||
ctx.io_mut()[button] = true;
|
||||
let ui = ctx.new_frame();
|
||||
assert!(ui.is_mouse_clicked(button));
|
||||
assert!(!ui.is_mouse_double_clicked(button));
|
||||
let _ = ctx.render();
|
||||
}
|
||||
{
|
||||
let ui = ctx.new_frame();
|
||||
assert!(!ui.is_mouse_clicked(button));
|
||||
assert!(!ui.is_mouse_double_clicked(button));
|
||||
let _ = ctx.render();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -392,6 +411,7 @@ fn test_mouse_drags() {
|
||||
ui.mouse_drag_delta_with_threshold(button, 200.0),
|
||||
[0.0, 0.0]
|
||||
);
|
||||
let _ = ctx.render();
|
||||
}
|
||||
{
|
||||
ctx.io_mut()[button] = true;
|
||||
@ -403,6 +423,7 @@ fn test_mouse_drags() {
|
||||
ui.mouse_drag_delta_with_threshold(button, 200.0),
|
||||
[0.0, 0.0]
|
||||
);
|
||||
let _ = ctx.render();
|
||||
}
|
||||
{
|
||||
ctx.io_mut().mouse_pos = [0.0, 100.0];
|
||||
@ -414,6 +435,7 @@ fn test_mouse_drags() {
|
||||
ui.mouse_drag_delta_with_threshold(button, 200.0),
|
||||
[0.0, 0.0]
|
||||
);
|
||||
let _ = ctx.render();
|
||||
}
|
||||
{
|
||||
ctx.io_mut().mouse_pos = [0.0, 200.0];
|
||||
@ -425,6 +447,7 @@ fn test_mouse_drags() {
|
||||
ui.mouse_drag_delta_with_threshold(button, 200.0),
|
||||
[0.0, 200.0]
|
||||
);
|
||||
let _ = ctx.render();
|
||||
}
|
||||
{
|
||||
ctx.io_mut().mouse_pos = [10.0, 10.0];
|
||||
@ -437,6 +460,7 @@ fn test_mouse_drags() {
|
||||
ui.mouse_drag_delta_with_threshold(button, 200.0),
|
||||
[10.0, 10.0]
|
||||
);
|
||||
let _ = ctx.render();
|
||||
}
|
||||
{
|
||||
ctx.io_mut()[button] = true;
|
||||
@ -448,6 +472,7 @@ fn test_mouse_drags() {
|
||||
ui.mouse_drag_delta_with_threshold(button, 200.0),
|
||||
[0.0, 0.0]
|
||||
);
|
||||
let _ = ctx.render();
|
||||
}
|
||||
{
|
||||
ctx.io_mut().mouse_pos = [180.0, 180.0];
|
||||
@ -467,6 +492,7 @@ fn test_mouse_drags() {
|
||||
ui.mouse_drag_delta_with_threshold(button, 200.0),
|
||||
[0.0, 0.0]
|
||||
);
|
||||
let _ = ctx.render();
|
||||
}
|
||||
{
|
||||
ctx.io_mut().mouse_pos = [200.0, 200.0];
|
||||
@ -478,6 +504,7 @@ fn test_mouse_drags() {
|
||||
ui.mouse_drag_delta_with_threshold(button, 200.0),
|
||||
[20.0, 20.0]
|
||||
);
|
||||
let _ = ctx.render();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user